summaryrefslogtreecommitdiffstats
path: root/android_webview/renderer
diff options
context:
space:
mode:
authormarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-15 15:15:04 +0000
committermarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-15 15:15:04 +0000
commit2aa56ad912ff2b6514702e630354d2f24e8062a5 (patch)
tree6c00256016949fe1f89f66faded2dbcdbe8d0027 /android_webview/renderer
parentbb7ec00d9f410f820110a52317587439b3d671e5 (diff)
downloadchromium_src-2aa56ad912ff2b6514702e630354d2f24e8062a5.zip
chromium_src-2aa56ad912ff2b6514702e630354d2f24e8062a5.tar.gz
chromium_src-2aa56ad912ff2b6514702e630354d2f24e8062a5.tar.bz2
Revert 182710, this broke check_deps.
> [Android WebView] Migrate the rendering code to a separate set of classes. > > It takes from https://codereview.chromium.org/11823027/ > and assumes SW rendering and Capture Picture to be ready and enabled. > > Most changes just move around code. The major structural changes are: > - Introduce a browser-layer view renderer interface and move the code to its implementation. > - Take out the rendering-related IPC to its own separate set of host/renderer classes. > - Change the way the view hierarchy and the compositor are initialized. Now they are created and set on BrowserViewRendererImpl construction. > - Content is now provided via a ContentViewCore object when initialized, updating the layer to use and the WebContents to observe. > - Remove/update the DEPS and gyp changes introduced to support rendering in the native layer. > > BUG=167913,167908,161409 > NOTRY=true > > Review URL: https://chromiumcodereview.appspot.com/12041009 TBR=leandrogracia@chromium.org Review URL: https://codereview.chromium.org/12230059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182712 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/renderer')
-rw-r--r--android_webview/renderer/aw_content_renderer_client.cc2
-rw-r--r--android_webview/renderer/aw_render_view_ext.cc27
-rw-r--r--android_webview/renderer/aw_render_view_ext.h9
-rw-r--r--android_webview/renderer/view_renderer.cc61
-rw-r--r--android_webview/renderer/view_renderer.h39
5 files changed, 36 insertions, 102 deletions
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index a1995a3..9a8b21c 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -7,7 +7,6 @@
#include "android_webview/common/aw_resource.h"
#include "android_webview/common/url_constants.h"
#include "android_webview/renderer/aw_render_view_ext.h"
-#include "android_webview/renderer/view_renderer.h"
#include "base/utf_string_conversions.h"
#include "components/visitedlink/renderer/visitedlink_slave.h"
#include "content/public/renderer/render_thread.h"
@@ -43,7 +42,6 @@ void AwContentRendererClient::RenderThreadStarted() {
void AwContentRendererClient::RenderViewCreated(
content::RenderView* render_view) {
AwRenderViewExt::RenderViewCreated(render_view);
- ViewRenderer::RenderViewCreated(render_view);
}
std::string AwContentRendererClient::GetDefaultEncoding() {
diff --git a/android_webview/renderer/aw_render_view_ext.cc b/android_webview/renderer/aw_render_view_ext.cc
index c895ed47..462553e39 100644
--- a/android_webview/renderer/aw_render_view_ext.cc
+++ b/android_webview/renderer/aw_render_view_ext.cc
@@ -129,9 +129,14 @@ void PopulateHitTestData(const GURL& absolute_link_url,
AwRenderViewExt::AwRenderViewExt(content::RenderView* render_view)
: content::RenderViewObserver(render_view) {
render_view->GetWebView()->setPermissionClient(this);
+ // TODO(leandrogracia): remove when SW rendering uses Ubercompositor.
+ // Until then we need the callback enabled for SW mode invalidation.
+ // http://crbug.com/170086.
+ capture_picture_enabled_ = true;
}
AwRenderViewExt::~AwRenderViewExt() {
+ RendererPictureMap::GetInstance()->ClearRendererPicture(routing_id());
}
// static
@@ -144,6 +149,10 @@ bool AwRenderViewExt::OnMessageReceived(const IPC::Message& message) {
IPC_BEGIN_MESSAGE_MAP(AwRenderViewExt, message)
IPC_MESSAGE_HANDLER(AwViewMsg_DocumentHasImages, OnDocumentHasImagesRequest)
IPC_MESSAGE_HANDLER(AwViewMsg_DoHitTest, OnDoHitTest)
+ IPC_MESSAGE_HANDLER(AwViewMsg_EnableCapturePictureCallback,
+ OnEnableCapturePictureCallback)
+ IPC_MESSAGE_HANDLER(AwViewMsg_CapturePictureSync,
+ OnCapturePictureSync)
IPC_MESSAGE_HANDLER(AwViewMsg_SetTextZoomLevel, OnSetTextZoomLevel)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -218,6 +227,15 @@ void AwRenderViewExt::FocusedNodeChanged(const WebKit::WebNode& node) {
Send(new AwViewHostMsg_UpdateHitTestData(routing_id(), data));
}
+void AwRenderViewExt::DidCommitCompositorFrame() {
+ if (!capture_picture_enabled_)
+ return;
+
+ skia::RefPtr<SkPicture> picture = render_view()->CapturePicture();
+ RendererPictureMap::GetInstance()->SetRendererPicture(routing_id(), picture);
+ Send(new AwViewHostMsg_PictureUpdated(routing_id()));
+}
+
void AwRenderViewExt::OnDoHitTest(int view_x, int view_y) {
if (!render_view() || !render_view()->GetWebView())
return;
@@ -239,6 +257,15 @@ void AwRenderViewExt::OnDoHitTest(int view_x, int view_y) {
Send(new AwViewHostMsg_UpdateHitTestData(routing_id(), data));
}
+void AwRenderViewExt::OnEnableCapturePictureCallback(bool enable) {
+ capture_picture_enabled_ = enable;
+}
+
+void AwRenderViewExt::OnCapturePictureSync() {
+ RendererPictureMap::GetInstance()->SetRendererPicture(
+ routing_id(), render_view()->CapturePicture());
+}
+
void AwRenderViewExt::OnSetTextZoomLevel(double zoom_level) {
if (!render_view() || !render_view()->GetWebView())
return;
diff --git a/android_webview/renderer/aw_render_view_ext.h b/android_webview/renderer/aw_render_view_ext.h
index 8cea6e4..49cee36 100644
--- a/android_webview/renderer/aw_render_view_ext.h
+++ b/android_webview/renderer/aw_render_view_ext.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
#include "content/public/renderer/render_view_observer.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebPermissionClient.h"
@@ -27,6 +28,9 @@ class AwRenderViewExt : public content::RenderViewObserver,
public:
static void RenderViewCreated(content::RenderView* render_view);
+ // Required to be public by IPC_MESSAGE_HANDLER for sync messages.
+ using content::RenderViewObserver::Send;
+
private:
AwRenderViewExt(content::RenderView* render_view);
virtual ~AwRenderViewExt();
@@ -36,11 +40,16 @@ 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 DidCommitCompositorFrame() OVERRIDE;
void OnDocumentHasImagesRequest(int id);
void OnDoHitTest(int view_x, int view_y);
+ void OnEnableCapturePictureCallback(bool enable);
+
+ void OnCapturePictureSync();
+
void OnSetTextZoomLevel(double zoom_level);
// WebKit::WebPermissionClient implementation.
diff --git a/android_webview/renderer/view_renderer.cc b/android_webview/renderer/view_renderer.cc
deleted file mode 100644
index dd0d7e7..0000000
--- a/android_webview/renderer/view_renderer.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "android_webview/renderer/view_renderer.h"
-
-#include "android_webview/common/render_view_messages.h"
-#include "android_webview/common/renderer_picture_map.h"
-#include "content/public/renderer/render_view.h"
-#include "skia/ext/refptr.h"
-
-namespace android_webview {
-
-// static
-void ViewRenderer::RenderViewCreated(content::RenderView* render_view) {
- new ViewRenderer(render_view); // |render_view| takes ownership.
-}
-
-ViewRenderer::ViewRenderer(content::RenderView* render_view)
- : content::RenderViewObserver(render_view),
- // TODO(leandrogracia): default to false when SW mode uses Ubercompositor.
- // Until then we need picture updates enabled for SW mode invalidation.
- // http://crbug.com/170086.
- capture_picture_enabled_(true) {
-}
-
-ViewRenderer::~ViewRenderer() {
- RendererPictureMap::GetInstance()->ClearRendererPicture(routing_id());
-}
-
-bool ViewRenderer::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ViewRenderer, message)
- IPC_MESSAGE_HANDLER(AwViewMsg_EnableCapturePictureCallback,
- OnEnableCapturePictureCallback)
- IPC_MESSAGE_HANDLER(AwViewMsg_CapturePictureSync,
- OnCapturePictureSync)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void ViewRenderer::DidCommitCompositorFrame() {
- if (!capture_picture_enabled_)
- return;
-
- skia::RefPtr<SkPicture> picture = render_view()->CapturePicture();
- RendererPictureMap::GetInstance()->SetRendererPicture(routing_id(), picture);
- Send(new AwViewHostMsg_PictureUpdated(routing_id()));
-}
-
-void ViewRenderer::OnEnableCapturePictureCallback(bool enable) {
- capture_picture_enabled_ = enable;
-}
-
-void ViewRenderer::OnCapturePictureSync() {
- RendererPictureMap::GetInstance()->SetRendererPicture(
- routing_id(), render_view()->CapturePicture());
-}
-
-} // namespace android_webview
diff --git a/android_webview/renderer/view_renderer.h b/android_webview/renderer/view_renderer.h
deleted file mode 100644
index 8c4ba8f..0000000
--- a/android_webview/renderer/view_renderer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ANDROID_WEBVIEW_RENDERER_VIEW_RENDERER_H_
-#define ANDROID_WEBVIEW_RENDERER_VIEW_RENDERER_H_
-
-#include "content/public/renderer/render_view_observer.h"
-
-namespace android_webview {
-
-// Render-process side of ViewRendererHost.
-// Implements required interaction with content::RenderView.
-class ViewRenderer : public content::RenderViewObserver {
- public:
- static void RenderViewCreated(content::RenderView* render_view);
-
- // Required to be public by IPC_MESSAGE_HANDLER.
- using content::RenderViewObserver::Send;
-
- private:
- ViewRenderer(content::RenderView* render_view);
- virtual ~ViewRenderer();
-
- // content::RenderViewObserver implementation.
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
- virtual void DidCommitCompositorFrame() OVERRIDE;
-
- void OnEnableCapturePictureCallback(bool enable);
- void OnCapturePictureSync();
-
- bool capture_picture_enabled_;
-
- DISALLOW_COPY_AND_ASSIGN(ViewRenderer);
-};
-
-} // namespace android_webview
-
-#endif // ANDROID_WEBVIEW_RENDERER_VIEW_RENDERER_H_