Commit b277e382 authored by Ioana Pandele's avatar Ioana Pandele Committed by Commit Bot

Handle WindowAndroid* being null in the generation editing popup

If WindowAndroid* is null when trying to display or update the bounds
of the popup, then there is no way/no reason to do it. Thus, the
display attempt is abandoned.

Bug: 1051031
Change-Id: I95f90b7240393d9f09de14e50917095694e8471b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2061810Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Ioana Pandele <ioanap@chromium.org>
Cr-Commit-Position: refs/heads/master@{#742646}
parent 4f7b24a3
...@@ -36,21 +36,27 @@ void PasswordGenerationEditingPopupViewAndroid::Dismissed( ...@@ -36,21 +36,27 @@ void PasswordGenerationEditingPopupViewAndroid::Dismissed(
} }
PasswordGenerationEditingPopupViewAndroid:: PasswordGenerationEditingPopupViewAndroid::
~PasswordGenerationEditingPopupViewAndroid() {} ~PasswordGenerationEditingPopupViewAndroid() = default;
void PasswordGenerationEditingPopupViewAndroid::Show() { void PasswordGenerationEditingPopupViewAndroid::Show() {
ui::ViewAndroid* view_android = controller_->container_view(); ui::ViewAndroid* view_android = controller_->container_view();
DCHECK(view_android); if (!view_android)
return;
popup_ = view_android->AcquireAnchorView(); popup_ = view_android->AcquireAnchorView();
const ScopedJavaLocalRef<jobject> view = popup_.view(); const ScopedJavaLocalRef<jobject> view = popup_.view();
if (view.is_null()) if (view.is_null())
return; return;
ui::WindowAndroid* window_android = view_android->GetWindowAndroid();
if (!window_android)
return;
JNIEnv* env = base::android::AttachCurrentThread(); JNIEnv* env = base::android::AttachCurrentThread();
java_object_.Reset(Java_PasswordGenerationPopupBridge_create( java_object_.Reset(Java_PasswordGenerationPopupBridge_create(
env, view, reinterpret_cast<intptr_t>(this), env, view, reinterpret_cast<intptr_t>(this),
view_android->GetWindowAndroid()->GetJavaObject())); window_android->GetJavaObject()));
UpdateBoundsAndRedrawPopup(); UpdateBoundsAndRedrawPopup();
} }
...@@ -77,8 +83,9 @@ void PasswordGenerationEditingPopupViewAndroid::UpdateBoundsAndRedrawPopup() { ...@@ -77,8 +83,9 @@ void PasswordGenerationEditingPopupViewAndroid::UpdateBoundsAndRedrawPopup() {
return; return;
ui::ViewAndroid* view_android = controller_->container_view(); ui::ViewAndroid* view_android = controller_->container_view();
if (!view_android)
return;
DCHECK(view_android);
view_android->SetAnchorRect(view, controller_->element_bounds()); view_android->SetAnchorRect(view, controller_->element_bounds());
JNIEnv* env = base::android::AttachCurrentThread(); JNIEnv* env = base::android::AttachCurrentThread();
ScopedJavaLocalRef<jstring> help = ScopedJavaLocalRef<jstring> help =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment