Commit Graph

202 Commits

Author SHA1 Message Date
Marshall Greenblatt 1a819fe284 Replace NewCefRunnable* usage with base::Bind and fix CefCreateClosureTask typo (issue #1336).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1776 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-15 18:10: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 b9781aa000 Move LoadRequest execution to the browser process and use data: URLs for LoadString (issue #579).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1765 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-10 18:22:09 +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 b3309086d9 Linux: Fix release build compile errors (issue #1316)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1754 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-02 22:51:31 +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 4114dbd609 Add missing newline at end of file
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1752 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-30 22:54:35 +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 133317eeec Linux: Fix crash due to Chromium modifying the |argv| passed to main() (issue #620).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1750 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-25 19:47:06 +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 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 199a3faafe Update to Chromium revision 261035.
- The CefSettings.release_dcheck_enabled option has been removed. This functionality can be enabled by setting the dcheck_always_on=1 gyp variable before building CEF/Chromium. See http://crbug.com/350462 for details.
- The UR_FLAG_ALLOW_COOKIES option has been removed and the functionality has been merged into UR_FLAG_ALLOW_CACHED_CREDENTIALS.
- Mac: [NSApplication sharedApplication] should no longer be called in the renderer process. See http://crbug.com/306348 for details.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1641 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-04 16:50:38 +00:00
Marshall Greenblatt 14f5464fa5 Add new URLRequestTest.BrowserInvalidURL test (issue #888).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1615 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-10 23:28:58 +00:00
Marshall Greenblatt fc3d05f01d Fix completion status for asynchronous custom resource handler requests (issue #1066, issue #1187).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1594 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-06 00:18:33 +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 76f6ca0763 Mac: Fix compile errors.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1591 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-31 23:35:23 +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 b608dae758 Add a new CefURLParts.origin member for retrieving the origin when parsing a URL.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1578 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-28 19:19:41 +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 78bfefee5e Add <algorithm> include required by VS2013 (issue #1094).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1571 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-14 19:57:17 +00:00
Marshall Greenblatt 30c36156ea Update to Chromium revision 242756.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1553 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-02 22:41:11 +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 3d218e4442 Update to Chromium revision 237081.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1532 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-25 23:04:25 +00:00
Marshall Greenblatt 777e3c440e Mac: Fix equality test compile error (issue #1013).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1529 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-25 18:56:22 +00:00
Marshall Greenblatt 527f1aa5da Use file_util::WriteFile instead of ofstream (issue #1013).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1527 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-25 18:53:13 +00:00
Marshall Greenblatt 43d2ca32fa Support file uploads in CefURLRequests originating from the browser process (issue #1013).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1525 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-25 17:31:59 +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 81f336f4bb Fix error in TaskTest.PostDelayedTask1 test.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1513 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-11 16:57:20 +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 601c2b0ee9 Set "User-Agent" and "Accept-Language" headers for requests sent using CefURLRequest (issue #1125).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1502 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-30 17:42:05 +00:00
Marshall Greenblatt 0c45f66d37 Update to Chromium revision 231322.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1494 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-29 17:53:18 +00:00
Marshall Greenblatt 6a52564668 Fix svn:eol-style property.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1470 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-18 16:33:56 +00:00
Marshall Greenblatt 4c3bd0b724 Update to Chromium revision 224895.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1460 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-10-16 00:25:38 +00:00
Marshall Greenblatt 43a5dccec1 Fix windows 64-bit compile errors (issue #1079).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1448 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-17 09:17:12 +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 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 83ae91a9e2 Linux: Fix compile error
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1436 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-11 19:12:58 +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 290809cec8 Mac: Fix compile error due to Chromium update
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1430 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-03 22:32:29 +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 9e50918a30 Linux: Fix compile error
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1426 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-09-03 19:12:22 +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 8ac34699f6 Make CefURLRequest::GetResponse() data available before download completion (issue #956).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1418 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-08-27 19:16:24 +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