diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-09 15:35:19 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-09 15:35:19 +0000 |
commit | a1811b891dd41a27cac5c3cafa01901a0e14165c (patch) | |
tree | a7a7d8fa2e86cceee12bfcd587ad13f45711e77a /android_webview/renderer | |
parent | 38209e20a1574f696a56a4a27b7c39485192b39d (diff) | |
download | chromium_src-a1811b891dd41a27cac5c3cafa01901a0e14165c.zip chromium_src-a1811b891dd41a27cac5c3cafa01901a0e14165c.tar.gz chromium_src-a1811b891dd41a27cac5c3cafa01901a0e14165c.tar.bz2 |
Android WebView Merged-Thread Hardware Draw
InProcessViewRenderer no longer inherits from the current
implementation class, with most methods left unimplemented for now.
This means the browser compositor is removed when merged thread
mode is turned on.
Synchronous input filter logic is moved to AwContentRenderer[Host]Ext,
since ViewRenderer[Host] will go away after merged thread draw path
is ready. UpdatePageScaleFactor moved similarly.
Need to temporarily add a global AllowIO to temporarily work around
compositor joining raster threads on UI thread on shutdown.
Caveats:
* This code is still not used until some flags are turned on.
* Will break merged thread mode with existing browser compositor
draw path
* cc initialization changes required for webview are not there.
* Lots more work required related to GL state restore and respecting
transforms etc
* Patch ignores software draw path, including case of not attached
to window.
BUG=230202, 230195
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/14888002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199223 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/renderer')
-rw-r--r-- | android_webview/renderer/aw_render_view_ext.cc | 5 | ||||
-rw-r--r-- | android_webview/renderer/aw_render_view_ext.h | 1 | ||||
-rw-r--r-- | android_webview/renderer/view_renderer.cc | 12 | ||||
-rw-r--r-- | android_webview/renderer/view_renderer.h | 1 |
4 files changed, 12 insertions, 7 deletions
diff --git a/android_webview/renderer/aw_render_view_ext.cc b/android_webview/renderer/aw_render_view_ext.cc index 27a7242..c72db2e 100644 --- a/android_webview/renderer/aw_render_view_ext.cc +++ b/android_webview/renderer/aw_render_view_ext.cc @@ -192,6 +192,11 @@ void AwRenderViewExt::DidCommitProvisionalLoad(WebKit::WebFrame* frame, } } +void AwRenderViewExt::DidActivateCompositor(int input_handler_identifier) { + Send(new AwViewHostMsg_DidActivateAcceleratedCompositing( + routing_id(), input_handler_identifier)); +} + void AwRenderViewExt::DidCommitCompositorFrame() { UpdatePageScaleFactor(); } diff --git a/android_webview/renderer/aw_render_view_ext.h b/android_webview/renderer/aw_render_view_ext.h index 1379913..448c800 100644 --- a/android_webview/renderer/aw_render_view_ext.h +++ b/android_webview/renderer/aw_render_view_ext.h @@ -36,6 +36,7 @@ class AwRenderViewExt : public content::RenderViewObserver, virtual void DidCommitProvisionalLoad(WebKit::WebFrame* frame, bool is_new_navigation) OVERRIDE; virtual void FocusedNodeChanged(const WebKit::WebNode& node) OVERRIDE; + virtual void DidActivateCompositor(int input_handler_identifier) OVERRIDE; virtual void DidCommitCompositorFrame() OVERRIDE; void OnDocumentHasImagesRequest(int id); diff --git a/android_webview/renderer/view_renderer.cc b/android_webview/renderer/view_renderer.cc index ab48906..d44ea12 100644 --- a/android_webview/renderer/view_renderer.cc +++ b/android_webview/renderer/view_renderer.cc @@ -4,8 +4,10 @@ #include "android_webview/renderer/view_renderer.h" +#include "android_webview/common/aw_switches.h" #include "android_webview/common/render_view_messages.h" #include "android_webview/common/renderer_picture_map.h" +#include "base/command_line.h" #include "content/public/renderer/render_view.h" #include "skia/ext/refptr.h" @@ -13,7 +15,10 @@ namespace android_webview { // static void ViewRenderer::RenderViewCreated(content::RenderView* render_view) { - new ViewRenderer(render_view); // |render_view| takes ownership. + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kNoMergeUIAndRendererCompositorThreads)) { + new ViewRenderer(render_view); // |render_view| takes ownership. + } } ViewRenderer::ViewRenderer(content::RenderView* render_view) @@ -40,11 +45,6 @@ bool ViewRenderer::OnMessageReceived(const IPC::Message& message) { return handled; } -void ViewRenderer::DidActivateCompositor(int input_handler_identifier) { - Send(new AwViewHostMsg_DidActivateAcceleratedCompositing( - routing_id(), input_handler_identifier)); -} - void ViewRenderer::DidCommitCompositorFrame() { if (!capture_picture_enabled_) return; diff --git a/android_webview/renderer/view_renderer.h b/android_webview/renderer/view_renderer.h index 39fd755..8c4ba8f 100644 --- a/android_webview/renderer/view_renderer.h +++ b/android_webview/renderer/view_renderer.h @@ -24,7 +24,6 @@ class ViewRenderer : public content::RenderViewObserver { // content::RenderViewObserver implementation. virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; - virtual void DidActivateCompositor(int input_handler_identifier) OVERRIDE; virtual void DidCommitCompositorFrame() OVERRIDE; void OnEnableCapturePictureCallback(bool enable); |