Commit Graph

150 Commits

Author SHA1 Message Date
Marshall Greenblatt ff8c5a6caa Update generated file copyright year 2016-01-08 14:00:27 -05:00
Marshall Greenblatt f207a555a3 Add support for response filtering (issue #515).
- Add a new CefRequestHandler::GetResourceResponseFilter method and
  CefResponseFilter class.
2015-12-08 13:47:52 -05:00
Marshall Greenblatt 8aac23386e Update to Chromium revision cb947c01 (#352221)
- Implement CefRequestHandler::OnBeforeBrowse using NavigationThrottle
  instead of ResourceThrottle (see http://crbug.com/537634). The CefRequest
  object passed to OnBeforeBrowse will no longer have an associated request
  identifier.
- Mac: Remove additional helper apps which are no longer required (see
  http://crbug.com/520680)
- Remove the UR_FLAG_REPORT_RAW_HEADERS flag which is no longer supported (see
  http://crbug.com/517114)
- Remove the CefBrowserSettings.java parameter. Java is an NPAPI plugin and
  NPAPI plugins are no longer supported (see http://crbug.com/470301#c11)
- Add CefFormatUrlForSecurityDisplay function in cef_parser.h
- Fix crash when passing `--disable-extensions` command-line flag (issue #1721)
- Linux: Fix NSS handler loading (issue #1727)
2015-10-09 17:31:27 -04:00
Marshall Greenblatt dc3aae19e8 Add plugin placeholder and policy support (issue #1708)
- Default plugin loading policy can be specified using the new
  `--plugin-policy=[allow|block|detect]` command-line flag.
- Move CefRequestHandler::OnBeforePluginLoad to
  CefRequestContextHandler and add a new policy argument that
  supports different actions (allow, block, detect, disable) on a
  per-plugin-instance basis.
- Add CefContextMenuHandler::RunContextMenu for providing a custom
  context menu implementation.
- Add CefResourceBundleHandler::GetDataResourceForScale for
  returning scaled resources (issue #1272).
- Add CefResourceBundle for retrieving resources from the resource
  bundle (*.pak) files loaded by CEF during startup or via the
  CefResourceBundleHandler.
- Linux: Fix Debug build IO access warning with CefGetMimeType.
- cef_unittests: Move the refcounting implementation from TestHandler
  to subclasses in order to support interface inheritance from
  subclasses.
2015-09-22 12:28:46 +03:00
Marshall Greenblatt 9e0d84d94a Windows: Add CefEnableHighDPISupport function and fix high-dpi scaling issues (issue #1674) 2015-08-07 16:04:03 -04:00
Alexei Bykov 85f83680d7 Add PDF printing support (issue #1478). 2015-06-04 13:15:26 -04:00
Yu-Teh Shen d02f03a71a Add JSON parsing support (issue #1188). 2015-06-03 15:03:41 -04:00
Marshall Greenblatt 0369063810 - Add CefValue for wrapping various value types in a single object (issue #1607).
- Add IsSame() and IsEqual() methods for comparing CefValue* types.
- Improve CefValue* documentation.
2015-04-16 15:04:56 +02:00
Marshall Greenblatt ae91d8f4e5 - cefclient: Add `background-color` command-line argument (issue #1161).
- Rename cef_url.h to cef_parser.h.
- Add new CefParseCSSColor function.
2015-04-10 11:35:31 +02:00
Marshall Greenblatt 4a905f1e2b - Allow asynchronous continuation of OnBeforeResourceLoad (issue #1593).
- Use CefRequestCallback for most asynchronous CefRequestHandler methods.
2015-04-08 10:33:49 +02:00
Marshall Greenblatt ca0e381681 Add support for complete isolation of storage and permissions (cache, cookies, localStorage, access grants, etc) on a per-request-context basis (issue #1044).
- CefRequestContext instances can be configured using a new CefRequestContextSettings structure passed to CefRequestContext::CreateContext.
- Scheme registration is now per-request-context using new CefRequestContext::RegisterSchemeHandlerFactory and ClearSchemeHandlerFactories methods.
- Cookie managers are now per-request-context by default and can be retrieved using a new CefRequestContext::GetDefaultCookieManager method.
- CefURLRequest::Create now accepts an optional CefRequestContext argument for associating a URL request with a context (browser process only).
- The CefRequestContextHandler associated with a CefRequestContext will not be released until all objects related to that context have been destroyed.
- When the cache path is empty an in-memory cache ("incognito mode") will be used for storage and no data will be persisted to disk.
- Add CefSettings.user_data_path which specifies the location where user data such as spell checking dictionary files will be stored on disk.
- Add asynchronous callbacks for all CefCookieManager methods.
- Add PK_LOCAL_APP_DATA and PK_USER_DATA path keys for retrieving user directories via CefGetPath.
- cefclient: Add "New Window" test that creates a new window unrelated to existing windows. When used in combination with `--request-context-per-browser` the new window will be given a new and isolated request context.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@2040 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2015-03-02 20:25:14 +00:00
Marshall Greenblatt 7c5cb76692 - Pass SSL certificate information to CefRequestHandler::OnCertificateError via a new CefSSLInfo interface (issue #1530).
- cefclient: Improve error message text and use a data: URI instead of LoadString for loading error messages (issue #579).
- Add functions in cef_url.h for base64 and URI encoding/decoding (issue #579).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@2028 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2015-02-11 18:15:04 +00:00
Marshall Greenblatt 758d5c23c5 Add CefFindHandler for reporting find results (issue #1482).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1969 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2015-01-12 21:04:08 +00:00
Marshall Greenblatt 7fe86e0b26 Update copyright year in generated files.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1961 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2015-01-05 13:03:50 +00:00
Marshall Greenblatt 8eb14dd71f Add CefBrowserHost::GetNavigationEntries for retrieving a snapshot of navigation history (issue #1442).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1924 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-11-24 19:23:26 +00:00
Marshall Greenblatt 0b78461f5b Update to Chromium revision ad468e8b (#292352).
- Building Chromium using SVN is no longer supported.
- Remove CefDOMEvent and CefDOMEventListener (issue #933).
- Remove CefRenderHandler::OnScrollOffsetChanged (http://crbug.com/404656).
- Remove UR_FLAG_REPORT_LOAD_TIMING (https://codereview.chromium.org/451623002/).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1816 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-09-04 17:53:40 +00:00
Marshall Greenblatt 122397acfc Introduce the use of Chromium types (issue #1336).
Changes to the CEF public API:
- Add base::Bind, base::Callback, base::Lock, base::WeakPtr, scoped_refptr, scoped_ptr and supporting types.
- Add include/wrapper/cef_closure_task.h helpers for converting a base::Closure to a CefTask.
- Change CefRefPtr to extend scoped_refptr.
-- Change CefBase method signatures to match RefCountedThreadSafeBase.
- Change IMPLEMENT_REFCOUNTING to use base::AtomicRefCount*.
-- Remove the CefAtomic* functions.
-- IMPLEMENT_REFCOUNTING now enforces via a compile-time error that the correct class name was passed to the macro.
- Change IMPLEMENT_LOCKING to use base::Lock.
-- Remove the CefCriticalSection class.
-- Deprecate the IMPLEMENT_LOCKING macro.
-- base::Lock will DCHECK() in Debug builds if lock usage is reentrant.
- Move include/internal/cef_tuple.h to include/base/cef_tuple.h.
- Allow an empty |callback| parameter passed to CefBeginTracing.

Changes to the CEF implementation:
- Fix incorrect names passed to the IMPLEMENT_REFCOUNTING macro.
- Fix instances of reentrant locking in the CefXmlObject and CefRequest implementations.
- Remove use of the IMPLEMENT_LOCKING macro.

Changes to cef_unittests:
- Add tests/unittests/chromium_includes.h and always include it first from unit test .cc files to avoid name conflicts with Chromium types.
- Fix wrong header include ordering.
- Remove use of the IMPLEMENT_LOCKING macro.

Changes to cefclient and cefsimple:
- Use base::Bind and cef_closure_task.h instead of NewCefRunnable*.
- Remove use of the IMPEMENT_LOCKING macro.
- Fix incorrect/unnecessary locking.
- Add additional runtime thread checks.
- Windows: Perform actions on the UI thread instead of the main thread when running in multi-threaded-message-loop mode to avoid excessive locking.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1769 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-14 22:18:51 +00:00
Marshall Greenblatt 6702fc573a Introduce the use of Chromium types (issue #1336).
- Move include/cef_build.h to include/base/cef_build.h.
- Move libcef_dll/cef_macros.h to include/base/cef_macros.h.
- Move include/cef_trace_event.h to include/base/cef_trace_event.h and include/internal/cef_trace_event_internal.h.
- Remove the "CEF_" prefix from TRACE macros.
- Add new include/base/cef_logging.h and include/internal/cef_logging_internal.h for logging support.
- Add new include/wrapper/cef_helpers.h for CEF_REQUIRE_*_THREAD macros and CefScopedArgArray.
- Delete the util.h headers used by tests that duplicated the above functionality.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1767 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-11 20:10:05 +00:00
Marshall Greenblatt 8313963a27 Linux: Add new CefPrintHandler and CefPrintSettings classes to support printing and a GTK implementation in cefclient (issue #1258).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1762 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-10 15:41:30 +00:00
Marshall Greenblatt 6f63f5d4f8 - Linux: cefclient: Add a GTK implementation of CefDialogHandler (issue #1258).
- Add new CefGetExtensionsForMimeType function.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1761 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-09 18:03:43 +00:00
Marshall Greenblatt dea4daffd7 Implement off-screen rendering support using delegated rendering (issue #1257).
This implementation supports both GPU compositing and software compositing (used when GPU is not supported or when passing `--disable-gpu --disable-gpu-compositing` command-line flags). GPU-accelerated features (WebGL and 3D CSS) that did not work with the previous off-screen rendering implementation do work with this implementation when GPU support is available.

Rendering now operates on a per-frame basis. The frame rate is configurable via CefBrowserSettings.windowless_frame_rate up to a maximum of 60fps (potentially limited by how fast the system can generate new frames). CEF generates a bitmap from the compositor backing and passes it to CefRenderHandler::OnPaint.

The previous CefRenderHandler/CefBrowserHost API for off-screen rendering has been restored mostly as-is with some minor changes:

- CefBrowserHost::Invalidate no longer accepts a CefRect region argument. Instead of invalidating a specific region it now triggers generation of a new frame.
- The |dirtyRects| argument to CefRenderHandler::OnPaint will now always be a single CefRect representing the whole view (frame) size. Previously, invalidated regions were listed separately.
- Linux: CefBrowserHost::SendKeyEvent now expects X11 event information instead of GTK event information. See cefclient for an example of converting GTK events to the necessary format.
- Sizes passed to the CefRenderHandler OnPaint and OnPopupSize methods are now already DPI scaled. Previously, the client had to perform DPI scaling.
- Includes drag&drop implementation from issue #1032.
- Includes unit test fixes from issue #1245.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1751 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-30 22:30:29 +00:00
Marshall Greenblatt f6bc617bc5 Remove the legacy off-screen rendering implementation. A new implementation is required (issue #1257).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1678 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-25 01:36:58 +00:00
Marshall Greenblatt 8078afe7bf Update to Chromium revision 248478.
- Add new CefSettings.windowless_rendering_enabled value that must be enabled when using windowless (off-screen) rendering.
- Improve naming and documentation for CefWindowInfo members.
- CefBeginTracing now completes asynchronously.
- Rename CefEndTracingAsync to CefEndTracing.
- Rename CefCompletionHandler to CefCompletionCallback.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1592 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-05 20:35:45 +00:00
Marshall Greenblatt 2f8b024797 Add a CefGetMimeType function for retrieving the mime type of a file extension (issue #1098).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1577 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-28 17:26:59 +00:00
Marshall Greenblatt 7074154725 Update copyright year in generated files.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1557 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-06 19:48:18 +00:00
Marshall Greenblatt 099664fba0 Update to Chromium revision 241258.
- Update tracing implementation to use the new file-based approach (issue #1157).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1549 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-12-17 22:04:35 +00:00
Marshall Greenblatt f5bc72b234 Add sandbox support (issue #524).
- The sandbox is now enabled by default on all platforms. Use the CefSettings.no_sandbox option or the "no-sandbox" command-line flag to disable sandbox support.
- Windows: See cef_sandbox_win.h for requirements to enable sandbox support.
- Windows: If Visual Studio isn't installed in the standard location set the CEF_VCVARS environment variable before running make_distrib.py or automate.py (see msvs_env.bat).
- Linux: For binary distributions a new chrome-sandbox executable with SUID permissions must be placed next to the CEF executable. See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for details on setting up the development environment when building CEF from source code.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1518 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-15 18:47:02 +00:00
Marshall Greenblatt 518888dc55 Add CefSetOSModalLoop function (issue #194).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1384 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-08-22 17:11:19 +00:00
Marshall Greenblatt c19d8c11ab Remove the debug count check for CefCookieManager.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1299 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-07-11 16:55:09 +00:00
Marshall Greenblatt 828e6ffe46 Add support for CefDragHandler::OnDragEnter (issue #601).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1282 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-06-24 15:45:58 +00:00
Marshall Greenblatt 9e0ba3801e Add CefRequestHandler::OnCertificateError() callback (issue #345).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1176 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-04-04 17:50:35 +00:00
Marshall Greenblatt 21b6c4e280 Use the platform API hash instead of build revision for checking libcef compatibility (issue #914).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1161 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-03-25 22:15:33 +00:00
Marshall Greenblatt 25e54b1800 Add new CefNowFromSystemTraceTime() method (issue #908).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1147 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-03-15 19:57:20 +00:00
Marshall Greenblatt d65179c135 Add the ability to persist session cookies (issue #881).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1098 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-02-13 19:53:41 +00:00
Marshall Greenblatt 81d27df883 Introduce chrome proxy implementation based on command-line flags (issue #600).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1080 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-02-06 20:41:54 +00:00
Marshall Greenblatt afe3cb1d67 Support custom V8 bindings on WebWorker threads (issue #451).
- Add CefRenderProcessHandler callbacks for WebWorker context creation, release and uncaught exceptions.
- Add CefTaskRunner class that supports posting of tasks to standard threads and WebWorker threads.
- Organize V8 internal state information on a per-thread/per-Isolate basis.
- Add webkit_451.patch that provides the WebKit implementation.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@972 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-01-03 17:24:24 +00:00
Marshall Greenblatt 22ed9d9140 Update the copyright year on auto-generated files.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@969 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-01-02 10:13:43 +00:00
Marshall Greenblatt 6b7716f64b Windows: Add off-screen rendering support (issue #518).
- Popup menus, drag&drop and GPU acceleration are not currently supported.
- Testing is enabled in cefclient by passing the "off-screen-rendering-enabled" command-line flag.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@919 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-11-21 00:40:15 +00:00
Marshall Greenblatt e45ff9e838 Add a new CefGetGeolocation function for retrieving geolocation information via an API callback (issue #764).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@868 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-10-19 18:39:44 +00:00
Marshall Greenblatt e1f2be1785 - Expose tracing functionality via new cef_trace.h and cef_trace_event.h headers (issue #711).
- Add about:tracing UI support (issue #711).
- Avoid unnecessary string type conversions for values and process messages.
- Add support for a 'note' attribute in patch.cfg.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@865 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-10-17 22:45:49 +00:00
Marshall Greenblatt eda69594ef - Provide default implementations of the file chooser dialogs (open, open multiple, save) on all platforms (issue #761).
- Add a new CefBrowserHost::RunFileDialog method that displays the specified file chooser dialog and returns the results asynchronously (issue #761).
- Add a new CefDialogHandler::OnFileDialog callback that allows the application to provide custom UI for file chooser dialogs (issue #761).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@862 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-10-16 19:28:07 +00:00
Marshall Greenblatt a3ac7b446f Add new CefRequestHandler::OnBeforePluginLoad callback and functions for controlling plugin loading and life span (issue #645).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@822 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-09-28 20:14:02 +00:00
Marshall Greenblatt 149ae3df88 Add CefRequestHandler::OnQuotaRequest callback for handling webkitStorageInfo.requestQuota requests (issue #732).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@816 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-09-27 22:52:15 +00:00
Marshall Greenblatt ea6c91fbdb Add new CefV8StackTrace and CefV8StackFrame interfaces to support retrieval of the JavaScript stack trace for the currently active V8 context (issue #682).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@727 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-07-25 11:50:35 +00:00
Marshall Greenblatt 421001ba9d - Add download handling support via new CefDownloadHandler and CefDownloadItem interfaces (issue #516).
- Fix setting of CefKeyEvent.focus_on_editable_field when the underlying RenderViewHost changes.
- Fix potential crash if URLRequest objects are still in-progress upon shutdown.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@715 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-06-28 17:21:18 +00:00
Marshall Greenblatt 9f708dfcd2 - Add example to cefclient of launching DevTools in an external browser window and process using new CefGetPath and CefLaunchProcess functions (issue #639).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@713 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-06-26 16:47:05 +00:00
Marshall Greenblatt 9df142f832 - Add CefURLRequest support (issue #517).
- Add CefBrowserProcessHandler interface (issue #650).
- Internally re-register supported schemes with CefCookieManager after changing the storage path (issue #651).
- Add CefResourceHandler callbacks for blocking cookie loading and saving (issue #652).
- Allow custom scheme handlers for requests that do not originate from browser content (issue #653).
- Use 'int' instead of 'RequestFlags' for CefRequest::GetFlags and SetFlags (issue #654).
- Rename cef_request.h CreateObject methods to Create (issue #655).
- Add #ifdef guards to cef_tuple.h to allow the use of both cef_runnable.h and base/bind.h in the same unit test source file.
- Retrieve cookieable schemes as part of ClientApp::RegisterCustomSchemes and register with the global cookie manager.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@697 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-06-19 16:29:49 +00:00
Marshall Greenblatt d8caf27e3b - Add keyboard and focus notifications (issue #508).
- Add CefDOMNode::IsEditable method.
- List interfaces alphabetically in CefClient.
- Correct error checking for code and command input.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@680 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-06-11 15:52:49 +00:00
Marshall Greenblatt f74e3f4bc9 Make the |target_domain| parameter to CefAddCrossOriginWhitelistEntry and CefRemoveCrossOriginWhitelistEntry optional (issue #609).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@668 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-06-04 18:45:44 +00:00
Marshall Greenblatt db3a9817ed Add direct DOM access (issue #511).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@610 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-27 21:19:06 +00:00
Marshall Greenblatt 4fe0ddf640 Add ability to directly retrieve plugin information (issue #575).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@609 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-27 19:12:01 +00:00
Marshall Greenblatt 6c8f4644aa - Update to Chromium revision 133430.
- Move custom scheme registration to CefApp::OnRegisterCustomSchemes(). This is required by the introduction of ContentClient::AddAdditionalSchemes() and fixes a race condition when registering standard schemes in different processes.
- Execute V8 functions using V8Proxy. This is required for inspector instrumentation to work correctly and fixes an assertion in WebCore related to V8RecursionScope.
- Enable verbose V8 TryCatch logging.
- Mac: Expose UnderlayOpenGLHostingWindow interface that should be used for all CEF windows.
- Add CefSettings.remote_debugging_port option.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@602 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-24 18:01:48 +00:00
Marshall Greenblatt 7bc494880f Add context menu support (issue #509):
- Add new CefContextMenuHandler, CefContextMenuParams and CefMenuModel classes.
- Add cef_strings.grd and related infrastructure for supporting translation of CEF strings.
- Generate include/cef_pack_resources.h and include/cef_pack_strings.h files at build time that include all IDs used by CEF pack files.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@595 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-19 20:31:46 +00:00
Marshall Greenblatt 07bba96106 Add support for JavaScript alert, confirm, prompt and onbeforeunload dialogs (issue #507).
- Add CefJSDialogHandler and CefJSDialogCallback interfaces.
- Add default dialog implementations for Windows and Mac OS-X.
- Add "JavaScript Dialogs" example to cefclient.
- Change TestHandler::AddResource to ignore the query component when matching URLs.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@594 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-16 21:15:27 +00:00
Marshall Greenblatt 34adee805c Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@571 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-03 01:34:16 +00:00
Marshall Greenblatt b568f160d9 Rename CEF1 files from /trunk to /trunk/cef1 (issue #564).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@570 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-04-03 01:27:13 +00:00
Marshall Greenblatt c814366421 - Add CefCookieManager interface and CefRequestHandler::GetCookieManager for custom cookie handling (issue #542).
- Support getting and setting cookies with custom scheme handlers (issue #555).
- Support calling CefFrame::GetIdentifier and CefFrame::GetURL on any thread (issue #556).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@542 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-03-22 22:08:05 +00:00
Marshall Greenblatt e258cbc536 Revert revision 534 changes: Add CefCookieManager interface and CefRequestHandler::GetCookieManager for custom cookie handling (issue #542).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@541 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-03-21 16:14:14 +00:00
Marshall Greenblatt ef43df264a Add CefCookieManager interface and CefRequestHandler::GetCookieManager for custom cookie handling (issue #542).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@534 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-03-15 22:38:02 +00:00
Marshall Greenblatt 1a092a0c1a Add the ability to (issue #236):
1. Disable pack file loading via CefSettings.pack_loading_disabled.
2. Customize pack file load paths via CefSettings.pack_file_path and CefSettings.locales_dir_path.
3. Provide custom resource bundle handling via CefResourceBundleHandler.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@501 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-02-16 17:11:49 +00:00
Marshall Greenblatt 1073577d03 Make CEF compliant with Google/Chromium style (issue #473).
- Add a new check_style tool based on Google's cpplint that can be used to verify compliance of pending changes and specific files/directories.
- Update existing CEF source code to be compliant with the style requirements.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@463 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-01-09 23:46:23 +00:00
Marshall Greenblatt b8ba27a671 Add the ability to restrict V8 extension loading by frame using a new CefPermissionHandler::OnBeforeScriptExtensionLoad() callback (issue #471).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@457 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2012-01-05 19:34:20 +00:00
Marshall Greenblatt ff976bc07f Break cef.h into multiple headers (issue #142).
- Move wrapper classes from cef_wrapper.h to wrapper/ directory.
- Move C API functions/classes from cef_capi.h to capi/ directory.
- Move global function implementations from cef_context.cc to *_impl.cc files.
- Output auto-generated file paths in cef_paths.gypi.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@442 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-12-23 17:36:30 +00:00
Marshall Greenblatt fe80635c69 Add CefQuitMessageLoop function (issue #443).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@412 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-12-08 13:25:26 +00:00
Marshall Greenblatt 64e08c2918 - Auto-generate all C/C++ translation code (issue #33).
- Change index parameter types from int to size_t to make 0-based range implicit.
- Make CefPrintOptions and CefMenuInfo proper wrapper classes.
- Normalize the naming of menu-related types.
- Remove unused command_line variable from test_suite.cc.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@408 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-12-08 01:38:30 +00:00
Marshall Greenblatt 7361732f92 - Add a new CefApp interface that provides global handlers and gets passed to CefInitialize() (issue #399).
- Add a new CefProxyHandler interface to allow applications to resolve proxy information (issue #389).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@394 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-11-23 22:47:09 +00:00
Marshall Greenblatt 3279ee3adf Update to Chromium revision 110703.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@388 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-11-18 22:10:53 +00:00
Marshall Greenblatt 3f2735909a Verify that libcef build revision and API/header revision match when initializing CEF (issue #431).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@386 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-11-18 17:30:55 +00:00
Marshall Greenblatt 28adf8908a Add CefSetCookiePath() and CefSetStoragePath() functions for changing cookie and localStorage locations while CEF is running (issue #347).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@353 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-11-02 19:50:00 +00:00
Marshall Greenblatt 6b134b4def - Add CefSettings.local_storage_quota and session_storage_quota options for setting localStorage and sessionStorage quota limits respectively (issue #348).
- Add Cef*Storage() functions and CefStorageVisitor interface for accessing localStorage and sessionStorage data via the native API (issue #361).
- Add a "cache_path" command-line flag option to cef_unittests for running the unit tests with a cache path value (issue #368).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@302 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-10-06 13:34:47 +00:00
Marshall Greenblatt 63aa102a6a Improvements to scheme handling (issue #246).
- Break CefRegisterScheme into separate CefRegisterCustomScheme and CefRegisterSchemeHandlerFactory functions.
- Allow registration of handlers for built-in schemes.
- Supply scheme and request information to CefSchemeHandlerFactory::Create.
- Add CrossOriginWhitelist functions for bypassing the same-origin policy with both built-in and custom standard schemes.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@247 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-05-27 16:20:32 +00:00
Marshall Greenblatt 73f4d5a5e6 Add OnResourceReponse and CefContentFilter for viewing and filtering response content (issue #241).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@243 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-05-23 23:39:07 +00:00
Marshall Greenblatt dbe8de277f Significant API changes for issue #218:
- Replace CefHandler with a new CefClient interface and separate handler interfaces.
- Add support for virtual inheritance to allow multiple CefBase parented interfaces to be implemented in the same class.
- Replace CefThreadSafeBase with IMPLEMENT_* macros to support virtual inheritance and to only provide locking implementations when needed.
- Move the CefBrowserSettings parameter from CefInitialize to CreateBrowser.
- Add a new cef_build.h header that provides platform-specific and OS_* defines.
- Introduce the use of OVERRIDE to generate compiler errors on Windows if a child virtual method declaration doesn't match the parent declaration.
- Use NDEBUG instead of _DEBUG because _DEBUG is not defined on Mac. (issue #240).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@235 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-05-20 14:42:25 +00:00
Marshall Greenblatt a66c733ab6 - Add cookie get/set support (issue #88).
- Move classes that extend structures to cef_types_wrappers.h and implement using the new CefStructBase template class.
- Change the HandleProtocolExecution |allow_os_execution| argument to pass by reference to maintain consistency with other API functions.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@217 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-04-09 01:05:30 +00:00
Marshall Greenblatt 7ec29b5d87 - Add support for entering a V8 context asynchronously (issue #203).
- Add support for V8 accessors (issue #203).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@215 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-04-07 01:58:49 +00:00
Marshall Greenblatt ff983a6e72 - Add off-screen rendering support on Windows. This involves a number of new CefBrowser and CefHandler methods. See the "Off-Screen Rendering Example" in cefclient for example usage.
- Add CefRunMessageLoop() for efficient message loop usage and modify cefclient to use it.
- Add CefHandler::HandleNavStateChange() for back/forward state notifications and modify cefclient to use it.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@208 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-03-24 20:36:47 +00:00
Marshall Greenblatt 1f01d6b2a8 Allow registration of non-standard schemes (issue #195).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@199 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-03-04 17:56:01 +00:00
Marshall Greenblatt 60736ac4e0 Add support for accessing and modifying the DOM (issue #60).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@191 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-02-23 03:45:13 +00:00
Marshall Greenblatt 06a6f0ce7c Issue #188:
- Add a CefV8Context object and CefV8Value::ExecuteFunctionWithContext method to support asynchronous V8 ExecuteFunction callbacks.
- Add a CefFrame::GetBrowser() method.
- Ensure that V8 types are only referenced on the UI thread.
- Accept a empty |object| parameter to CefV8Value::ExecuteFunction.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@188 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-02-21 22:44:06 +00:00
Marshall Greenblatt 163f8d6db9 Update to Chromium revision 74933.
- CefRegisterPlugin now only supports a single mime type per registration.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@186 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-02-15 18:07:24 +00:00
Marshall Greenblatt 64d9d8294c Add support for creating and parsing URLs (issue #181).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@177 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-01-31 20:47:04 +00:00
Marshall Greenblatt 890200a098 - Update to Chromium revision 70742.
- Fix crash when calling CefInitialize with extra_plugins_paths specified (issue #164).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@159 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2011-01-07 21:34:20 +00:00
Marshall Greenblatt 871a8a7770 Fix Linux compile errors.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@150 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-12-07 01:30:26 +00:00
Marshall Greenblatt 7d60642638 Introduce CefString and cef_string_t implementations that support string type conversions and customization of the API string type (issue #146).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@145 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-11-22 17:49:46 +00:00
Marshall Greenblatt 1e1c2ad8d7 Add global and per-browser settings (issue #145).
This exposes the following new capabilities:
- Ability to disable drag & drop from other windows.
- Ability to specify additional plugin search paths.
- Ability to customize WebPreferences values, including enabling cross-site scripting.
- Ability to set User-Agent or product version.
- Ability to set default locale.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@144 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-11-18 21:05:25 +00:00
Marshall Greenblatt 5a4c8f5a13 Expose zip archive reading support (issue #30).
Move ClientReadHandler to CefByteReadHandler in cef_wrapper.h.
Add support for the time_t data type to cef_parser.py.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@125 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-10-24 16:41:21 +00:00
Marshall Greenblatt 18bc093786 Expose XML parsing support (issue #28).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@119 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-10-20 15:12:46 +00:00
Marshall Greenblatt 4c0ccb6768 - Add createGraphicsContext3D() method which is required for WebGL support.
- Add debug mode check that CefDownloadHandler objects are being cleaned up properly.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@118 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-10-18 15:37:33 +00:00
Marshall Greenblatt 46b831304c Set eol-style property on all files. Future commits will use the subversion auto-props configuration at http://src.chromium.org/viewvc/chrome/trunk/tools/buildbot/slave/config
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@109 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-10-03 21:04:50 +00:00
Marshall Greenblatt 7ffa037988 - Move to a unified thread model for CEF based on the CEF2 implementation.
- Add the ability to post user-defined tasks for execution on CEF threads (issue #25).
- Update the CEF swap image.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@90 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2010-07-24 01:13:55 +00:00
Marshall Greenblatt d7f7f45147 Move to GYP-based project file generation (issue #48).
- Add cef_create_projects.bat to generate the CEF project files.
- Change include paths to be relative to the root CEF directory.
- Add patch_build configuration and build.patch to modify the Chromium build system for required CEF dependencies.
- Remove old .vcproj and .vsprops files.
- Eliminate use of precompiled headers.
- Commit generated project files (these will go away in the near future).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@50 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-10-02 17:59:38 +00:00
Marshall Greenblatt 2b7e69d200 libcef:
- Add CefReadHandler and CefWriteHandler classes for creating streams handled by the client.

cefclient:
- Add a CefReadHandler test.
- Move tests out of cefclient.cpp and into separate implementation files.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@39 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-08-21 17:41:09 +00:00
Marshall Greenblatt 087319efdb libcef:
- Add support for custom scheme handlers (entry #49, initial version by heshiming).

cefclient:
- Add custom scheme handler test.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@37 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-08-21 02:14:47 +00:00
Marshall Greenblatt ea3a49abe1 Update all files to use Windows CRLF (\r\n) line endings (issue #45).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@33 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-07-24 19:11:01 +00:00
Marshall Greenblatt 8a04c0f0c1 - Add the CEF translator tool for generating the C API header and cpptoc/ctocpp wrapper files.
- Update to files generated by the CEF translator tool.  This introduces minor changes in cef.h and cef_capi.h for naming and translation consistency.
- C API global function names that were previously in the cef_create_classname*() format are now in the cef_classname_create*() format.
- cef_frame_t::get_frame_names() now returns void instead of size_t.
- cef_frame_t::execute_javascript() has been renamed to cef_frame_t::execute_java_script().
- The 'arguments' attribute of CefV8Handler::Execute() and CefV8Value::ExecuteFunction() is now const.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@30 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-06-20 22:09:28 +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 74bb6d6e74 - Add #ifdef _DEBUG around the DebugObjCt DCHECK() calls to avoid compile errors in release build (Fix by: vridosh, Issue #1).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@20 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2009-03-09 13:23:07 +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 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