Commit Graph

875 Commits

Author SHA1 Message Date
Marshall Greenblatt d953faf7f8 Add a CefHandler::HandleSetFocus() callback that gets called when the browser control or a child widget requests focus. This callback gives the client an opportunity to cancel the focus change. (Issue #34, initial patch by tux316).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@29 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-06-16 13:52:35 +00:00
Marshall Greenblatt ff7e8379fb libcef: Update due to underlying chromium changes.
- Underlying chromium changes fix Issue #27.
- Navigation-related changes to work with WebDataSource.
- Cookie-related changes for ResourceLoaderBridge.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@28 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-06-02 23:27:47 +00:00
Marshall Greenblatt a0a0ae326c libcef:
- Initialize WebKit in the UI thread to avoid asserts due to WTF::isMainThread() returning false. (Issue #21, Issue #24).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@27 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-06-01 14:12:34 +00:00
Marshall Greenblatt c295931b1e - Move frame-related methods from CefBrowser into a new CefFrame class.
- Add CefBrowser::Get*Frame() methods for retrieving the appropriate CefFrame instance.
- Add a CefFrame attribute to CefHandler callback methods where appropriate.
- Add support for V8 JavaScript extensions and values via CefV8Value and CefV8Handler.  Native C++ and user-defined JavaScript object hierarchies may now be created and accessed using the CEF API.
- Remove the CefHandler and CefVariant classes and related CefBrowser methods that have been obsoleted by the addition of CEF V8 support.
- Add the CefRegisterExtension() function for registering system-wide V8 extensions.
- Add the CefHandler::HandleJSBinding() callback method for attaching V8 values to the global frame JavaScript object.  This method replaces the previous technique of calling CefBrowser::AddJSHandler().
- Add new wrapper template methods for simplifying DLL wrapper implementations.
- Move cef_string* files from libcef_dll to libcef so that projects can link libcef statically without errors.
- Fix crashes when CEF exits due to object constructors being executed on non-UI threads if the application is closed while a page is still loading.
- Update the cefclient project to reflect changes and demonstrate the new APIs.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@26 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-05-28 00:31:21 +00:00
Marshall Greenblatt 0a98edff56 libcef:
- Fix ASSERT in CefBrowserImpl::UIT_GetPagesCount() when no default printer is configured (Issue #20).
- Remove non-existent WebFrame objects while iterating over the bound object list in CefJSContainer::BindToJavascript().  WebFrame objects are destroyed when navigating from a page with more frames to a page with less frames.  If we don't remove the non-existent frames they will remain in the list until the browser window is destroyed.
- Don't call UIT_* functions from class destructors as destruction may occur on a different thread.

libcef: Update due to underlying chromium changes.
- Header file locations changed from third_party/WebKit/WebKit to webkit/api as a result of WebKit unforking.
- Project file locations changed due to GYP now being used for WebKit builds.
- Add simple_clipboard_impl.cc in the libcef directory because it has been moved from webkit/glue to test_shell.
- Changes related to navigation.
- New parameters added to WebViewDelegate methods.

libcef_dll: Update due to underlying chromium changes.
- webkit_resources.rc and webkit_strings_en-US.rc moved from grit_derived_sources to obj/global_intermediate/webkit.


git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@24 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-05-15 15:09:51 +00:00
Marshall Greenblatt 52196814b2 libcef: Update due to underlying chromium changes.
- Add WebKit-based printing support.
- Add re-sizable text area support.
- In release build, only log error messages and above.
- Modify cef.sln to point at new file locations for dynamically generated project files.
- More webkit_glue and webkit_init reorganization.
- Movement towards using Web* basic types.
- Include WebKit headers using the full path.
- Add app cache support in ResourceLoaderBridge.
- Method/member changes in WebViewDelegate.
- Simplify code in PrintSettings.
- Remove the WM_DESTROY and WM_NCDESTROY cases in WebWidgetHost::WndProc() to avoid a crash when closing a browser window via a DestroyWindow() call on a parent window.

libcef_dll:
- Add webkit_resources.rc and webkit_strings_en-US.rc to the project in order to support localized strings.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@23 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-04-28 00:29:14 +00:00
Marshall Greenblatt 3f5a01e969 libcef: Update due to underlying chromium changes.
- Add unique IDs for browser instances because ResourceLoaderBridge::Create() now receives a routing ID instead of a WebFrame pointer.  The unique ID is assigned to a browser in CefContext::AddBrowser() and attached to a request in  BrowserWebViewDelegate::WillSendRequest().
- Add upload progress notification support to resource loader bridge.
- WebFrame::ExecuteJavaScript() changed to WebFrame::ExecuteScript().
- More functions moved into webkit_glue::WebKitClientImpl.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@22 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-24 15:06:38 +00:00
Marshall Greenblatt d942863661 libcef: Update due to underlying chromium changes.
- security_info attribute added to OnCompletedRequest() in ResourceLoaderBridge.
- More functions moved into webkit_glue::WebKitClientImpl.
- First parameter of WebViewDelegate::RunJavaScript*() methods changed from WebView pointer to WebFrame pointer.
- np_v8object.h renamed to NPV8Object.h and other related naming changes.
- Add support for v8 gears and interval extensions.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@21 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-09 19:38:59 +00:00
Marshall Greenblatt 08a19d5384 libcef:
- Add the CefBrowser::CreateBrowserSync() method for synchronously creating a browser instance. (Issue #13, Suggested implementation by: vridosh)
- Add CefBrowser::SetFocus() and CefHandler::HandleTakeFocus() methods to deal with keyboard focus changes. (Issue #13, Suggested implementation by: vridosh)
- Add CefHandler::HandleBeforeWindowClose() to perform actions immediately before the browser window is destroyed. (Issue #13, Suggested implementation by: vridosh)
- Replace windows-specific address resolution code with GURL() in CefBrowserImpl::UIT_LoadURLForRequest(), CefBrowserImpl::UIT_LoadHTML() and CefBrowserImpl::UIT_LoadHTMLForStreamRef(), and move the methods from browser_impl_win.cc to browser_impl.cc. (Issue #13, Suggested implementation by: vridosh)
- Fix reference counting bugs, class definition problems and CefContext::Shutdown() bug resulting in Cef object leaks. (Issue #15)
- Add WebKit dependancy to libcef project.
- Add basic object count debugging for CefCToCpp and CefCppToC classes.

cefclient:
- Initialize the strPtr parameter to avoid URLs suffixed with garbage. (Issue #13, Fix by: vridosh)

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@19 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-08 02:26:16 +00:00
Marshall Greenblatt 3aa0d4c0fa libcef:
- Add support for specifying the cache location (file path or in-memory) via a new 'cache_path' parameter to CefInitialize().
- Create popup windows with a NULL parent window handle so that they don't stay on top of the original application window.

cefclient:
- Properly handle address change and title change for popup windows.
- Add a test for creating a popup window.
- Define TEST_SINGLE_THREADED_MESSAGE_LOOP by default.


git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@18 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-06 19:20:44 +00:00
Marshall Greenblatt a5bdcddd1e libcef: Update due to underlying chromium changes.
- Fix problem displaying select lists due to ordering of focus events in WebWidgetHost::MouseEvent()  (issue #17).
- Add new BrowserWebKitInit class and related webkit_glue changes.
- Add webkit_glue::InitializeTextEncoding() function called from the main thread in CefContext::Initialize() to avoid an assert in  third_party\WebKit\WebCore\platform\text\TextEncodingRegistry.cpp buildBaseTextCodecMaps().
- V8NPObject::v8_object member renamed to V8NPObject::v8Object.
- Add WebKit project dependency.

libcef_dll:
- Fix crash when creating a popup window due to not duplicating the m_windowName member in cpptoc\handler_cpptoc.cc handler_handle_before_created().

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@17 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-05 17:14:16 +00:00
Marshall Greenblatt 35e21da884 Add DLL build support and wrapper that allows clients to transparently switch between static and dynamic CEF builds.
- The libcef project now builds libcef_static.lib instead of libcef.lib.
- The libcef_dll project builds libcef.lib and libcef.dll.  This DLL exports the new CEF C API defined in cef_capi.h, cef_nplugin_capi.h, cef_string.h and cef_string_map.h.
- The libcef_dll_wrapper project builds libcef_dll_wrapper.lib.  This static library wraps the new C API calls with an implementation of the CEF C++ interface as defined in cef.h and cef_nplugin.h.
- The cefclient project now uses the DLL instead of the static library.
- Type definitions have been moved from cef.h to cef_types.h so that they can be shared by both cef.h and cef_capi.h.  This change required some enumeration member name modifications throughout the code base.
- Fixed variable naming inconsistencies.
- Added CefVariant::GetArraySize() method and _NPN_ArrayObjectGetVectorSize() function.
- Remove the ProjectSection(WebsiteProperties) sections from cef.sln to improve VS2005 performance.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@16 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-05 01:10:06 +00:00
Marshall Greenblatt e75e27e32c libcef: Update due to underlying chromium changes & bug fixes.
- Add v8_snapshot_cc project dependency (Issue # 11, fix by: vridosh)
- Fix possible crash on exit in browser_resource_loader_bridge.cc (Issue # 12, fix by: vridosh).
- localized_strings project renamed to webkit_strings.
- GetBitmapResource() in browser_webkit_glue.cc now returns GlueBitmap* instead of GlueBitmap.
- GetLocalizedString() in browser_webkit_glue_win.cc now returns string16 instead of std::wstring.
- Add BrowserWebViewDelegate::SetStatusbarText() method.
- Move BrowserWebViewDelegate::DidMove() from browser_webview_delegate.cc to browser_webview_delegate_win.cc.
- Move FromWindow() predefine in webwidget_host out of the header file.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@15 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-02-12 16:25:52 +00:00
Marshall Greenblatt 577b8387cf libcef: Update due to underlying chromium changes.
- Add simple_clipboard_impl.cc to the libcef project because it is no longer included as part of the webkit/glue project.
- Add the FindProxyForUrl() function to browser_resource_loader_bridge.cc.
- NPAPI function pointers are now stored in a structure member of NPAPI::PluginVersionInfo.
- Change gfx::NativeWindow to gfx::NativeView in webview_host and webview_host.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@14 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-02-04 22:17:38 +00:00
Marshall Greenblatt 15f6c270fa libcef:
- Allow execution of CEF using the current application's message loop.
tests/cefclient:
- Support running of the cefclient application using a single message loop via the TEST_SINGLE_THREADED_MESSAGE_LOOP define.

Issue #1, Suggested implementation by: vridosh

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@13 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-29 18:53:17 +00:00
Marshall Greenblatt 9d3cd36b4b libcef:
- Add CefBrowser::ExecuteJavaScript() method.
tests/cefclient:
- Add test for ExecuteJavaScript method.

Issue 1, Suggested implementation by: vridosh


git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@12 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-29 17:48:16 +00:00
Marshall Greenblatt 729f9279bc libcef:
- Allow creation of a browser window without loading a URL.  Using about:blank results in an entry being added to the browser history.

Issue #9, Fix by: vridosh

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@11 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-29 17:11:03 +00:00
Marshall Greenblatt 73027bb5a9 libcef: Update due to underlying chromium changes.
- External plugin loading support is now provided by webkit/glue/plugins so the libcef/plugins directory has been eliminated, with related changes.
- Modify the CefPluginInfo structure to use a more friendly data organization format.
- Remove CefUnregisterPlugin() as it is no longer functional.
- WebViewDelegate::ShowContextMenu() now receives the menu type as a bit-masked flag, so adjust the API accordingly.
- WebViewDelegate::GetContainingView() now returns a gfx::NativeViewId instead of a gfx::NativeView.
- Modify BrowserRequestContext because GetUserAgent() is now a virtual method of URLRequestContext.
- The data buffer in RequestProxy is now a net::IOBuffer.
- Add webkit_glue::GetScreenInfo().

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@10 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-29 16:36:37 +00:00
Marshall Greenblatt a18491fbd5 libcef: Update due to underlying chromium changes.
- Glue now depends on WebCore_prebuild (and not WebCore).
- WebCore depends on WebCore_prebuild.
- libxml_config and libxslt_config projects are gone.
- Initialize the global CommandLine object in ThreadHandlerUI().
- Changes to WebPluginDelegate.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@8 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-21 21:57:19 +00:00
Marshall Greenblatt 299030afe0 libcef:
- CefBytesWriter::GetDataString() does not properly size the returned string.

Issue #4, Fix by: vridosh

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@7 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-21 15:03:31 +00:00
Marshall Greenblatt 8dab71f659 libcef: Update due to underlying chromium changes.
- Canvas classes moved from gfx namespace to skia namespace.
- Include files moved from WebKit/port to third_party/WebKit.
- Add IsMediaPlayerAvailable() webkit_glue function.
- WebWidgetDelegate::GetContainingWindow() changed to WebWidgetDelegate::GetContainingView().
- Changed HCURSOR to WebCursor and HWND to gfx::NativeWindow.
- WebPluginInfo 'file' member changed to 'path'.
- Use base::LazyInstance for static object in BrowserPluginInstance (should be done at some point for BrowserPluginLib and BrowserPluginList as well).
- BrowserPluginStream::Open() adds additional 'request_is_seekable' parameter.
- Add PLUGIN_QUIRK_PATCH_SETCURSOR support to BrowserWebPluginDelegateImpl.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@6 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-01-14 19:54:37 +00:00
Marshall Greenblatt a08ad505ad libcef:
- Add support for embedded netscape-style plugins.
- Add new webkit_glue VisitedLinkHash() and IsLinkVisited() functions required by underlying chromium changes.
cefclient:
- Add sample netscape-style plugin implementation and related Plugin item on the Tests menu.
- Increase the speed of the update timer so that buttons refresh closer to real-time.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@5 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2008-12-14 04:49:18 +00:00
Marshall Greenblatt d0639c9f4e libcef: Modifications due to underlying chromium changes.
- Change gfx::WindowHandle to gfx::NativeWindow and gfx::ViewHandle to gfx::NativeView.
- Add proxy support to BrowserWebViewDelegate.
- Add webkit\port\platform\graphics\skia path to libcef_webkit_includes.vsprops due to relocation of PlatformContextSkia.h.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@4 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2008-12-13 18:42:19 +00:00
Marshall Greenblatt 166b8524dd libcef:
- Modify BrowserWebViewDelegate::UpdateSessionHistory() to fix compile error due to underlying chromium changes.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@3 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2008-12-05 16:38:27 +00:00
Marshall Greenblatt 9c58b671a8 Initial commit of libcef and cefclient projects.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@2 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2008-12-02 15:48:14 +00:00