diff options
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() {}; }; |