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_)); |
} |