| Index: device/power_save_blocker/power_save_blocker_android.cc
|
| diff --git a/device/power_save_blocker/power_save_blocker_android.cc b/device/power_save_blocker/power_save_blocker_android.cc
|
| index 602209c8239a4200021427e3b65ecc6440e0a636..fa2867578cdd2ced940dafa5421b382e85db0b7e 100644
|
| --- a/device/power_save_blocker/power_save_blocker_android.cc
|
| +++ b/device/power_save_blocker/power_save_blocker_android.cc
|
| @@ -35,6 +35,8 @@
|
|
|
| base::android::ScopedJavaGlobalRef<jobject> java_power_save_blocker_;
|
|
|
| + ui::ViewAndroid::ScopedAnchorView anchor_view_;
|
| +
|
| scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(Delegate);
|
| @@ -57,18 +59,19 @@
|
| return;
|
|
|
| JNIEnv* env = AttachCurrentThread();
|
| - ScopedJavaLocalRef<jobject> delegate =
|
| - view_android_->GetViewAndroidDelegate().get(env);
|
| - if (delegate.is_null())
|
| + anchor_view_ = view_android_->AcquireAnchorView();
|
| + const ScopedJavaLocalRef<jobject> popup_view = anchor_view_.view();
|
| + if (popup_view.is_null())
|
| return;
|
| ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_);
|
| - Java_PowerSaveBlocker_applyBlock(env, obj, delegate);
|
| + Java_PowerSaveBlocker_applyBlock(env, obj, popup_view);
|
| }
|
|
|
| void PowerSaveBlocker::Delegate::RemoveBlock() {
|
| DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
| ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_);
|
| Java_PowerSaveBlocker_removeBlock(AttachCurrentThread(), obj);
|
| + anchor_view_.Reset();
|
| }
|
|
|
| PowerSaveBlocker::PowerSaveBlocker(
|
|
|