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

Unified Diff: base/power_monitor/power_monitor_mac.mm

Issue 17074009: Created multi-process-friendly PowerMonitor interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Uber-refactor Created 7 years, 6 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: 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
Ken Russell (switch to Gerrit) 2013/06/27 13:08:23 Nice find! How did you discover the need for this?
+ case kIOMessageCanSystemSleep:
+ IOAllowPowerChange(g_system_power_io_port,
bajones 2013/07/01 20:21:58 See http://developer.apple.com/library/mac/#qa/qa1
+ 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() {
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;

Powered by Google App Engine
This is Rietveld 408576698