Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Unified Diff: device/wake_lock/wake_lock_service_context.cc

Issue 2843353003: Move ownership of PowerSaveBlocker from WakeLockServiceContext to WakeLockServiceImpl (Closed)
Patch Set: error fix, non-frame client. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/wake_lock/wake_lock_service_context.cc
diff --git a/device/wake_lock/wake_lock_service_context.cc b/device/wake_lock/wake_lock_service_context.cc
index b56680f3806510ef241cc5a6ef5cbf12f0ddc495..a395edf9269ba0e06bca3891c2337ea7fcb6cf2a 100644
--- a/device/wake_lock/wake_lock_service_context.cc
+++ b/device/wake_lock/wake_lock_service_context.cc
@@ -19,13 +19,10 @@ WakeLockServiceContext::WakeLockServiceContext(
int context_id,
scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
const WakeLockContextCallback& native_view_getter)
- : main_task_runner_(base::ThreadTaskRunnerHandle::Get()),
- file_task_runner_(std::move(file_task_runner)),
- num_lock_requests_(0),
-#if defined(OS_ANDROID)
+ : file_task_runner_(std::move(file_task_runner)),
+ wake_lock_count_(0),
context_id_(context_id),
native_view_getter_(native_view_getter),
-#endif
context_binding_(this, std::move(request)),
context_binding_encountered_error_(false) {
context_binding_.set_connection_error_handler(base::Bind(
@@ -38,57 +35,30 @@ WakeLockServiceContext::WakeLockServiceContext(
WakeLockServiceContext::~WakeLockServiceContext() {}
void WakeLockServiceContext::GetWakeLock(
- mojo::InterfaceRequest<mojom::WakeLockService> request) {
- wake_lock_bindings_.AddBinding(base::MakeUnique<WakeLockServiceImpl>(this),
- std::move(request));
+ device::PowerSaveBlocker::PowerSaveBlockerType type,
+ device::PowerSaveBlocker::Reason reason,
+ const std::string& description,
+ mojom::WakeLockServiceRequest request) {
+ wake_lock_bindings_.AddBinding(
+ base::MakeUnique<WakeLockServiceImpl>(this, type, reason, description,
+ context_id_, native_view_getter_,
+ file_task_runner_),
+ std::move(request));
}
-void WakeLockServiceContext::RequestWakeLock() {
- DCHECK(main_task_runner_->RunsTasksOnCurrentThread());
- num_lock_requests_++;
- UpdateWakeLock();
+void WakeLockServiceContext::IncreaseWakeLockCount() {
+ DCHECK(wake_lock_count_ >= 0);
+ ++wake_lock_count_;
}
-void WakeLockServiceContext::CancelWakeLock() {
- DCHECK(main_task_runner_->RunsTasksOnCurrentThread());
- num_lock_requests_--;
- UpdateWakeLock();
+void WakeLockServiceContext::DecreaseWakeLockCount() {
+ DCHECK(wake_lock_count_ > 0);
+ --wake_lock_count_;
}
void WakeLockServiceContext::HasWakeLockForTests(
const HasWakeLockForTestsCallback& callback) {
- callback.Run(!!wake_lock_);
-}
-
-void WakeLockServiceContext::CreateWakeLock() {
- DCHECK(!wake_lock_);
- wake_lock_.reset(new device::PowerSaveBlocker(
- device::PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
- device::PowerSaveBlocker::kReasonOther, "Wake Lock API",
- main_task_runner_, file_task_runner_));
-
-#if defined(OS_ANDROID)
- gfx::NativeView native_view = native_view_getter_.Run(context_id_);
- if (native_view) {
- wake_lock_.get()->InitDisplaySleepBlocker(native_view);
- }
-#endif
-}
-
-void WakeLockServiceContext::RemoveWakeLock() {
- DCHECK(wake_lock_);
- wake_lock_.reset();
-}
-
-void WakeLockServiceContext::UpdateWakeLock() {
- DCHECK(num_lock_requests_ >= 0);
- if (num_lock_requests_) {
- if (!wake_lock_)
- CreateWakeLock();
- } else {
- if (wake_lock_)
- RemoveWakeLock();
- }
+ callback.Run(!!wake_lock_count_);
}
void WakeLockServiceContext::OnContextBindingError() {

Powered by Google App Engine
This is Rietveld 408576698