| Index: content/browser/power_save_blocker_android.cc
|
| diff --git a/content/browser/power_save_blocker_android.cc b/content/browser/power_save_blocker_android.cc
|
| index 0adcd290d5e024a69d6866cdf0978cd1e4b848d1..4e4c6a2bca80fed568d52f742dc3b11f88a52827 100644
|
| --- a/content/browser/power_save_blocker_android.cc
|
| +++ b/content/browser/power_save_blocker_android.cc
|
| @@ -9,7 +9,6 @@
|
| #include "content/browser/power_save_blocker_impl.h"
|
| #include "content/browser/web_contents/web_contents_impl.h"
|
| #include "content/public/browser/android/content_view_core.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/web_contents_observer.h"
|
| #include "jni/PowerSaveBlocker_jni.h"
|
| #include "ui/android/view_android.h"
|
| @@ -22,7 +21,8 @@ class PowerSaveBlockerImpl::Delegate
|
| : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate>,
|
| public WebContentsObserver {
|
| public:
|
| - explicit Delegate(WebContents* web_contents);
|
| + Delegate(WebContents* web_contents,
|
| + scoped_refptr<base::SequencedTaskRunner> ui_task_runner);
|
|
|
| // Does the actual work to apply or remove the desired power save block.
|
| void ApplyBlock();
|
| @@ -36,11 +36,15 @@ class PowerSaveBlockerImpl::Delegate
|
|
|
| base::android::ScopedJavaGlobalRef<jobject> java_power_save_blocker_;
|
|
|
| + scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(Delegate);
|
| };
|
|
|
| -PowerSaveBlockerImpl::Delegate::Delegate(WebContents* web_contents)
|
| - : WebContentsObserver(web_contents) {
|
| +PowerSaveBlockerImpl::Delegate::Delegate(
|
| + WebContents* web_contents,
|
| + scoped_refptr<base::SequencedTaskRunner> ui_task_runner)
|
| + : WebContentsObserver(web_contents), ui_task_runner_(ui_task_runner) {
|
| JNIEnv* env = AttachCurrentThread();
|
| java_power_save_blocker_.Reset(Java_PowerSaveBlocker_create(env));
|
| }
|
| @@ -49,7 +53,7 @@ PowerSaveBlockerImpl::Delegate::~Delegate() {
|
| }
|
|
|
| void PowerSaveBlockerImpl::Delegate::ApplyBlock() {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
| base::android::ScopedJavaLocalRef<jobject> java_content_view_core =
|
| GetContentViewCore();
|
| if (java_content_view_core.is_null())
|
| @@ -62,7 +66,7 @@ void PowerSaveBlockerImpl::Delegate::ApplyBlock() {
|
| }
|
|
|
| void PowerSaveBlockerImpl::Delegate::RemoveBlock() {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
| base::android::ScopedJavaLocalRef<jobject> java_content_view_core =
|
| GetContentViewCore();
|
| if (java_content_view_core.is_null())
|
| @@ -87,26 +91,30 @@ PowerSaveBlockerImpl::Delegate::GetContentViewCore() {
|
| return content_view_core_impl->GetJavaObject();
|
| }
|
|
|
| -PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
|
| - Reason reason,
|
| - const std::string& description) {
|
| +PowerSaveBlockerImpl::PowerSaveBlockerImpl(
|
| + PowerSaveBlockerType type,
|
| + Reason reason,
|
| + const std::string& description,
|
| + scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> blocking_task_runner)
|
| + : ui_task_runner_(ui_task_runner),
|
| + blocking_task_runner_(blocking_task_runner) {
|
| // Don't support kPowerSaveBlockPreventAppSuspension
|
| }
|
|
|
| PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
|
| if (delegate_.get()) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&Delegate::RemoveBlock, delegate_));
|
| + ui_task_runner_->PostTask(FROM_HERE,
|
| + base::Bind(&Delegate::RemoveBlock, delegate_));
|
| }
|
| }
|
|
|
| void PowerSaveBlockerImpl::InitDisplaySleepBlocker(WebContents* web_contents) {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + DCHECK(ui_task_runner_->RunsTasksOnCurrentThread());
|
| if (!web_contents)
|
| return;
|
|
|
| - delegate_ = new Delegate(web_contents);
|
| + delegate_ = new Delegate(web_contents, ui_task_runner_);
|
| delegate_->ApplyBlock();
|
| }
|
|
|
|
|