| 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 fe87f989dc03c54b6bf24e5994628086a83853fd..ffa57addb6c49bf19cd07757f36828e563dc91a0 100644
|
| --- a/content/browser/android/content_view_core_impl.cc
|
| +++ b/content/browser/android/content_view_core_impl.cc
|
| @@ -267,18 +267,20 @@ void ContentViewCoreImpl::UpdateWindowAndroid(
|
| const base::android::JavaParamRef<jobject>& obj,
|
| jlong window_android) {
|
| ui::ViewAndroid* view = GetViewAndroid();
|
| - if (window_android) {
|
| - DCHECK(!GetWindowAndroid());
|
| - ui::WindowAndroid* window =
|
| - reinterpret_cast<ui::WindowAndroid*>(window_android);
|
| - window->AddChild(view);
|
| - for (auto& observer : observer_list_)
|
| - observer.OnAttachedToWindow();
|
| - } else {
|
| + ui::WindowAndroid* window =
|
| + reinterpret_cast<ui::WindowAndroid*>(window_android);
|
| + if (window == GetWindowAndroid())
|
| + return;
|
| + if (GetWindowAndroid()) {
|
| for (auto& observer : observer_list_)
|
| observer.OnDetachedFromWindow();
|
| view->RemoveFromParent();
|
| }
|
| + if (window) {
|
| + window->AddChild(view);
|
| + for (auto& observer : observer_list_)
|
| + observer.OnAttachedToWindow();
|
| + }
|
| }
|
|
|
| base::android::ScopedJavaLocalRef<jobject>
|
|
|