Chromium Code Reviews| 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 0e7e53ecd062f22adeb47802398a9810a556d574..079dcdbfd4f990425d82eb31df94f1899d4782cd 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" |
| @@ -271,22 +272,23 @@ 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()) { |
|
boliu
2017/01/05 19:09:28
should be view->GetViewRoot() now
Jinsuk Kim
2017/01/05 22:30:15
Done.
|
| 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(); |
| } |
| @@ -1532,7 +1534,7 @@ jlong Init(JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| const JavaParamRef<jobject>& jweb_contents, |
| const JavaParamRef<jobject>& jview_android_delegate, |
| - jlong jwindow_android, |
| + const JavaParamRef<jobject>& jview_root, |
|
boliu
2017/01/05 19:09:28
use native pointer here as well
Jinsuk Kim
2017/01/05 22:30:15
Done.
|
| jfloat dipScale, |
| const JavaParamRef<jobject>& retained_objects_set) { |
| WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( |
| @@ -1542,11 +1544,7 @@ jlong Init(JNIEnv* env, |
| 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); |
| - DCHECK(window_android); |
| - window_android->AddChild(view_android); |
| + ui::ViewRoot::FromJavaObject(env, jview_root)->AddChild(view_android); |
| // TODO: pass dipScale. |
| ContentViewCoreImpl* view = new ContentViewCoreImpl( |