Chromium Code Reviews| Index: base/power_monitor/power_monitor_mac.mm |
| diff --git a/base/power_monitor/power_monitor_mac.mm b/base/power_monitor/power_monitor_mac.mm |
| index ee906f63c8f438adce187a1d758eb1db1af86fbb..c7a93263f3de449f2995fc711a1f4a377adf9fdd 100644 |
| --- a/base/power_monitor/power_monitor_mac.mm |
| +++ b/base/power_monitor/power_monitor_mac.mm |
| @@ -5,6 +5,8 @@ |
| // Implementation based on sample code from |
| // http://developer.apple.com/library/mac/#qa/qa1340/_index.html. |
| +#include "base/power_monitor/power_monitor_device_source.h" |
| + |
| #include "base/power_monitor/power_monitor.h" |
| #include <IOKit/pwr_mgt/IOPMLib.h> |
| @@ -12,10 +14,10 @@ |
| namespace base { |
| -void ProcessPowerEventHelper(PowerMonitor::PowerEvent event) { |
| +void ProcessPowerEventHelper(PowerMonitorSource::PowerEvent event) { |
| DCHECK(PowerMonitor::Get()); |
| if (PowerMonitor::Get()) |
| - PowerMonitor::Get()->ProcessPowerEvent(event); |
| + PowerMonitor::Get()->Source()->ProcessPowerEvent(event); |
| } |
| namespace { |
| @@ -29,14 +31,19 @@ void SystemPowerEventCallback(void*, |
| natural_t message_type, |
| void* message_argument) { |
| switch (message_type) { |
| + // If this message is not handled the system may delay sleep for 30 seconds |
| + case kIOMessageCanSystemSleep: |
| + IOAllowPowerChange(g_system_power_io_port, |
| + reinterpret_cast<intptr_t>(message_argument)); |
| + break; |
| case kIOMessageSystemWillSleep: |
| - ProcessPowerEventHelper(base::PowerMonitor::SUSPEND_EVENT); |
| + ProcessPowerEventHelper(base::PowerMonitorSource::SUSPEND_EVENT); |
| IOAllowPowerChange(g_system_power_io_port, |
| reinterpret_cast<intptr_t>(message_argument)); |
| break; |
| case kIOMessageSystemWillPowerOn: |
| - ProcessPowerEventHelper(PowerMonitor::RESUME_EVENT); |
| + ProcessPowerEventHelper(PowerMonitorSource::RESUME_EVENT); |
| break; |
| } |
| } |
| @@ -49,7 +56,7 @@ void SystemPowerEventCallback(void*, |
| // See crbug.com/83783 . |
| // static |
| -void PowerMonitor::AllocateSystemIOPorts() { |
| +void PowerMonitorDeviceSource::AllocateSystemIOPorts() { |
|
Ken Russell (switch to Gerrit)
2013/07/02 09:05:15
Probably should rename to power_monitor_device_sou
|
| DCHECK_EQ(g_system_power_io_port, 0u); |
| // Notification port allocated by IORegisterForSystemPower. |
| @@ -60,7 +67,7 @@ void PowerMonitor::AllocateSystemIOPorts() { |
| DCHECK_NE(g_system_power_io_port, 0u); |
| } |
| -void PowerMonitor::PlatformInit() { |
| +void PowerMonitorDeviceSource::PlatformInit() { |
| // Need to call AllocateSystemIOPorts() before creating a PowerMonitor |
| // object. |
| DCHECK_NE(g_system_power_io_port, 0u); |
| @@ -74,7 +81,7 @@ void PowerMonitor::PlatformInit() { |
| kCFRunLoopCommonModes); |
| } |
| -void PowerMonitor::PlatformDestroy() { |
| +void PowerMonitorDeviceSource::PlatformDestroy() { |
| DCHECK_NE(g_system_power_io_port, 0u); |
| if (g_system_power_io_port == 0) |
| return; |