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

Side by Side Diff: chromeos/dbus/power_manager_client.cc

Issue 773703002: Generalize network_event_log -> device_event_log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Feedback Created 6 years 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 unified diff | Download patch
« no previous file with comments | « chromeos/dbus/dbus_thread_manager.cc ('k') | chromeos/device_event_log.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/dbus/power_manager_client.h" 5 #include "chromeos/dbus/power_manager_client.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/format_macros.h" 12 #include "base/format_macros.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/observer_list.h" 16 #include "base/observer_list.h"
17 #include "base/power_monitor/power_monitor_device_source.h" 17 #include "base/power_monitor/power_monitor_device_source.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "base/strings/string_split.h" 19 #include "base/strings/string_split.h"
20 #include "base/strings/stringprintf.h" 20 #include "base/strings/stringprintf.h"
21 #include "base/threading/platform_thread.h" 21 #include "base/threading/platform_thread.h"
22 #include "base/time/time.h" 22 #include "base/time/time.h"
23 #include "base/timer/timer.h" 23 #include "base/timer/timer.h"
24 #include "chromeos/chromeos_switches.h" 24 #include "chromeos/chromeos_switches.h"
25 #include "chromeos/dbus/power_manager/input_event.pb.h" 25 #include "chromeos/dbus/power_manager/input_event.pb.h"
26 #include "chromeos/dbus/power_manager/peripheral_battery_status.pb.h" 26 #include "chromeos/dbus/power_manager/peripheral_battery_status.pb.h"
27 #include "chromeos/dbus/power_manager/policy.pb.h" 27 #include "chromeos/dbus/power_manager/policy.pb.h"
28 #include "chromeos/dbus/power_manager/power_supply_properties.pb.h" 28 #include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
29 #include "chromeos/dbus/power_manager/suspend.pb.h" 29 #include "chromeos/dbus/power_manager/suspend.pb.h"
30 #include "chromeos/device_event_log.h"
30 #include "dbus/bus.h" 31 #include "dbus/bus.h"
31 #include "dbus/message.h" 32 #include "dbus/message.h"
32 #include "dbus/object_path.h" 33 #include "dbus/object_path.h"
33 #include "dbus/object_proxy.h" 34 #include "dbus/object_proxy.h"
34 35
35 namespace chromeos { 36 namespace chromeos {
36 37
37 // Maximum amount of time that the power manager will wait for Chrome to 38 // Maximum amount of time that the power manager will wait for Chrome to
38 // say that it's ready for the system to be suspended, in milliseconds. 39 // say that it's ready for the system to be suspended, in milliseconds.
39 const int kSuspendDelayTimeoutMs = 5000; 40 const int kSuspendDelayTimeoutMs = 5000;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 } 84 }
84 85
85 virtual void SetRenderProcessManagerDelegate( 86 virtual void SetRenderProcessManagerDelegate(
86 base::WeakPtr<RenderProcessManagerDelegate> delegate) override { 87 base::WeakPtr<RenderProcessManagerDelegate> delegate) override {
87 DCHECK(!render_process_manager_delegate_) 88 DCHECK(!render_process_manager_delegate_)
88 << "There can be only one! ...RenderProcessManagerDelegate"; 89 << "There can be only one! ...RenderProcessManagerDelegate";
89 render_process_manager_delegate_ = delegate; 90 render_process_manager_delegate_ = delegate;
90 } 91 }
91 92
92 virtual void DecreaseScreenBrightness(bool allow_off) override { 93 virtual void DecreaseScreenBrightness(bool allow_off) override {
94 POWER_LOG(USER) << "DecreaseScreenBrightness, allow_off: " << allow_off;
93 dbus::MethodCall method_call( 95 dbus::MethodCall method_call(
94 power_manager::kPowerManagerInterface, 96 power_manager::kPowerManagerInterface,
95 power_manager::kDecreaseScreenBrightnessMethod); 97 power_manager::kDecreaseScreenBrightnessMethod);
96 dbus::MessageWriter writer(&method_call); 98 dbus::MessageWriter writer(&method_call);
97 writer.AppendBool(allow_off); 99 writer.AppendBool(allow_off);
98 power_manager_proxy_->CallMethod( 100 power_manager_proxy_->CallMethod(
99 &method_call, 101 &method_call,
100 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 102 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
101 dbus::ObjectProxy::EmptyResponseCallback()); 103 dbus::ObjectProxy::EmptyResponseCallback());
102 } 104 }
103 105
104 virtual void IncreaseScreenBrightness() override { 106 virtual void IncreaseScreenBrightness() override {
107 POWER_LOG(USER) << "IncreaseScreenBrightness";
105 SimpleMethodCallToPowerManager( 108 SimpleMethodCallToPowerManager(
106 power_manager::kIncreaseScreenBrightnessMethod); 109 power_manager::kIncreaseScreenBrightnessMethod);
107 } 110 }
108 111
109 virtual void DecreaseKeyboardBrightness() override { 112 virtual void DecreaseKeyboardBrightness() override {
113 POWER_LOG(USER) << "DecreaseKeyboardBrightness";
110 SimpleMethodCallToPowerManager( 114 SimpleMethodCallToPowerManager(
111 power_manager::kDecreaseKeyboardBrightnessMethod); 115 power_manager::kDecreaseKeyboardBrightnessMethod);
112 } 116 }
113 117
114 virtual void IncreaseKeyboardBrightness() override { 118 virtual void IncreaseKeyboardBrightness() override {
119 POWER_LOG(USER) << "IncreaseKeyboardBrightness";
115 SimpleMethodCallToPowerManager( 120 SimpleMethodCallToPowerManager(
116 power_manager::kIncreaseKeyboardBrightnessMethod); 121 power_manager::kIncreaseKeyboardBrightnessMethod);
117 } 122 }
118 123
119 virtual void SetScreenBrightnessPercent(double percent, 124 virtual void SetScreenBrightnessPercent(double percent,
120 bool gradual) override { 125 bool gradual) override {
126 POWER_LOG(USER) << "SetScreenBrightnessPercent: " << percent
Daniel Erat 2014/12/03 15:07:20 this might be spammy enough that we don't want to
stevenjb 2014/12/05 20:14:06 Yeah, this is spammy, I'll remove it. It turns out
127 << " gradual: " << gradual;
121 dbus::MethodCall method_call( 128 dbus::MethodCall method_call(
122 power_manager::kPowerManagerInterface, 129 power_manager::kPowerManagerInterface,
123 power_manager::kSetScreenBrightnessPercentMethod); 130 power_manager::kSetScreenBrightnessPercentMethod);
124 dbus::MessageWriter writer(&method_call); 131 dbus::MessageWriter writer(&method_call);
125 writer.AppendDouble(percent); 132 writer.AppendDouble(percent);
126 writer.AppendInt32( 133 writer.AppendInt32(
127 gradual ? 134 gradual ?
128 power_manager::kBrightnessTransitionGradual : 135 power_manager::kBrightnessTransitionGradual :
129 power_manager::kBrightnessTransitionInstant); 136 power_manager::kBrightnessTransitionInstant);
130 power_manager_proxy_->CallMethod( 137 power_manager_proxy_->CallMethod(
131 &method_call, 138 &method_call,
132 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 139 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
133 dbus::ObjectProxy::EmptyResponseCallback()); 140 dbus::ObjectProxy::EmptyResponseCallback());
134 } 141 }
135 142
136 virtual void GetScreenBrightnessPercent( 143 virtual void GetScreenBrightnessPercent(
137 const GetScreenBrightnessPercentCallback& callback) override { 144 const GetScreenBrightnessPercentCallback& callback) override {
138 dbus::MethodCall method_call( 145 dbus::MethodCall method_call(
139 power_manager::kPowerManagerInterface, 146 power_manager::kPowerManagerInterface,
140 power_manager::kGetScreenBrightnessPercentMethod); 147 power_manager::kGetScreenBrightnessPercentMethod);
141 power_manager_proxy_->CallMethod( 148 power_manager_proxy_->CallMethod(
142 &method_call, 149 &method_call,
143 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 150 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
144 base::Bind(&PowerManagerClientImpl::OnGetScreenBrightnessPercent, 151 base::Bind(&PowerManagerClientImpl::OnGetScreenBrightnessPercent,
145 weak_ptr_factory_.GetWeakPtr(), callback)); 152 weak_ptr_factory_.GetWeakPtr(), callback));
146 } 153 }
147 154
148 virtual void RequestStatusUpdate() override { 155 virtual void RequestStatusUpdate() override {
156 POWER_LOG(USER) << "RequestStatusUpdate";
149 dbus::MethodCall method_call( 157 dbus::MethodCall method_call(
150 power_manager::kPowerManagerInterface, 158 power_manager::kPowerManagerInterface,
151 power_manager::kGetPowerSupplyPropertiesMethod); 159 power_manager::kGetPowerSupplyPropertiesMethod);
152 power_manager_proxy_->CallMethod( 160 power_manager_proxy_->CallMethod(
153 &method_call, 161 &method_call,
154 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 162 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
155 base::Bind(&PowerManagerClientImpl::OnGetPowerSupplyPropertiesMethod, 163 base::Bind(&PowerManagerClientImpl::OnGetPowerSupplyPropertiesMethod,
156 weak_ptr_factory_.GetWeakPtr())); 164 weak_ptr_factory_.GetWeakPtr()));
157 } 165 }
158 166
159 virtual void RequestSuspend() override { 167 virtual void RequestSuspend() override {
168 POWER_LOG(USER) << "RequestSuspend";
160 SimpleMethodCallToPowerManager(power_manager::kRequestSuspendMethod); 169 SimpleMethodCallToPowerManager(power_manager::kRequestSuspendMethod);
161 } 170 }
162 171
163 virtual void RequestRestart() override { 172 virtual void RequestRestart() override {
173 POWER_LOG(USER) << "RequestRestart";
164 SimpleMethodCallToPowerManager(power_manager::kRequestRestartMethod); 174 SimpleMethodCallToPowerManager(power_manager::kRequestRestartMethod);
165 } 175 }
166 176
167 virtual void RequestShutdown() override { 177 virtual void RequestShutdown() override {
178 POWER_LOG(USER) << "RequestShutdown";
168 SimpleMethodCallToPowerManager(power_manager::kRequestShutdownMethod); 179 SimpleMethodCallToPowerManager(power_manager::kRequestShutdownMethod);
169 } 180 }
170 181
171 virtual void NotifyUserActivity( 182 virtual void NotifyUserActivity(
172 power_manager::UserActivityType type) override { 183 power_manager::UserActivityType type) override {
173 dbus::MethodCall method_call( 184 dbus::MethodCall method_call(
174 power_manager::kPowerManagerInterface, 185 power_manager::kPowerManagerInterface,
175 power_manager::kHandleUserActivityMethod); 186 power_manager::kHandleUserActivityMethod);
176 dbus::MessageWriter writer(&method_call); 187 dbus::MessageWriter writer(&method_call);
177 writer.AppendInt32(type); 188 writer.AppendInt32(type);
(...skipping 12 matching lines...) Expand all
190 writer.AppendBool(is_fullscreen); 201 writer.AppendBool(is_fullscreen);
191 202
192 power_manager_proxy_->CallMethod( 203 power_manager_proxy_->CallMethod(
193 &method_call, 204 &method_call,
194 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 205 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
195 dbus::ObjectProxy::EmptyResponseCallback()); 206 dbus::ObjectProxy::EmptyResponseCallback());
196 } 207 }
197 208
198 virtual void SetPolicy( 209 virtual void SetPolicy(
199 const power_manager::PowerManagementPolicy& policy) override { 210 const power_manager::PowerManagementPolicy& policy) override {
211 POWER_LOG(USER) << "SetPolicy";
200 dbus::MethodCall method_call( 212 dbus::MethodCall method_call(
201 power_manager::kPowerManagerInterface, 213 power_manager::kPowerManagerInterface,
202 power_manager::kSetPolicyMethod); 214 power_manager::kSetPolicyMethod);
203 dbus::MessageWriter writer(&method_call); 215 dbus::MessageWriter writer(&method_call);
204 if (!writer.AppendProtoAsArrayOfBytes(policy)) { 216 if (!writer.AppendProtoAsArrayOfBytes(policy)) {
205 LOG(ERROR) << "Error calling " << power_manager::kSetPolicyMethod; 217 POWER_LOG(ERROR) << "Error calling " << power_manager::kSetPolicyMethod;
206 return; 218 return;
207 } 219 }
208 power_manager_proxy_->CallMethod( 220 power_manager_proxy_->CallMethod(
209 &method_call, 221 &method_call,
210 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 222 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
211 dbus::ObjectProxy::EmptyResponseCallback()); 223 dbus::ObjectProxy::EmptyResponseCallback());
212 } 224 }
213 225
214 virtual void SetIsProjecting(bool is_projecting) override { 226 virtual void SetIsProjecting(bool is_projecting) override {
227 POWER_LOG(USER) << "SetIsProjecting";
215 dbus::MethodCall method_call( 228 dbus::MethodCall method_call(
216 power_manager::kPowerManagerInterface, 229 power_manager::kPowerManagerInterface,
217 power_manager::kSetIsProjectingMethod); 230 power_manager::kSetIsProjectingMethod);
218 dbus::MessageWriter writer(&method_call); 231 dbus::MessageWriter writer(&method_call);
219 writer.AppendBool(is_projecting); 232 writer.AppendBool(is_projecting);
220 power_manager_proxy_->CallMethod( 233 power_manager_proxy_->CallMethod(
221 &method_call, 234 &method_call,
222 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 235 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
223 dbus::ObjectProxy::EmptyResponseCallback()); 236 dbus::ObjectProxy::EmptyResponseCallback());
224 last_is_projecting_ = is_projecting; 237 last_is_projecting_ = is_projecting;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 private: 345 private:
333 // Returns true if the current thread is the origin thread. 346 // Returns true if the current thread is the origin thread.
334 bool OnOriginThread() { 347 bool OnOriginThread() {
335 return base::PlatformThread::CurrentId() == origin_thread_id_; 348 return base::PlatformThread::CurrentId() == origin_thread_id_;
336 } 349 }
337 350
338 // Called when a dbus signal is initially connected. 351 // Called when a dbus signal is initially connected.
339 void SignalConnected(const std::string& interface_name, 352 void SignalConnected(const std::string& interface_name,
340 const std::string& signal_name, 353 const std::string& signal_name,
341 bool success) { 354 bool success) {
342 LOG_IF(WARNING, !success) << "Failed to connect to signal " 355 if (!success)
343 << signal_name << "."; 356 POWER_LOG(ERROR) << "Failed to connect to signal " << signal_name << ".";
344 } 357 }
345 358
346 // Makes a method call to power manager with no arguments and no response. 359 // Makes a method call to power manager with no arguments and no response.
347 void SimpleMethodCallToPowerManager(const std::string& method_name) { 360 void SimpleMethodCallToPowerManager(const std::string& method_name) {
348 dbus::MethodCall method_call(power_manager::kPowerManagerInterface, 361 dbus::MethodCall method_call(power_manager::kPowerManagerInterface,
349 method_name); 362 method_name);
350 power_manager_proxy_->CallMethod( 363 power_manager_proxy_->CallMethod(
351 &method_call, 364 &method_call,
352 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 365 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
353 dbus::ObjectProxy::EmptyResponseCallback()); 366 dbus::ObjectProxy::EmptyResponseCallback());
354 } 367 }
355 368
356 void NameOwnerChangedReceived(const std::string& old_owner, 369 void NameOwnerChangedReceived(const std::string& old_owner,
357 const std::string& new_owner) { 370 const std::string& new_owner) {
358 VLOG(1) << "Power manager restarted (old owner was " 371 POWER_LOG(EVENT) << "Power manager restarted. Old owner: "
359 << (old_owner.empty() ? "[none]" : old_owner.c_str()) 372 << (old_owner.empty() ? "[none]" : old_owner.c_str())
360 << ", new owner is " 373 << " New owner: "
361 << (new_owner.empty() ? "[none]" : new_owner.c_str()) << ")"; 374 << (new_owner.empty() ? "[none]" : new_owner.c_str());
362 suspend_is_pending_ = false; 375 suspend_is_pending_ = false;
363 pending_suspend_id_ = -1; 376 pending_suspend_id_ = -1;
364 suspending_from_dark_resume_ = false; 377 suspending_from_dark_resume_ = false;
365 if (!new_owner.empty()) { 378 if (!new_owner.empty()) {
366 VLOG(1) << "Sending initial state to power manager"; 379 POWER_LOG(EVENT) << "Sending initial state to power manager";
367 RegisterSuspendDelays(); 380 RegisterSuspendDelays();
368 SetIsProjecting(last_is_projecting_); 381 SetIsProjecting(last_is_projecting_);
369 FOR_EACH_OBSERVER(Observer, observers_, PowerManagerRestarted()); 382 FOR_EACH_OBSERVER(Observer, observers_, PowerManagerRestarted());
370 } 383 }
371 } 384 }
372 385
373 void BrightnessChangedReceived(dbus::Signal* signal) { 386 void BrightnessChangedReceived(dbus::Signal* signal) {
374 dbus::MessageReader reader(signal); 387 dbus::MessageReader reader(signal);
375 int32_t brightness_level = 0; 388 int32_t brightness_level = 0;
376 bool user_initiated = 0; 389 bool user_initiated = 0;
377 if (!(reader.PopInt32(&brightness_level) && 390 if (!(reader.PopInt32(&brightness_level) &&
378 reader.PopBool(&user_initiated))) { 391 reader.PopBool(&user_initiated))) {
379 LOG(ERROR) << "Brightness changed signal had incorrect parameters: " 392 POWER_LOG(ERROR) << "Brightness changed signal had incorrect parameters: "
380 << signal->ToString(); 393 << signal->ToString();
381 return; 394 return;
382 } 395 }
383 VLOG(1) << "Brightness changed to " << brightness_level 396 POWER_LOG(DEBUG) << "Brightness changed to " << brightness_level
384 << ": user initiated " << user_initiated; 397 << ": user initiated " << user_initiated;
385 FOR_EACH_OBSERVER(Observer, observers_, 398 FOR_EACH_OBSERVER(Observer, observers_,
386 BrightnessChanged(brightness_level, user_initiated)); 399 BrightnessChanged(brightness_level, user_initiated));
387 } 400 }
388 401
389 void PeripheralBatteryStatusReceived(dbus::Signal* signal) { 402 void PeripheralBatteryStatusReceived(dbus::Signal* signal) {
390 dbus::MessageReader reader(signal); 403 dbus::MessageReader reader(signal);
391 power_manager::PeripheralBatteryStatus protobuf_status; 404 power_manager::PeripheralBatteryStatus protobuf_status;
392 if (!reader.PopArrayOfBytesAsProto(&protobuf_status)) { 405 if (!reader.PopArrayOfBytesAsProto(&protobuf_status)) {
393 LOG(ERROR) << "Unable to decode protocol buffer from " 406 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
394 << power_manager::kPeripheralBatteryStatusSignal << " signal"; 407 << power_manager::kPeripheralBatteryStatusSignal
408 << " signal";
395 return; 409 return;
396 } 410 }
397 411
398 std::string path = protobuf_status.path(); 412 std::string path = protobuf_status.path();
399 std::string name = protobuf_status.name(); 413 std::string name = protobuf_status.name();
400 int level = protobuf_status.has_level() ? protobuf_status.level() : -1; 414 int level = protobuf_status.has_level() ? protobuf_status.level() : -1;
401 415
402 VLOG(1) << "Device battery status received " << level 416 POWER_LOG(DEBUG) << "Device battery status received " << level << " for "
403 << " for " << name << " at " << path; 417 << name << " at " << path;
404 418
405 FOR_EACH_OBSERVER(Observer, observers_, 419 FOR_EACH_OBSERVER(Observer, observers_,
406 PeripheralBatteryStatusReceived(path, name, level)); 420 PeripheralBatteryStatusReceived(path, name, level));
407 } 421 }
408 422
409 void PowerSupplyPollReceived(dbus::Signal* signal) { 423 void PowerSupplyPollReceived(dbus::Signal* signal) {
410 VLOG(1) << "Received power supply poll signal."; 424 POWER_LOG(DEBUG) << "Received power supply poll signal.";
411 dbus::MessageReader reader(signal); 425 dbus::MessageReader reader(signal);
412 power_manager::PowerSupplyProperties protobuf; 426 power_manager::PowerSupplyProperties protobuf;
413 if (reader.PopArrayOfBytesAsProto(&protobuf)) { 427 if (reader.PopArrayOfBytesAsProto(&protobuf)) {
414 HandlePowerSupplyProperties(protobuf); 428 HandlePowerSupplyProperties(protobuf);
415 } else { 429 } else {
416 LOG(ERROR) << "Unable to decode " 430 POWER_LOG(ERROR) << "Unable to decode "
417 << power_manager::kPowerSupplyPollSignal << "signal"; 431 << power_manager::kPowerSupplyPollSignal << " signal";
418 } 432 }
419 } 433 }
420 434
421 void OnGetPowerSupplyPropertiesMethod(dbus::Response* response) { 435 void OnGetPowerSupplyPropertiesMethod(dbus::Response* response) {
422 if (!response) { 436 if (!response) {
423 LOG(ERROR) << "Error calling " 437 POWER_LOG(ERROR) << "Error calling "
424 << power_manager::kGetPowerSupplyPropertiesMethod; 438 << power_manager::kGetPowerSupplyPropertiesMethod;
425 return; 439 return;
426 } 440 }
427 441
428 dbus::MessageReader reader(response); 442 dbus::MessageReader reader(response);
429 power_manager::PowerSupplyProperties protobuf; 443 power_manager::PowerSupplyProperties protobuf;
430 if (reader.PopArrayOfBytesAsProto(&protobuf)) { 444 if (reader.PopArrayOfBytesAsProto(&protobuf)) {
431 HandlePowerSupplyProperties(protobuf); 445 HandlePowerSupplyProperties(protobuf);
432 } else { 446 } else {
433 LOG(ERROR) << "Unable to decode " 447 POWER_LOG(ERROR) << "Unable to decode "
434 << power_manager::kGetPowerSupplyPropertiesMethod 448 << power_manager::kGetPowerSupplyPropertiesMethod
435 << " response"; 449 << " response";
436 } 450 }
437 } 451 }
438 452
439 void OnGetScreenBrightnessPercent( 453 void OnGetScreenBrightnessPercent(
440 const GetScreenBrightnessPercentCallback& callback, 454 const GetScreenBrightnessPercentCallback& callback,
441 dbus::Response* response) { 455 dbus::Response* response) {
442 if (!response) { 456 if (!response) {
443 LOG(ERROR) << "Error calling " 457 POWER_LOG(ERROR) << "Error calling "
444 << power_manager::kGetScreenBrightnessPercentMethod; 458 << power_manager::kGetScreenBrightnessPercentMethod;
445 return; 459 return;
446 } 460 }
447 dbus::MessageReader reader(response); 461 dbus::MessageReader reader(response);
448 double percent = 0.0; 462 double percent = 0.0;
449 if (!reader.PopDouble(&percent)) 463 if (!reader.PopDouble(&percent))
450 LOG(ERROR) << "Error reading response from powerd: " 464 POWER_LOG(ERROR) << "Error reading response from powerd: "
451 << response->ToString(); 465 << response->ToString();
452 callback.Run(percent); 466 callback.Run(percent);
453 } 467 }
454 468
455 void HandlePowerSupplyProperties( 469 void HandlePowerSupplyProperties(
456 const power_manager::PowerSupplyProperties& proto) { 470 const power_manager::PowerSupplyProperties& proto) {
457 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(proto)); 471 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(proto));
458 const bool on_battery = proto.external_power() == 472 const bool on_battery = proto.external_power() ==
459 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED; 473 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED;
460 base::PowerMonitorDeviceSource::SetPowerSource(on_battery); 474 base::PowerMonitorDeviceSource::SetPowerSource(on_battery);
461 } 475 }
462 476
463 void HandleRegisterSuspendDelayReply(bool dark_suspend, 477 void HandleRegisterSuspendDelayReply(bool dark_suspend,
464 const std::string& method_name, 478 const std::string& method_name,
465 dbus::Response* response) { 479 dbus::Response* response) {
466 if (!response) { 480 if (!response) {
467 LOG(ERROR) << "Error calling " << method_name; 481 POWER_LOG(ERROR) << "Error calling " << method_name;
468 return; 482 return;
469 } 483 }
470 484
471 dbus::MessageReader reader(response); 485 dbus::MessageReader reader(response);
472 power_manager::RegisterSuspendDelayReply protobuf; 486 power_manager::RegisterSuspendDelayReply protobuf;
473 if (!reader.PopArrayOfBytesAsProto(&protobuf)) { 487 if (!reader.PopArrayOfBytesAsProto(&protobuf)) {
474 LOG(ERROR) << "Unable to parse reply from " << method_name; 488 POWER_LOG(ERROR) << "Unable to parse reply from " << method_name;
475 return; 489 return;
476 } 490 }
477 491
478 if (dark_suspend) { 492 if (dark_suspend) {
479 dark_suspend_delay_id_ = protobuf.delay_id(); 493 dark_suspend_delay_id_ = protobuf.delay_id();
480 has_dark_suspend_delay_id_ = true; 494 has_dark_suspend_delay_id_ = true;
481 VLOG(1) << "Registered dark suspend delay " << dark_suspend_delay_id_; 495 POWER_LOG(EVENT) << "Registered dark suspend delay "
496 << dark_suspend_delay_id_;
482 } else { 497 } else {
483 suspend_delay_id_ = protobuf.delay_id(); 498 suspend_delay_id_ = protobuf.delay_id();
484 has_suspend_delay_id_ = true; 499 has_suspend_delay_id_ = true;
485 VLOG(1) << "Registered suspend delay " << suspend_delay_id_; 500 POWER_LOG(EVENT) << "Registered suspend delay " << suspend_delay_id_;
486 } 501 }
487 } 502 }
488 503
489 void HandleSuspendImminent(bool in_dark_resume, dbus::Signal* signal) { 504 void HandleSuspendImminent(bool in_dark_resume, dbus::Signal* signal) {
490 std::string signal_name = signal->GetMember(); 505 std::string signal_name = signal->GetMember();
491 if ((in_dark_resume && !has_dark_suspend_delay_id_) || 506 if ((in_dark_resume && !has_dark_suspend_delay_id_) ||
492 (!in_dark_resume && !has_suspend_delay_id_)) { 507 (!in_dark_resume && !has_suspend_delay_id_)) {
493 LOG(ERROR) << "Received unrequested " << signal_name << " signal"; 508 POWER_LOG(ERROR) << "Received unrequested " << signal_name << " signal";
494 return; 509 return;
495 } 510 }
496 511
497 dbus::MessageReader reader(signal); 512 dbus::MessageReader reader(signal);
498 power_manager::SuspendImminent proto; 513 power_manager::SuspendImminent proto;
499 if (!reader.PopArrayOfBytesAsProto(&proto)) { 514 if (!reader.PopArrayOfBytesAsProto(&proto)) {
500 LOG(ERROR) << "Unable to decode protocol buffer from " << signal_name 515 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
501 << " signal"; 516 << signal_name << " signal";
502 return; 517 return;
503 } 518 }
504 519
505 VLOG(1) << "Got " << signal_name << " signal announcing suspend attempt " 520 POWER_LOG(EVENT) << "Got " << signal_name
506 << proto.suspend_id(); 521 << " signal announcing suspend attempt "
522 << proto.suspend_id();
507 523
508 // If a previous suspend is pending from the same state we are currently in 524 // If a previous suspend is pending from the same state we are currently in
509 // (fully powered on or in dark resume), then something's gone a little 525 // (fully powered on or in dark resume), then something's gone a little
510 // wonky. 526 // wonky.
511 if (suspend_is_pending_ && 527 if (suspend_is_pending_ && suspending_from_dark_resume_ == in_dark_resume) {
512 suspending_from_dark_resume_ == in_dark_resume) { 528 POWER_LOG(ERROR) << "Got " << signal_name
513 LOG(WARNING) << "Got " << signal_name << " signal about pending suspend " 529 << " signal about pending suspend attempt "
514 << "attempt " << proto.suspend_id() << " while still " 530 << proto.suspend_id()
515 << "waiting on attempt " << pending_suspend_id_; 531 << " while still waiting on attempt "
532 << pending_suspend_id_;
516 } 533 }
517 534
518 pending_suspend_id_ = proto.suspend_id(); 535 pending_suspend_id_ = proto.suspend_id();
519 suspend_is_pending_ = true; 536 suspend_is_pending_ = true;
520 suspending_from_dark_resume_ = in_dark_resume; 537 suspending_from_dark_resume_ = in_dark_resume;
521 num_pending_suspend_readiness_callbacks_ = 0; 538 num_pending_suspend_readiness_callbacks_ = 0;
522 if (suspending_from_dark_resume_) 539 if (suspending_from_dark_resume_)
523 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent()); 540 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent());
524 else 541 else
525 FOR_EACH_OBSERVER(Observer, observers_, SuspendImminent()); 542 FOR_EACH_OBSERVER(Observer, observers_, SuspendImminent());
526 base::PowerMonitorDeviceSource::HandleSystemSuspending(); 543 base::PowerMonitorDeviceSource::HandleSystemSuspending();
527 MaybeReportSuspendReadiness(); 544 MaybeReportSuspendReadiness();
528 } 545 }
529 546
530 void SuspendDoneReceived(dbus::Signal* signal) { 547 void SuspendDoneReceived(dbus::Signal* signal) {
531 dbus::MessageReader reader(signal); 548 dbus::MessageReader reader(signal);
532 power_manager::SuspendDone proto; 549 power_manager::SuspendDone proto;
533 if (!reader.PopArrayOfBytesAsProto(&proto)) { 550 if (!reader.PopArrayOfBytesAsProto(&proto)) {
534 LOG(ERROR) << "Unable to decode protocol buffer from " 551 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
535 << power_manager::kSuspendDoneSignal << " signal"; 552 << power_manager::kSuspendDoneSignal << " signal";
536 return; 553 return;
537 } 554 }
538 555
539 const base::TimeDelta duration = 556 const base::TimeDelta duration =
540 base::TimeDelta::FromInternalValue(proto.suspend_duration()); 557 base::TimeDelta::FromInternalValue(proto.suspend_duration());
541 VLOG(1) << "Got " << power_manager::kSuspendDoneSignal << " signal:" 558 POWER_LOG(EVENT) << "Got " << power_manager::kSuspendDoneSignal
542 << " suspend_id=" << proto.suspend_id() 559 << " signal:"
543 << " duration=" << duration.InSeconds() << " sec"; 560 << " suspend_id=" << proto.suspend_id()
561 << " duration=" << duration.InSeconds() << " sec";
544 562
545 if (render_process_manager_delegate_) 563 if (render_process_manager_delegate_)
546 render_process_manager_delegate_->SuspendDone(); 564 render_process_manager_delegate_->SuspendDone();
547 565
548 FOR_EACH_OBSERVER( 566 FOR_EACH_OBSERVER(
549 PowerManagerClient::Observer, observers_, SuspendDone(duration)); 567 PowerManagerClient::Observer, observers_, SuspendDone(duration));
550 base::PowerMonitorDeviceSource::HandleSystemResumed(); 568 base::PowerMonitorDeviceSource::HandleSystemResumed();
551 } 569 }
552 570
553 void IdleActionImminentReceived(dbus::Signal* signal) { 571 void IdleActionImminentReceived(dbus::Signal* signal) {
554 dbus::MessageReader reader(signal); 572 dbus::MessageReader reader(signal);
555 power_manager::IdleActionImminent proto; 573 power_manager::IdleActionImminent proto;
556 if (!reader.PopArrayOfBytesAsProto(&proto)) { 574 if (!reader.PopArrayOfBytesAsProto(&proto)) {
557 LOG(ERROR) << "Unable to decode protocol buffer from " 575 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
558 << power_manager::kIdleActionImminentSignal << " signal"; 576 << power_manager::kIdleActionImminentSignal << " signal";
559 return; 577 return;
560 } 578 }
561 FOR_EACH_OBSERVER(Observer, observers_, 579 FOR_EACH_OBSERVER(Observer, observers_,
562 IdleActionImminent(base::TimeDelta::FromInternalValue( 580 IdleActionImminent(base::TimeDelta::FromInternalValue(
563 proto.time_until_idle_action()))); 581 proto.time_until_idle_action())));
564 } 582 }
565 583
566 void IdleActionDeferredReceived(dbus::Signal* signal) { 584 void IdleActionDeferredReceived(dbus::Signal* signal) {
567 FOR_EACH_OBSERVER(Observer, observers_, IdleActionDeferred()); 585 FOR_EACH_OBSERVER(Observer, observers_, IdleActionDeferred());
568 } 586 }
569 587
570 void InputEventReceived(dbus::Signal* signal) { 588 void InputEventReceived(dbus::Signal* signal) {
571 dbus::MessageReader reader(signal); 589 dbus::MessageReader reader(signal);
572 power_manager::InputEvent proto; 590 power_manager::InputEvent proto;
573 if (!reader.PopArrayOfBytesAsProto(&proto)) { 591 if (!reader.PopArrayOfBytesAsProto(&proto)) {
574 LOG(ERROR) << "Unable to decode protocol buffer from " 592 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
575 << power_manager::kInputEventSignal << " signal"; 593 << power_manager::kInputEventSignal << " signal";
576 return; 594 return;
577 } 595 }
578 596
579 base::TimeTicks timestamp = 597 base::TimeTicks timestamp =
580 base::TimeTicks::FromInternalValue(proto.timestamp()); 598 base::TimeTicks::FromInternalValue(proto.timestamp());
581 VLOG(1) << "Got " << power_manager::kInputEventSignal << " signal:" 599 POWER_LOG(EVENT) << "Got " << power_manager::kInputEventSignal << " signal:"
Daniel Erat 2014/12/03 15:07:20 USER might make more sense here since this corresp
stevenjb 2014/12/05 20:14:06 Done.
582 << " type=" << proto.type() << " timestamp=" << proto.timestamp(); 600 << " type=" << proto.type()
601 << " timestamp=" << proto.timestamp();
583 switch (proto.type()) { 602 switch (proto.type()) {
584 case power_manager::InputEvent_Type_POWER_BUTTON_DOWN: 603 case power_manager::InputEvent_Type_POWER_BUTTON_DOWN:
585 case power_manager::InputEvent_Type_POWER_BUTTON_UP: { 604 case power_manager::InputEvent_Type_POWER_BUTTON_UP: {
586 const bool down = 605 const bool down =
587 (proto.type() == power_manager::InputEvent_Type_POWER_BUTTON_DOWN); 606 (proto.type() == power_manager::InputEvent_Type_POWER_BUTTON_DOWN);
588 FOR_EACH_OBSERVER(PowerManagerClient::Observer, observers_, 607 FOR_EACH_OBSERVER(PowerManagerClient::Observer, observers_,
589 PowerButtonEventReceived(down, timestamp)); 608 PowerButtonEventReceived(down, timestamp));
590 609
591 // Tell powerd that Chrome has handled power button presses. 610 // Tell powerd that Chrome has handled power button presses.
592 if (down) { 611 if (down) {
(...skipping 22 matching lines...) Expand all
615 634
616 void RegisterSuspendDelayImpl( 635 void RegisterSuspendDelayImpl(
617 const std::string& method_name, 636 const std::string& method_name,
618 const power_manager::RegisterSuspendDelayRequest& protobuf_request, 637 const power_manager::RegisterSuspendDelayRequest& protobuf_request,
619 dbus::ObjectProxy::ResponseCallback callback) { 638 dbus::ObjectProxy::ResponseCallback callback) {
620 dbus::MethodCall method_call( 639 dbus::MethodCall method_call(
621 power_manager::kPowerManagerInterface, method_name); 640 power_manager::kPowerManagerInterface, method_name);
622 dbus::MessageWriter writer(&method_call); 641 dbus::MessageWriter writer(&method_call);
623 642
624 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) { 643 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) {
625 LOG(ERROR) << "Error constructing message for " << method_name; 644 POWER_LOG(ERROR) << "Error constructing message for " << method_name;
626 return; 645 return;
627 } 646 }
628 647
629 power_manager_proxy_->CallMethod( 648 power_manager_proxy_->CallMethod(
630 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, callback); 649 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, callback);
631 } 650 }
632 651
633 // Registers suspend delays with the power manager. This is usually only 652 // Registers suspend delays with the power manager. This is usually only
634 // called at startup, but if the power manager restarts, we need to create new 653 // called at startup, but if the power manager restarts, we need to create new
635 // delays. 654 // delays.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 delay_id = suspend_delay_id_; 709 delay_id = suspend_delay_id_;
691 } 710 }
692 711
693 if (render_process_manager_delegate_ && !suspending_from_dark_resume_) 712 if (render_process_manager_delegate_ && !suspending_from_dark_resume_)
694 render_process_manager_delegate_->SuspendImminent(); 713 render_process_manager_delegate_->SuspendImminent();
695 714
696 dbus::MethodCall method_call( 715 dbus::MethodCall method_call(
697 power_manager::kPowerManagerInterface, method_name); 716 power_manager::kPowerManagerInterface, method_name);
698 dbus::MessageWriter writer(&method_call); 717 dbus::MessageWriter writer(&method_call);
699 718
700 VLOG(1) << "Announcing readiness of suspend delay " << delay_id 719 POWER_LOG(EVENT) << "Announcing readiness of suspend delay " << delay_id
701 << " for suspend attempt " << pending_suspend_id_; 720 << " for suspend attempt " << pending_suspend_id_;
702 power_manager::SuspendReadinessInfo protobuf_request; 721 power_manager::SuspendReadinessInfo protobuf_request;
703 protobuf_request.set_delay_id(delay_id); 722 protobuf_request.set_delay_id(delay_id);
704 protobuf_request.set_suspend_id(pending_suspend_id_); 723 protobuf_request.set_suspend_id(pending_suspend_id_);
705 724
706 pending_suspend_id_ = -1; 725 pending_suspend_id_ = -1;
707 suspend_is_pending_ = false; 726 suspend_is_pending_ = false;
708 727
709 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) { 728 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) {
710 LOG(ERROR) << "Error constructing message for " << method_name; 729 POWER_LOG(ERROR) << "Error constructing message for " << method_name;
711 return; 730 return;
712 } 731 }
713 power_manager_proxy_->CallMethod( 732 power_manager_proxy_->CallMethod(
714 &method_call, 733 &method_call,
715 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 734 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
716 dbus::ObjectProxy::EmptyResponseCallback()); 735 dbus::ObjectProxy::EmptyResponseCallback());
717 } 736 }
718 737
719 // Origin thread (i.e. the UI thread in production). 738 // Origin thread (i.e. the UI thread in production).
720 base::PlatformThreadId origin_thread_id_; 739 base::PlatformThreadId origin_thread_id_;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 819
801 virtual bool HasObserver(const Observer* observer) const override { 820 virtual bool HasObserver(const Observer* observer) const override {
802 return observers_.HasObserver(observer); 821 return observers_.HasObserver(observer);
803 } 822 }
804 823
805 virtual void SetRenderProcessManagerDelegate( 824 virtual void SetRenderProcessManagerDelegate(
806 base::WeakPtr<RenderProcessManagerDelegate> delegate) override { 825 base::WeakPtr<RenderProcessManagerDelegate> delegate) override {
807 } 826 }
808 827
809 virtual void DecreaseScreenBrightness(bool allow_off) override { 828 virtual void DecreaseScreenBrightness(bool allow_off) override {
810 VLOG(1) << "Requested to descrease screen brightness"; 829 POWER_LOG(USER) << "Requested to descrease screen brightness";
811 SetBrightness(brightness_ - 5.0, true); 830 SetBrightness(brightness_ - 5.0, true);
812 } 831 }
813 832
814 virtual void IncreaseScreenBrightness() override { 833 virtual void IncreaseScreenBrightness() override {
815 VLOG(1) << "Requested to increase screen brightness"; 834 POWER_LOG(USER) << "Requested to increase screen brightness";
816 SetBrightness(brightness_ + 5.0, true); 835 SetBrightness(brightness_ + 5.0, true);
817 } 836 }
818 837
819 virtual void SetScreenBrightnessPercent(double percent, 838 virtual void SetScreenBrightnessPercent(double percent,
820 bool gradual) override { 839 bool gradual) override {
821 VLOG(1) << "Requested to set screen brightness to " << percent << "% " 840 POWER_LOG(USER) << "Requested to set screen brightness to " << percent
822 << (gradual ? "gradually" : "instantaneously"); 841 << "% " << (gradual ? "gradually" : "instantaneously");
823 SetBrightness(percent, false); 842 SetBrightness(percent, false);
824 } 843 }
825 844
826 virtual void GetScreenBrightnessPercent( 845 virtual void GetScreenBrightnessPercent(
827 const GetScreenBrightnessPercentCallback& callback) override { 846 const GetScreenBrightnessPercentCallback& callback) override {
847 POWER_LOG(USER) << "Requested to get screen brightness";
828 callback.Run(brightness_); 848 callback.Run(brightness_);
829 } 849 }
830 850
831 virtual void DecreaseKeyboardBrightness() override { 851 virtual void DecreaseKeyboardBrightness() override {
832 VLOG(1) << "Requested to descrease keyboard brightness"; 852 POWER_LOG(USER) << "Requested to descrease keyboard brightness";
833 } 853 }
834 854
835 virtual void IncreaseKeyboardBrightness() override { 855 virtual void IncreaseKeyboardBrightness() override {
836 VLOG(1) << "Requested to increase keyboard brightness"; 856 POWER_LOG(USER) << "Requested to increase keyboard brightness";
837 } 857 }
838 858
839 virtual void RequestStatusUpdate() override { 859 virtual void RequestStatusUpdate() override {
840 base::MessageLoop::current()->PostTask(FROM_HERE, 860 POWER_LOG(USER) << "Requested status update";
841 base::Bind(&PowerManagerClientStubImpl::UpdateStatus, 861 base::MessageLoop::current()->PostTask(
842 weak_ptr_factory_.GetWeakPtr())); 862 FROM_HERE, base::Bind(&PowerManagerClientStubImpl::UpdateStatus,
863 weak_ptr_factory_.GetWeakPtr()));
843 } 864 }
844 865
845 virtual void RequestSuspend() override {} 866 virtual void RequestSuspend() override {}
846 virtual void RequestRestart() override {} 867 virtual void RequestRestart() override {}
847 virtual void RequestShutdown() override {} 868 virtual void RequestShutdown() override {}
848 869
849 virtual void NotifyUserActivity( 870 virtual void NotifyUserActivity(
850 power_manager::UserActivityType type) override {} 871 power_manager::UserActivityType type) override {}
851 virtual void NotifyVideoActivity(bool is_fullscreen) override {} 872 virtual void NotifyVideoActivity(bool is_fullscreen) override {}
852 virtual void SetPolicy( 873 virtual void SetPolicy(
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 // static 1013 // static
993 PowerManagerClient* PowerManagerClient::Create( 1014 PowerManagerClient* PowerManagerClient::Create(
994 DBusClientImplementationType type) { 1015 DBusClientImplementationType type) {
995 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 1016 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
996 return new PowerManagerClientImpl(); 1017 return new PowerManagerClientImpl();
997 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 1018 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
998 return new PowerManagerClientStubImpl(); 1019 return new PowerManagerClientStubImpl();
999 } 1020 }
1000 1021
1001 } // namespace chromeos 1022 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/dbus_thread_manager.cc ('k') | chromeos/device_event_log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698