| 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 252ff02d6f71d0bb83a032ed708a1e7d95227547..45ee6d7e91ad79768ef0d4e09ac345d75caea333 100644
|
| --- a/device/power_save_blocker/power_save_blocker_android.cc
|
| +++ b/device/power_save_blocker/power_save_blocker_android.cc
|
| @@ -34,6 +34,8 @@ class PowerSaveBlocker::Delegate
|
|
|
| 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);
|
| @@ -52,22 +54,22 @@ PowerSaveBlocker::Delegate::~Delegate() {}
|
| void PowerSaveBlocker::Delegate::ApplyBlock() {
|
| DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
|
|
| - ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_);
|
| + if (!view_android_)
|
| + return;
|
| + anchor_view_ = view_android_->AcquireAnchorView();
|
| + if (anchor_view_.is_null())
|
| + return;
|
| JNIEnv* env = AttachCurrentThread();
|
| - if (view_android_) {
|
| - Java_PowerSaveBlocker_applyBlock(
|
| - env, obj.obj(), view_android_->GetViewAndroidDelegate().obj());
|
| - }
|
| + ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_);
|
| + Java_PowerSaveBlocker_applyBlock(env, obj.obj(), anchor_view_.view().obj());
|
| }
|
|
|
| void PowerSaveBlocker::Delegate::RemoveBlock() {
|
| DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
| ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_);
|
| - JNIEnv* env = AttachCurrentThread();
|
| - if (view_android_) {
|
| - Java_PowerSaveBlocker_removeBlock(
|
| - env, obj.obj(), view_android_->GetViewAndroidDelegate().obj());
|
| - }
|
| + Java_PowerSaveBlocker_removeBlock(AttachCurrentThread(), obj.obj());
|
| + if (!anchor_view_.is_null())
|
| + anchor_view_ = ui::ViewAndroid::ScopedAnchorView();
|
| }
|
|
|
| PowerSaveBlocker::PowerSaveBlocker(
|
|
|