Chromium Code Reviews| Index: content/browser/power_save_blocker_chromeos.cc |
| diff --git a/content/browser/power_save_blocker_chromeos.cc b/content/browser/power_save_blocker_chromeos.cc |
| index 4129e50ddefb9980ffe353c00f469a1cf26f2b35..ae29e90962ce2bd6767e1f236b3e133b7f68b4bf 100644 |
| --- a/content/browser/power_save_blocker_chromeos.cc |
| +++ b/content/browser/power_save_blocker_chromeos.cc |
| @@ -6,10 +6,10 @@ |
| #include "base/basictypes.h" |
| #include "base/bind.h" |
| -#include "base/chromeos/chromeos_version.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
|
bartfab (slow)
2013/03/21 14:22:26
Not used.
Daniel Erat
2013/03/21 14:48:46
Done.
|
| -#include "chromeos/power/power_state_override.h" |
| +#include "chromeos/dbus/dbus_thread_manager.h" |
| +#include "chromeos/dbus/power_policy_controller.h" |
| #include "content/public/browser/browser_thread.h" |
| namespace content { |
| @@ -17,36 +17,40 @@ namespace content { |
| class PowerSaveBlockerImpl::Delegate |
| : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> { |
| public: |
| - Delegate(PowerSaveBlockerType type) : type_(type) {} |
| + Delegate(PowerSaveBlockerType type, const std::string& reason) |
|
bartfab (slow)
2013/03/21 14:22:26
#include <string>
Daniel Erat
2013/03/21 14:48:46
Done (but it's already included by content/public/
bartfab (slow)
2013/03/21 15:34:38
Borderline case for IWYU :).
|
| + : type_(type), |
| + reason_(reason), |
| + block_id_(0) {} |
|
bartfab (slow)
2013/03/21 14:22:26
Clever idea to default block_id_ to 0 and have the
|
| - // Creates a PowerStateOverride object to override the default power |
| - // management behavior. |
| void ApplyBlock() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
|
bartfab (slow)
2013/03/21 14:22:26
#include "base/logging.h"
Daniel Erat
2013/03/21 14:48:46
Done.
|
| - |
| - // Do nothing when not running on real CrOS devices. |
| - if (!base::chromeos::IsRunningOnChromeOS()) |
| + if (!chromeos::DBusThreadManager::IsInitialized()) { |
| + LOG(WARNING) << "DBusThreadManager not initialized"; |
| return; |
| + } |
| - chromeos::PowerStateOverride::Mode mode = |
| - chromeos::PowerStateOverride::BLOCK_SYSTEM_SUSPEND; |
| + chromeos::PowerPolicyController* controller = |
| + chromeos::DBusThreadManager::Get()->GetPowerPolicyController(); |
| switch (type_) { |
| case kPowerSaveBlockPreventAppSuspension: |
| - mode = chromeos::PowerStateOverride::BLOCK_SYSTEM_SUSPEND; |
| + block_id_ = controller->AddSuspendBlock(reason_); |
| break; |
| case kPowerSaveBlockPreventDisplaySleep: |
| - mode = chromeos::PowerStateOverride::BLOCK_DISPLAY_SLEEP; |
| + block_id_ = controller->AddScreenBlock(reason_); |
| break; |
| default: |
| NOTREACHED() << "Unhandled block type " << type_; |
| } |
| - override_ = new chromeos::PowerStateOverride(mode); |
| } |
| - // Resets the previously-created PowerStateOverride object. |
| void RemoveBlock() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - override_ = NULL; |
| + if (!chromeos::DBusThreadManager::IsInitialized()) { |
| + LOG(WARNING) << "DBusThreadManager not initialized"; |
| + return; |
| + } |
| + chromeos::DBusThreadManager::Get()->GetPowerPolicyController()-> |
| + RemoveBlock(block_id_); |
| } |
| private: |
| @@ -54,15 +58,17 @@ class PowerSaveBlockerImpl::Delegate |
| virtual ~Delegate() {} |
| PowerSaveBlockerType type_; |
| + std::string reason_; |
| - scoped_refptr<chromeos::PowerStateOverride> override_; |
| + // ID corresponding to the block request in PowerPolicyController. |
| + int block_id_; |
| DISALLOW_COPY_AND_ASSIGN(Delegate); |
| }; |
| PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type, |
| const std::string& reason) |
| - : delegate_(new Delegate(type)) { |
| + : delegate_(new Delegate(type, reason)) { |
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
|
bartfab (slow)
2013/03/21 14:22:26
#include "base/location.h"
Daniel Erat
2013/03/21 14:48:46
Done.
|
| base::Bind(&Delegate::ApplyBlock, delegate_)); |
| } |