Commit Graph

236 Commits

Author SHA1 Message Date
Marshall Greenblatt b34963b743 Revert revision 1765 changes due to broken sub-frame loading.
- Move LoadRequest execution to the browser process and use data: URLs for LoadString (issue #579).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1780 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-16 21:27:25 +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 49fa439594 Return timing information for custom requests to avoid crash in WebKit (issue #1259).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1763 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-10 17:37:40 +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 824f8f4009 Linux: Add drag&drop support (issue #1258).
- Requires proper handling of the "XdndProxy" property on the top-level window. This currently works in cefsimple but not cefclient (perhaps due to https://bugzilla.gnome.org/show_bug.cgi?id=653264).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1759 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-08 22:37:06 +00:00
Marshall Greenblatt 81f8883b4a Bundle pepper PDF plugin on all platforms (issue #1331).
- Add new libpdf.so library on Linux and PDF.plugin app bundle on OS X.
- Move scaled resources from cef.pak into separate cef_100_percent.pak and cef_200_percent.pak files.
- Password-protected PDF files are not currently supported.
- No fallback is provided for PDF files that contain unsupported features.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1758 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-07 22:17:33 +00:00
Marshall Greenblatt 479e69fd4e Windows: Add bundled pdf.dll and use it for printing support (issue #1313).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1757 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-07-03 18:34:58 +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 3a70815036 Mac: Fix flash on resize (issue #1307)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1748 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-16 17:58:46 +00:00
Marshall Greenblatt 2e54831860 Fix execution of OnBeforePluginLoad (issue #1284).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1744 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-12 20:42:53 +00:00
Marshall Greenblatt de5b859c0a Update to Chromium revision 275973.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1743 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-12 20:28:58 +00:00
Marshall Greenblatt 6a401f5955 Windows: Fix execution of keyboard shortcuts (issue #1299).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1728 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-06-09 20:13:24 +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 79bd4dd93c Linux: Use Aura to display context menus (issue #1258)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1710 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-23 17:47:07 +00:00
Marshall Greenblatt aeb1aa7b52 Fix revision #1708 compile error.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1709 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-22 21:21:51 +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 921c25f0af Use correct id type in CefContentBrowserClient::AllowCertificateError (issue #1282).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1705 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-12 15:56:24 +00:00
Marshall Greenblatt 01cba8ccb4 Windows: Fix loading of cursor resources from DLL (issue #1265).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1693 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-05-06 17:20:43 +00:00
Marshall Greenblatt 7f16f5fbd2 Update to Chromium revision 263053.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1683 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-30 17:14:40 +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 33e7bb04b3 Add CefBrowserSettings.background_color for custom background color assignment on a per-browser basis and fix assignment of the default value (issue #1161).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1656 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-15 19:02:30 +00:00
Marshall Greenblatt 6344555de7 Restore access to local files (issue #1249)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1647 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-09 17:58:31 +00:00
Marshall Greenblatt 66604e4741 Windows: Fix white flashes during browser initialization (issue #1161).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1645 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-08 19:33:48 +00:00
Marshall Greenblatt d8aed5b52d Windows: Fix assignment of keyboard focus (issue #1248).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1643 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-04-04 22:26:39 +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 11df06b1ad Crash early on incorrect usage of CefJSDialogHandler::OnJSDialog (issue #1206).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1637 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-03-12 15:43:05 +00:00
Marshall Greenblatt d9310e2c58 Mac: Fix execution of performClose: signal (issue #1203)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1630 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-03-06 13:42:14 +00:00
Marshall Greenblatt 5b6086ffb3 Update to Chromium revision 251746.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1628 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-19 16:27:54 +00:00
Marshall Greenblatt 0e8a017416 Allow usage of file streams on IO-prohibited threads (issue #1187).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1622 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-11 22:44:35 +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 b76b207ec4 Windows: Support non-ASCII paths for CefStream file access (issue #481).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1611 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-02-10 19:26:35 +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 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 89a8832550 Fix crash when using asynchronous continuation with a custom resource handler (issue #1066).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1579 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-30 00:51:52 +00:00
Marshall Greenblatt 21c8131742 Send the kProductVersion flag to all processes (issue #1149).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1561 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-10 19:49:43 +00:00
Marshall Greenblatt 8a6530db1f Mac: Allow customization of background color (issue #1161)
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1560 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-07 18:54:06 +00:00
Marshall Greenblatt b479cb3aa3 Windows: Allow customization of background color (issue #1161).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1559 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2014-01-07 18:04:31 +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 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 9daee785bd Windows: Improve "view source" implementation.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1550 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-12-17 23:33:01 +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 68916c9571 Fix crash when browser window creation is canceled (issue #1147).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1543 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-12-07 01:58:36 +00:00
Marshall Greenblatt e09948c37e Windows: Switch to aura/views architecture for content window creation (issue #180).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1542 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-12-07 01:55:22 +00:00
Marshall Greenblatt 64294f659d Linux: Apply system font settings (issue #1148).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1538 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-12-02 20:07:03 +00:00
Marshall Greenblatt 19379d98c2 Mac: Add NSAutoreleasePool in PlatformCreateWindow to make sure CefBrowserHostView is dealloc'ed on window destruction
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1534 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
2013-11-26 19:45:45 +00:00