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 226c57f0635946abb0999fd8a409fa61c4090bc2..4d6e3c574bee1d4cbbb043eae95e97b24924c5b2 100644 |
--- a/device/power_save_blocker/power_save_blocker_android.cc |
+++ b/device/power_save_blocker/power_save_blocker_android.cc |
@@ -20,19 +20,16 @@ using base::android::ScopedJavaLocalRef; |
class PowerSaveBlocker::Delegate |
: public base::RefCountedThreadSafe<PowerSaveBlocker::Delegate> { |
public: |
- Delegate(base::WeakPtr<ui::ViewAndroid> view_android, |
- scoped_refptr<base::SequencedTaskRunner> ui_task_runner); |
+ Delegate(scoped_refptr<base::SequencedTaskRunner> ui_task_runner); |
// Does the actual work to apply or remove the desired power save block. |
- void ApplyBlock(); |
+ void ApplyBlock(ui::ViewAndroid* view_android); |
void RemoveBlock(); |
private: |
friend class base::RefCountedThreadSafe<Delegate>; |
~Delegate(); |
- base::WeakPtr<ui::ViewAndroid> view_android_; |
- |
base::android::ScopedJavaGlobalRef<jobject> java_power_save_blocker_; |
ui::ViewAndroid::ScopedAnchorView anchor_view_; |
@@ -43,27 +40,24 @@ class PowerSaveBlocker::Delegate |
}; |
PowerSaveBlocker::Delegate::Delegate( |
- base::WeakPtr<ui::ViewAndroid> view_android, |
scoped_refptr<base::SequencedTaskRunner> ui_task_runner) |
- : view_android_(view_android), ui_task_runner_(ui_task_runner) { |
+ : ui_task_runner_(ui_task_runner) { |
JNIEnv* env = AttachCurrentThread(); |
java_power_save_blocker_.Reset(Java_PowerSaveBlocker_create(env)); |
} |
PowerSaveBlocker::Delegate::~Delegate() {} |
-void PowerSaveBlocker::Delegate::ApplyBlock() { |
+void PowerSaveBlocker::Delegate::ApplyBlock(ui::ViewAndroid* view_android) { |
DCHECK(ui_task_runner_->RunsTasksOnCurrentThread()); |
- |
- if (!view_android_) |
- return; |
+ DCHECK(view_android); |
JNIEnv* env = AttachCurrentThread(); |
- anchor_view_ = view_android_->AcquireAnchorView(); |
+ anchor_view_ = view_android->AcquireAnchorView(); |
const ScopedJavaLocalRef<jobject> popup_view = anchor_view_.view(); |
if (popup_view.is_null()) |
return; |
- view_android_->SetAnchorRect(popup_view, gfx::RectF()); |
+ view_android->SetAnchorRect(popup_view, gfx::RectF()); |
ScopedJavaLocalRef<jobject> obj(java_power_save_blocker_); |
Java_PowerSaveBlocker_applyBlock(env, obj, popup_view); |
} |
@@ -93,14 +87,12 @@ PowerSaveBlocker::~PowerSaveBlocker() { |
} |
} |
-void PowerSaveBlocker::InitDisplaySleepBlocker( |
- const base::WeakPtr<ui::ViewAndroid>& view_android) { |
+void PowerSaveBlocker::InitDisplaySleepBlocker(ui::ViewAndroid* view_android) { |
DCHECK(ui_task_runner_->RunsTasksOnCurrentThread()); |
- if (!view_android) |
- return; |
+ DCHECK(view_android); |
- delegate_ = new Delegate(view_android, ui_task_runner_); |
- delegate_->ApplyBlock(); |
+ delegate_ = new Delegate(ui_task_runner_); |
+ delegate_->ApplyBlock(view_android); |
} |
} // namespace device |