summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authordtrainor@chromium.org <dtrainor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-15 01:47:14 +0000
committerdtrainor@chromium.org <dtrainor@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-15 01:47:14 +0000
commite3806df6c8c07d29a50ee5493f4c0e81f63e9837 (patch)
tree60ed612ccf0328fd06cc13fa6b78244bb4fdddcf /content
parentc6f2e67ab4098aa6be7a16612d4c47e9a78cac72 (diff)
downloadchromium_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')
-rw-r--r--content/browser/android/content_view_core_impl.cc5
-rw-r--r--content/browser/android/content_view_core_impl.h1
-rw-r--r--content/browser/renderer_host/render_widget_host_view_android.cc5
-rw-r--r--content/browser/renderer_host/render_widget_host_view_android.h1
-rw-r--r--content/public/browser/android/content_view_core.h6
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() {};
};