cef/libcef/browser
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
..
printing Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
browser_context.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_context_impl.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_context_impl.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_context_proxy.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_context_proxy.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_host_impl.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_host_impl.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_host_impl_linux.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_host_impl_mac.mm Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_host_impl_win.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_info.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_info.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_main.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
browser_main.h Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
browser_main_linux.cc Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
browser_main_mac.mm Mac: Allow customization of background color (issue #1161) 2014-01-07 18:54:06 +00:00
browser_main_win.cc Update to Chromium revision 194165. 2013-04-15 22:16:01 +00:00
browser_message_filter.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
browser_message_filter.h Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
browser_message_loop.cc Update to Chromium revision 194165. 2013-04-15 22:16:01 +00:00
browser_message_loop.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
browser_pref_store.cc Update to Chromium revision 237081. 2013-11-25 23:04:25 +00:00
browser_pref_store.h Update to Chromium revision 237081. 2013-11-25 23:04:25 +00:00
browser_settings.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
browser_settings.h Update to Chromium revision 198276. 2013-05-07 21:48:34 +00:00
browser_urlrequest_impl.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
browser_urlrequest_impl.h - Add CefURLRequest support (issue #517). 2012-06-19 16:29:49 +00:00
chrome_browser_process_stub.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
chrome_browser_process_stub.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
chrome_scheme_handler.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
chrome_scheme_handler.h Remove the old (non-functional) about:tracing implementation. A new implementation is required due to Chromium changes (issue #1146). 2013-11-25 23:21:32 +00:00
content_browser_client.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
content_browser_client.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
context.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
context.h Add sandbox support (issue #524). 2013-11-15 18:47:02 +00:00
context_menu_params_impl.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
context_menu_params_impl.h Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
cookie_manager_impl.cc Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
cookie_manager_impl.h Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
devtools_delegate.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
devtools_delegate.h 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). 2013-11-08 16:27:22 +00:00
devtools_frontend.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
devtools_frontend.h Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
devtools_scheme_handler.cc Update to Chromium revision 251746. 2014-02-19 16:27:54 +00:00
devtools_scheme_handler.h Update to Chromium revision 187216. 2013-03-12 20:23:24 +00:00
download_item_impl.cc Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
download_item_impl.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
download_manager_delegate.cc Update to Chromium revision 263053. 2014-04-30 17:14:40 +00:00
download_manager_delegate.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
frame_host_impl.cc Fix loading of popup windows with a newly created render process (issue #1057). 2013-08-27 18:19:21 +00:00
frame_host_impl.h Reduce locking in browser and frame implementations to avoid potential deadlocks (issue #824). 2013-05-31 15:34:53 +00:00
geolocation_impl.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
internal_scheme_handler.cc Update to Chromium revision 207871. 2013-06-22 02:06:32 +00:00
internal_scheme_handler.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
javascript_dialog.h Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
javascript_dialog_linux.cc Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
javascript_dialog_mac.mm Update to Chromium revision 242756. 2014-01-02 22:41:11 +00:00
javascript_dialog_manager.cc Crash early on incorrect usage of CefJSDialogHandler::OnJSDialog (issue #1206). 2014-03-12 15:43:05 +00:00
javascript_dialog_manager.h Update to Chromium revision 241258. 2013-12-17 22:04:35 +00:00
javascript_dialog_win.cc Update to Chromium revision 242756. 2014-01-02 22:41:11 +00:00
media_capture_devices_dispatcher.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
media_capture_devices_dispatcher.h Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
menu_creator.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator_runner_linux.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator_runner_linux.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator_runner_mac.h Add context menu support (issue #509): 2012-04-19 20:31:46 +00:00
menu_creator_runner_mac.mm Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator_runner_win.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
menu_creator_runner_win.h Add context menu support (issue #509): 2012-04-19 20:31:46 +00:00
menu_model_impl.cc Linux: Use Aura to display context menus (issue #1258) 2014-05-23 17:47:07 +00:00
menu_model_impl.h Linux: Use Aura to display context menus (issue #1258) 2014-05-23 17:47:07 +00:00
navigate_params.cc Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564). 2012-04-03 01:34:16 +00:00
navigate_params.h Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
origin_whitelist_impl.cc Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
origin_whitelist_impl.h Support cross-origin XMLHttpRequest loads and redirects for custom standard schemes when enabled via the cross-origin whitelist (issue #950). 2013-04-18 17:58:23 +00:00
path_util_impl.cc Update to Chromium revision 184577. 2013-02-27 17:56:03 +00:00
process_util_impl.cc Update to Chromium revision 217791. 2013-08-15 19:38:55 +00:00
proxy_stubs.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
render_widget_host_view_osr.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
render_widget_host_view_osr.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
render_widget_host_view_osr_linux.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
render_widget_host_view_osr_mac.mm Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
render_widget_host_view_osr_win.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
request_context_impl.cc Structural improvements for request handling (issue #1044) 2013-09-03 16:43:31 +00:00
request_context_impl.h Structural improvements for request handling (issue #1044) 2013-09-03 16:43:31 +00:00
resource_dispatcher_host_delegate.cc Update to Chromium revision 263053. 2014-04-30 17:14:40 +00:00
resource_dispatcher_host_delegate.h Update to Chromium revision 263053. 2014-04-30 17:14:40 +00:00
resource_request_job.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
resource_request_job.h Fix completion status for asynchronous custom resource handler requests (issue #1066, issue #1187). 2014-02-06 00:18:33 +00:00
scheme_handler.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
scheme_handler.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
scheme_impl.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
scheme_impl.h Update to Chromium revision 187216. 2013-03-12 20:23:24 +00:00
speech_recognition_manager_delegate.cc Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
speech_recognition_manager_delegate.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
stream_impl.cc Update to Chromium revision 272007. 2014-05-29 17:15:34 +00:00
stream_impl.h - Add MayBlock() method to stream classes which is used as a hint when determining the thread to access the stream from (issue #1187). 2014-01-30 23:15:55 +00:00
text_input_client_osr_mac.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
text_input_client_osr_mac.mm Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
thread_util.h Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
trace_impl.cc Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
trace_subscriber.cc Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
trace_subscriber.h Update to Chromium revision 248478. 2014-02-05 20:35:45 +00:00
url_network_delegate.cc Restore access to local files (issue #1249) 2014-04-09 17:58:31 +00:00
url_network_delegate.h Restore access to local files (issue #1249) 2014-04-09 17:58:31 +00:00
url_request_context_getter.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
url_request_context_getter.h Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
url_request_context_getter_proxy.cc Structural improvements for request handling (issue #1044) 2013-09-03 16:43:31 +00:00
url_request_context_getter_proxy.h Structural improvements for request handling (issue #1044) 2013-09-03 16:43:31 +00:00
url_request_context_proxy.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
url_request_context_proxy.h Structural improvements for request handling (issue #1044) 2013-09-03 16:43:31 +00:00
url_request_interceptor.cc Update to Chromium revision 261035. 2014-04-04 16:50:38 +00:00
url_request_interceptor.h Update to Chromium revision 153668. 2012-08-28 22:26:35 +00:00
url_request_user_data.cc Fix svn:eol-style property. 2013-10-18 16:33:56 +00:00
url_request_user_data.h Fix svn:eol-style property. 2013-10-18 16:33:56 +00:00
web_contents_view_osr.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
web_contents_view_osr.h Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
web_plugin_impl.cc Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
web_plugin_impl.h Update to Chromium revision 213078. 2013-07-24 20:15:18 +00:00
window_delegate_view.cc Update to Chromium revision 275973. 2014-06-12 20:28:58 +00:00
window_delegate_view.h Linux: Remove GTK+ dependency and add initial Aura/X11 implementation (issue #1258) 2014-05-22 21:01:22 +00:00
window_x11.cc Implement off-screen rendering support using delegated rendering (issue #1257). 2014-06-30 22:30:29 +00:00
window_x11.h Fix delivery of focus/blur events (issue #1301). 2014-06-06 19:04:21 +00:00
xml_reader_impl.cc Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564). 2012-04-03 01:34:16 +00:00
xml_reader_impl.h Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564). 2012-04-03 01:34:16 +00:00
zip_reader_impl.cc Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564). 2012-04-03 01:34:16 +00:00
zip_reader_impl.h Branch CEF3 files from /branches/cef3 to /trunk/cef3 (issue #564). 2012-04-03 01:34:16 +00:00