Commit Graph

240 Commits

Author SHA1 Message Date
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 cb907f3649 Update to Chromium revision 280796.
- Mac: Remove Carbon interpose library (see http://crbug.com/157130).
- Remove unused LOGSEVERITY_ERROR_REPORT value (see http://crbug.com/352378).
- CefURLRequest in the render process will now always have the UR_FLAG_REPORT_LOAD_TIMING flag set (see http://crbug.com/376025#c15).
- Change CefGeolocationHandler::OnRequestGeolocationPermission return value from void to boolean.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1753 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-02 18:25:22 +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 f6819004e0 Remove duplicate content in file.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1734 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-10 18:05:50 +00:00
Marshall Greenblatt 62d9365b51 Fix delivery of focus/blur events (issue #1301).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1717 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-06 19:04:21 +00:00
Marshall Greenblatt 74b35c30eb Update to Chromium revision 272007.
- Remove CefSettings.accelerated_compositing option (see https://crbug.com/363772).
- Remove experimental x-webkit-speech support (see https://crbug.com/223198).
- Execute CefGeolocationHandler callbacks on the UI thread (see https://crbug.com/304341#c212).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1711 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-29 17:15:34 +00:00
Marshall Greenblatt 3859457eef Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1708 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-22 21:01:22 +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 1d798844b6 Make |string| parameter to CefStringVisitor::Visit optional (issue #1216).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1635 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-03-12 14:49:11 +00:00
Marshall Greenblatt 4b75a68f9b Fix type conversion error.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1624 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-12 18:47:01 +00:00
Marshall Greenblatt c2090fe967 Fix wrapping of comments in generated files.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1623 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-11 22:46:57 +00:00
Marshall Greenblatt b5700a6f4c Make |origin_url| parameter to CefJSDialogHandler::OnJsDialog optional since it may be empty for non-standard schemes (issue #1106).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1621 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-11 20:23:00 +00:00
Marshall Greenblatt 769616da5f Remove the CefBrowserHost::ParentWindowWillClose method that was added for modal dialog support but never implemented (issue #519).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1613 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-10 19:53:09 +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 2534b67365 - Add MayBlock() method to stream classes which is used as a hint when determining the thread to access the stream from (issue #1187).
- In cases where MayBlock() returns true have CefStreamResourceReader perform the reads on the FILE thread (issue #1187).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1582 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-30 23:15:55 +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 0c8b381a46 Windows: Fix 64-bit compile errors (issue #1184).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1576 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-28 16:58:44 +00:00
Marshall Greenblatt 0df95ca529 Provide a generic JavaScript message router implementation (issue #1183).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1574 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-27 23:31:03 +00:00
Marshall Greenblatt 796ddf27b4 Add <algorithm> include required by VS2013 (issue #1094).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1566 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-14 02:45:56 +00:00
Marshall Greenblatt 72660c6fed Fix C compiler errors when using the C API (issue #1165).
- Replace 'bool' with 'int' in cef_types[_*].h.
- Typedef enums in cef_types.h
- Add includes and struct forward declarations in C API header files.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1558 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-06 19:59:48 +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 7428e45dd2 Restore CefRenderProcessHandler::OnBeforeNavigation (issue #1076). This method is still needed for some use cases due to issue #1129.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1519 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-21 20:59:28 +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 d789d84c30 Remove CefBrowserHost::GetDevToolsURL(). It is now possible to use DevTools without remote debugging, and the ability to load a remote debugging URL without first loading the discovery page is no longer supported (issue #659).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1511 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-08 16:27:22 +00:00
Marshall Greenblatt d2dfded03a - Support DevTools without remote debugging via CefBrowserHost::ShowDevTools and CloseDevTools methods (issue #659).
- Fix loading of DevTools frontend from chrome-devtools scheme (issue #1095).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1510 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-08 16:06:06 +00:00
Marshall Greenblatt c7d7b9fbbf Add search/find support (issue #513).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1482 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-23 22:44:12 +00:00
Marshall Greenblatt bc1ea4974a Add support for printing via CefBrowserHost::Print() and JavaScript window.print() (issue #505).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1479 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-23 19:30:47 +00:00
Marshall Greenblatt 8adb86e7e6 Remove CefRenderProcessHandler::OnBeforeNavigation (issue #1076).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1443 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-16 15:26:08 +00:00
Marshall Greenblatt 71125f76d8 Expose CefLoadHandler in the render process (issue #1077).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1442 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-12 23:36:54 +00:00
Marshall Greenblatt c577293d96 Initial changes to allow use of CefLoadHandler in the render process (issue #1077).
- Move OnLoadingStateChange from CefDisplayHandler to CefLoadHandler.
- Move OnRenderProcessTerminated and OnPluginCrashed from CefLoadHandler to CefRequestHandler.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1441 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-12 20:34:18 +00:00
Marshall Greenblatt 4eafb2ea24 Add CefRequestHandler::OnBeforeBrowse callback (issue #1076).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1440 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-12 17:44:54 +00:00
Marshall Greenblatt 31dd95c3f8 Expose resource type and transition type via CefRequest (issue #1071).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1433 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-10 19:42:53 +00:00
Marshall Greenblatt 97dd8beb4f Update to Chromium revision 220934.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1427 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-03 21:48:12 +00:00
Marshall Greenblatt 385be456c3 Structural improvements for request handling (issue #1044)
- Add new CefRequestContext and CefRequestContextHandler classes.
- Add CefRequestContext argument to CefBrowserHost static factory methods.
- Move GetCookieManager from CefRequestHandler to CefRequestContextHandler.
- Use BrowserContext as the root proxy object for network requests.
- Move accessors for CefBrowserMainParts members from CefContext to CefContentBrowserClient.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1424 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-03 16:43:31 +00:00
Marshall Greenblatt ac22cfaad2 Add CefURLRequestClient::GetAuthCredentials callback (issue #975).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1416 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-08-27 18:58:08 +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 cdd7333b76 Update to Chromium revision 217791.
- Pass popup window attributes to CefLifeSpanHandler::OnBeforePopup (issue #520).
- Windows: Add manifest files for all binary targets and include compatibility manifest in *.exe targets.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1367 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-08-15 19:38:55 +00:00
Marshall Greenblatt 2f1c313fd0 Windows: Fix 64-bit compile errors (issue #394).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1361 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-08-14 21:45:22 +00:00
Marshall Greenblatt a2a3513620 Update to Chromium revision 213078.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1338 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-07-24 20:15:18 +00:00
Marshall Greenblatt 0b46579e99 Add CefRenderHandler::OnScrollOffsetChanged callback (issue #889).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1309 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-07-18 19:26:11 +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 ca3a2da5ee Add password argument to CefZipArchive::Load (issue #986).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1277 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-06-10 18:23:48 +00:00
Marshall Greenblatt b3cd2ae6a8 Add CefJSDialogHandler::OnDialogClosed callback (issue #943).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1263 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-05-31 13:45:21 +00:00
Marshall Greenblatt ac4c19159c Mac: Add IME support with off-screen rendering (issue #973).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1259 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-05-31 12:46:56 +00:00
Marshall Greenblatt c41127f236 Mac: Add off-screen rendering support (issue #518).
- Build with the 10.7 SDK (set GYP_DEFINES='mac_sdk=10.7') to include Retina support in the cefclient OSR example.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1226 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-04-16 19:23:00 +00:00