| 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 ae99975b4d8ea04e5f248254c071ae45becfa1e3..854a1ef14bef83f9d91566bd2861e624fbe6453a 100644
|
| --- a/content/browser/power_save_blocker_chromeos.cc
|
| +++ b/content/browser/power_save_blocker_chromeos.cc
|
| @@ -16,13 +16,32 @@
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +
|
| +// Converts a PowerSaveBlocker::Reason to a
|
| +// chromeos::PowerPolicyController::WakeLockReason.
|
| +chromeos::PowerPolicyController::WakeLockReason GetWakeLockReason(
|
| + PowerSaveBlocker::Reason reason) {
|
| + switch (reason) {
|
| + case PowerSaveBlocker::kReasonAudioPlayback:
|
| + return chromeos::PowerPolicyController::REASON_AUDIO_PLAYBACK;
|
| + case PowerSaveBlocker::kReasonVideoPlayback:
|
| + return chromeos::PowerPolicyController::REASON_VIDEO_PLAYBACK;
|
| + case PowerSaveBlocker::kReasonOther:
|
| + return chromeos::PowerPolicyController::REASON_OTHER;
|
| + }
|
| + return chromeos::PowerPolicyController::REASON_OTHER;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class PowerSaveBlockerImpl::Delegate
|
| : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
|
| public:
|
| - Delegate(PowerSaveBlockerType type, const std::string& reason)
|
| - : type_(type),
|
| - reason_(reason),
|
| - block_id_(0) {}
|
| + Delegate(PowerSaveBlockerType type,
|
| + Reason reason,
|
| + const std::string& description)
|
| + : type_(type), reason_(reason), description_(description), block_id_(0) {}
|
|
|
| void ApplyBlock() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| @@ -32,10 +51,12 @@ class PowerSaveBlockerImpl::Delegate
|
| auto* controller = chromeos::PowerPolicyController::Get();
|
| switch (type_) {
|
| case kPowerSaveBlockPreventAppSuspension:
|
| - block_id_ = controller->AddSystemWakeLock(reason_);
|
| + block_id_ = controller->AddSystemWakeLock(GetWakeLockReason(reason_),
|
| + description_);
|
| break;
|
| case kPowerSaveBlockPreventDisplaySleep:
|
| - block_id_ = controller->AddScreenWakeLock(reason_);
|
| + block_id_ = controller->AddScreenWakeLock(GetWakeLockReason(reason_),
|
| + description_);
|
| break;
|
| default:
|
| NOTREACHED() << "Unhandled block type " << type_;
|
| @@ -55,7 +76,8 @@ class PowerSaveBlockerImpl::Delegate
|
| virtual ~Delegate() {}
|
|
|
| PowerSaveBlockerType type_;
|
| - std::string reason_;
|
| + Reason reason_;
|
| + std::string description_;
|
|
|
| // ID corresponding to the block request in PowerPolicyController.
|
| int block_id_;
|
| @@ -64,8 +86,9 @@ class PowerSaveBlockerImpl::Delegate
|
| };
|
|
|
| PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
|
| - const std::string& reason)
|
| - : delegate_(new Delegate(type, reason)) {
|
| + Reason reason,
|
| + const std::string& description)
|
| + : delegate_(new Delegate(type, reason, description)) {
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| base::Bind(&Delegate::ApplyBlock, delegate_));
|
| }
|
|
|