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

Unified Diff: chrome/browser/chromeos/dbus/power_manager_client.cc

Issue 8666007: chromeos: Move system resume handling to power manager client (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed order (again) Created 9 years, 1 month 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: chrome/browser/chromeos/dbus/power_manager_client.cc
diff --git a/chrome/browser/chromeos/dbus/power_manager_client.cc b/chrome/browser/chromeos/dbus/power_manager_client.cc
index 5b95f0e1cf3016ad4d71f230b85afec18fd9543c..fce1c132aabfa452eedce05fc269e1978e8ced4c 100644
--- a/chrome/browser/chromeos/dbus/power_manager_client.cc
+++ b/chrome/browser/chromeos/dbus/power_manager_client.cc
@@ -83,6 +83,15 @@ class PowerManagerClientImpl : public PowerManagerClient {
weak_ptr_factory_.GetWeakPtr()),
base::Bind(&PowerManagerClientImpl::SignalConnected,
weak_ptr_factory_.GetWeakPtr()));
+
+ // Monitor the D-Bus signal for power state changed signals.
+ power_manager_proxy_->ConnectToSignal(
+ power_manager::kPowerManagerInterface,
+ power_manager::kPowerStateChangedSignal,
+ base::Bind(&PowerManagerClientImpl::PowerStateChangedSignalReceived,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::Bind(&PowerManagerClientImpl::SignalConnected,
+ weak_ptr_factory_.GetWeakPtr()));
}
virtual ~PowerManagerClientImpl() {
@@ -211,6 +220,21 @@ class PowerManagerClientImpl : public PowerManagerClient {
VLOG(1) << "screen brightness increased: " << response->ToString();
}
+ // Called when a power state changed signal is received.
+ void PowerStateChangedSignalReceived(dbus::Signal* signal) {
+ VLOG(1) << "Received power state changed signal.";
+ dbus::MessageReader reader(signal);
+ std::string power_state_string;
+ if (!reader.PopString(&power_state_string)) {
+ LOG(ERROR) << "Error reading signal args: " << signal->ToString();
+ return;
+ }
+ if (power_state_string != "on")
+ return;
+ // Notify all observers of resume event.
+ FOR_EACH_OBSERVER(Observer, observers_, SystemResumed());
+ }
+
// Called when a power supply polling signal is received.
void PowerSupplyPollReceived(dbus::Signal* unused_signal) {
VLOG(1) << "Received power supply poll signal.";
« no previous file with comments | « chrome/browser/chromeos/dbus/power_manager_client.h ('k') | chrome/browser/chromeos/net/network_change_notifier_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698