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 4b5bbdf00af9f1bf40f50dad7e25bf306dc222a0..056ff480cc28581946db0b2bf772254892168daa 100644 |
--- a/content/browser/android/content_view_core_impl.cc |
+++ b/content/browser/android/content_view_core_impl.cc |
@@ -55,6 +55,7 @@ |
#include "jni/DragEvent_jni.h" |
#include "third_party/WebKit/public/platform/WebInputEvent.h" |
#include "ui/android/view_android.h" |
+#include "ui/android/view_root.h" |
#include "ui/android/window_android.h" |
#include "ui/base/clipboard/clipboard.h" |
#include "ui/base/ui_base_switches_util.h" |
@@ -230,12 +231,6 @@ ContentViewCoreImpl::ContentViewCoreImpl( |
dpi_scale_(dpi_scale), |
device_orientation_(0), |
accessibility_enabled_(false) { |
- GetViewAndroid()->SetLayer(cc::Layer::Create()); |
boliu
2017/02/13 22:58:08
this code can just stay here, right? nothing here
Jinsuk Kim
2017/02/14 05:09:59
Yes I just wanted to keep all the initialization/s
|
- 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 |
@@ -277,22 +272,21 @@ ContentViewCoreImpl::~ContentViewCoreImpl() { |
} |
} |
-void ContentViewCoreImpl::UpdateWindowAndroid( |
+void ContentViewCoreImpl::UpdateViewRoot( |
JNIEnv* env, |
const base::android::JavaParamRef<jobject>& obj, |
- jlong window_android) { |
+ jlong view_root_ptr) { |
+ ui::ViewRoot* view_root = reinterpret_cast<ui::ViewRoot*>(view_root_ptr); |
ui::ViewAndroid* view = GetViewAndroid(); |
- ui::WindowAndroid* window = |
- reinterpret_cast<ui::WindowAndroid*>(window_android); |
- if (window == GetWindowAndroid()) |
+ if (view_root == view->GetViewRoot()) |
return; |
- if (GetWindowAndroid()) { |
+ if (view->GetViewRoot()) { |
for (auto& observer : observer_list_) |
observer.OnDetachedFromWindow(); |
view->RemoveFromParent(); |
} |
- if (window) { |
- window->AddChild(view); |
+ if (view_root) { |
+ view_root->AddChild(view); |
for (auto& observer : observer_list_) |
observer.OnAttachedToWindow(); |
} |
@@ -1250,6 +1244,10 @@ void ContentViewCoreImpl::WasResized(JNIEnv* env, |
Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); |
GetViewAndroid()->GetLayer()->SetBounds(physical_size); |
+ gfx::Size view_size(GetViewSize()); |
+ GetViewAndroid()->SetLayout(0, 0, view_size.width(), view_size.height(), |
+ false); |
+ |
SendScreenRectsAndResizeWidget(); |
} |
@@ -1497,7 +1495,7 @@ jlong Init(JNIEnv* env, |
const JavaParamRef<jobject>& obj, |
const JavaParamRef<jobject>& jweb_contents, |
const JavaParamRef<jobject>& jview_android_delegate, |
- jlong jwindow_android, |
+ jlong jview_root_ptr, |
jfloat dipScale, |
const JavaParamRef<jobject>& retained_objects_set) { |
WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( |
@@ -1506,11 +1504,15 @@ 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()); |
+ gfx::Size physical_size( |
+ Java_ContentViewCore_getPhysicalBackingWidthPix(env, obj), |
+ Java_ContentViewCore_getPhysicalBackingHeightPix(env, obj)); |
+ view_android->GetLayer()->SetBounds(physical_size); |
- ui::WindowAndroid* window_android = |
- reinterpret_cast<ui::WindowAndroid*>(jwindow_android); |
- DCHECK(window_android); |
- window_android->AddChild(view_android); |
+ ui::ViewRoot* view_root = reinterpret_cast<ui::ViewRoot*>(jview_root_ptr); |
+ DCHECK(view_root->GetWindowAndroid()); |
+ view_root->AddChild(view_android); |
// TODO: pass dipScale. |
ContentViewCoreImpl* view = new ContentViewCoreImpl( |