Index: content/browser/android/content_view_core_impl.cc |
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc |
index 38cea2a8e61c20b88e5c14dad60be825ffb4465e..426e3e7a1f7fe68bc701e7fae133d4f870ecb986 100644 |
--- a/content/browser/android/content_view_core_impl.cc |
+++ b/content/browser/android/content_view_core_impl.cc |
@@ -230,6 +230,12 @@ ContentViewCoreImpl::ContentViewCoreImpl( |
dpi_scale_(dpi_scale), |
device_orientation_(0), |
accessibility_enabled_(false) { |
+ GetViewAndroid()->SetLayer(cc::Layer::Create()); |
+ gfx::Size physical_size( |
+ Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj), |
+ Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); |
+ GetViewAndroid()->GetLayer()->SetBounds(physical_size); |
+ |
// Currently, the only use case we have for overriding a user agent involves |
// spoofing a desktop Linux user agent for "Request desktop site". |
// Automatically set it for all WebContents so that it is available when a |
@@ -726,6 +732,16 @@ gfx::Size ContentViewCoreImpl::GetViewSize() const { |
return size; |
} |
+gfx::Size ContentViewCoreImpl::GetPhysicalBackingSize() const { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
+ if (j_obj.is_null()) |
+ return gfx::Size(); |
+ return gfx::Size( |
+ Java_ContentViewCore_getPhysicalBackingWidthPix(env, j_obj), |
+ Java_ContentViewCore_getPhysicalBackingHeightPix(env, j_obj)); |
+} |
+ |
gfx::Size ContentViewCoreImpl::GetViewportSizePix() const { |
JNIEnv* env = AttachCurrentThread(); |
ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env); |
@@ -1249,6 +1265,11 @@ void ContentViewCoreImpl::RemoveJavascriptInterface( |
void ContentViewCoreImpl::WasResized(JNIEnv* env, |
const JavaParamRef<jobject>& obj) { |
+ gfx::Size physical_size( |
+ Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj), |
+ Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); |
+ GetViewAndroid()->GetLayer()->SetBounds(physical_size); |
+ |
SendScreenRectsAndResizeWidget(); |
} |
@@ -1538,7 +1559,6 @@ jlong Init(JNIEnv* env, |
"A ContentViewCoreImpl should be created with a valid WebContents."; |
ui::ViewAndroid* view_android = web_contents->GetView()->GetNativeView(); |
view_android->SetDelegate(jview_android_delegate); |
- view_android->SetLayer(cc::Layer::Create()); |
ui::WindowAndroid* window_android = |
reinterpret_cast<ui::WindowAndroid*>(jwindow_android); |