summaryrefslogtreecommitdiffstats
path: root/android_webview/renderer
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 15:35:19 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-09 15:35:19 +0000
commita1811b891dd41a27cac5c3cafa01901a0e14165c (patch)
treea7a7d8fa2e86cceee12bfcd587ad13f45711e77a /android_webview/renderer
parent38209e20a1574f696a56a4a27b7c39485192b39d (diff)
downloadchromium_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.cc5
-rw-r--r--android_webview/renderer/aw_render_view_ext.h1
-rw-r--r--android_webview/renderer/view_renderer.cc12
-rw-r--r--android_webview/renderer/view_renderer.h1
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);