diff options
author | dtrainor@chromium.org <dtrainor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 01:47:14 +0000 |
---|---|---|
committer | dtrainor@chromium.org <dtrainor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-15 01:47:14 +0000 |
commit | e3806df6c8c07d29a50ee5493f4c0e81f63e9837 (patch) | |
tree | 60ed612ccf0328fd06cc13fa6b78244bb4fdddcf /content | |
parent | c6f2e67ab4098aa6be7a16612d4c47e9a78cac72 (diff) | |
download | chromium_src-e3806df6c8c07d29a50ee5493f4c0e81f63e9837.zip chromium_src-e3806df6c8c07d29a50ee5493f4c0e81f63e9837.tar.gz chromium_src-e3806df6c8c07d29a50ee5493f4c0e81f63e9837.tar.bz2 |
Expose the RWHVA's WebLayer.
When we have a prerenderer RWHV the delegate is not set so we never get the
AttachLayer call, this means we need to expose a method to query the current
layer when we swap out our TabContents and therefore our RWHVA instances.
BUG=http://crbug.com/159763
Review URL: https://chromiumcodereview.appspot.com/11293260
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167814 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
5 files changed, 17 insertions, 1 deletions
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc index 661af5b..9151608 100644 --- a/content/browser/android/content_view_core_impl.cc +++ b/content/browser/android/content_view_core_impl.cc @@ -495,6 +495,11 @@ unsigned int ContentViewCoreImpl::GetScaledContentTexture( return view->GetScaledContentTexture(size); } +WebKit::WebLayer* ContentViewCoreImpl::GetWebLayer() { + RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid(); + return view ? view->GetWebLayer() : NULL; +} + void ContentViewCoreImpl::StartContentIntent(const GURL& content_url) { JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); diff --git a/content/browser/android/content_view_core_impl.h b/content/browser/android/content_view_core_impl.h index 070d542..6157f70 100644 --- a/content/browser/android/content_view_core_impl.h +++ b/content/browser/android/content_view_core_impl.h @@ -53,6 +53,7 @@ class ContentViewCoreImpl : public ContentViewCore, virtual jint GetCurrentRenderProcessId(JNIEnv* env, jobject obj) OVERRIDE; virtual void ShowPastePopup(int x, int y) OVERRIDE; virtual unsigned int GetScaledContentTexture(const gfx::Size& size) OVERRIDE; + virtual WebKit::WebLayer* GetWebLayer() OVERRIDE; // -------------------------------------------------------------------------- // Methods called from Java via JNI diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index d609f1b..1d50e3d 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc @@ -54,6 +54,7 @@ RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid( is_hidden_(!content_view_core), content_view_core_(content_view_core), ime_adapter_android_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), + cached_background_color_(SK_ColorWHITE), texture_layer_(WebKit::WebExternalTextureLayer::create()), texture_id_in_layer_(0) { host_->SetView(this); @@ -177,6 +178,10 @@ bool RenderWidgetHostViewAndroid::PopulateBitmapWithContents(jobject jbitmap) { return true; } +WebKit::WebLayer* RenderWidgetHostViewAndroid::GetWebLayer() { + return texture_layer_->layer(); +} + gfx::NativeView RenderWidgetHostViewAndroid::GetNativeView() const { return content_view_core_; } diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h index 0f075cd..3606eb9 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h @@ -140,6 +140,7 @@ class RenderWidgetHostViewAndroid : public RenderWidgetHostViewBase { WebKit::WebGLId GetScaledContentTexture(const gfx::Size& size); bool PopulateBitmapWithContents(jobject jbitmap); + WebKit::WebLayer* GetWebLayer(); // Select all text between the given coordinates. void SelectRange(const gfx::Point& start, const gfx::Point& end); diff --git a/content/public/browser/android/content_view_core.h b/content/public/browser/android/content_view_core.h index 7be47e9..5a97fdf 100644 --- a/content/public/browser/android/content_view_core.h +++ b/content/public/browser/android/content_view_core.h @@ -18,6 +18,10 @@ namespace ui { class WindowAndroid; } +namespace WebKit { +class WebLayer; +} + namespace content { class WebContents; @@ -40,7 +44,7 @@ class ContentViewCore { virtual jint GetCurrentRenderProcessId(JNIEnv* env, jobject obj) = 0; virtual void ShowPastePopup(int x, int y) = 0; virtual unsigned int GetScaledContentTexture(const gfx::Size& size) = 0; - + virtual WebKit::WebLayer* GetWebLayer() = 0; protected: virtual ~ContentViewCore() {}; }; |