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

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: Rebase + 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 power_manager::kPowerManagerInterface, 140 power_manager::kPowerManagerInterface,
140 power_manager::kGetScreenBrightnessPercentMethod); 141 power_manager::kGetScreenBrightnessPercentMethod);
141 power_manager_proxy_->CallMethod( 142 power_manager_proxy_->CallMethod(
142 &method_call, 143 &method_call,
143 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 144 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
144 base::Bind(&PowerManagerClientImpl::OnGetScreenBrightnessPercent, 145 base::Bind(&PowerManagerClientImpl::OnGetScreenBrightnessPercent,
145 weak_ptr_factory_.GetWeakPtr(), callback)); 146 weak_ptr_factory_.GetWeakPtr(), callback));
146 } 147 }
147 148
148 virtual void RequestStatusUpdate() override { 149 virtual void RequestStatusUpdate() override {
150 POWER_LOG(USER) << "RequestStatusUpdate";
149 dbus::MethodCall method_call( 151 dbus::MethodCall method_call(
150 power_manager::kPowerManagerInterface, 152 power_manager::kPowerManagerInterface,
151 power_manager::kGetPowerSupplyPropertiesMethod); 153 power_manager::kGetPowerSupplyPropertiesMethod);
152 power_manager_proxy_->CallMethod( 154 power_manager_proxy_->CallMethod(
153 &method_call, 155 &method_call,
154 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 156 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
155 base::Bind(&PowerManagerClientImpl::OnGetPowerSupplyPropertiesMethod, 157 base::Bind(&PowerManagerClientImpl::OnGetPowerSupplyPropertiesMethod,
156 weak_ptr_factory_.GetWeakPtr())); 158 weak_ptr_factory_.GetWeakPtr()));
157 } 159 }
158 160
159 virtual void RequestSuspend() override { 161 virtual void RequestSuspend() override {
162 POWER_LOG(USER) << "RequestSuspend";
160 SimpleMethodCallToPowerManager(power_manager::kRequestSuspendMethod); 163 SimpleMethodCallToPowerManager(power_manager::kRequestSuspendMethod);
161 } 164 }
162 165
163 virtual void RequestRestart() override { 166 virtual void RequestRestart() override {
167 POWER_LOG(USER) << "RequestRestart";
164 SimpleMethodCallToPowerManager(power_manager::kRequestRestartMethod); 168 SimpleMethodCallToPowerManager(power_manager::kRequestRestartMethod);
165 } 169 }
166 170
167 virtual void RequestShutdown() override { 171 virtual void RequestShutdown() override {
172 POWER_LOG(USER) << "RequestShutdown";
168 SimpleMethodCallToPowerManager(power_manager::kRequestShutdownMethod); 173 SimpleMethodCallToPowerManager(power_manager::kRequestShutdownMethod);
169 } 174 }
170 175
171 virtual void NotifyUserActivity( 176 virtual void NotifyUserActivity(
172 power_manager::UserActivityType type) override { 177 power_manager::UserActivityType type) override {
173 dbus::MethodCall method_call( 178 dbus::MethodCall method_call(
174 power_manager::kPowerManagerInterface, 179 power_manager::kPowerManagerInterface,
175 power_manager::kHandleUserActivityMethod); 180 power_manager::kHandleUserActivityMethod);
176 dbus::MessageWriter writer(&method_call); 181 dbus::MessageWriter writer(&method_call);
177 writer.AppendInt32(type); 182 writer.AppendInt32(type);
(...skipping 12 matching lines...) Expand all
190 writer.AppendBool(is_fullscreen); 195 writer.AppendBool(is_fullscreen);
191 196
192 power_manager_proxy_->CallMethod( 197 power_manager_proxy_->CallMethod(
193 &method_call, 198 &method_call,
194 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 199 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
195 dbus::ObjectProxy::EmptyResponseCallback()); 200 dbus::ObjectProxy::EmptyResponseCallback());
196 } 201 }
197 202
198 virtual void SetPolicy( 203 virtual void SetPolicy(
199 const power_manager::PowerManagementPolicy& policy) override { 204 const power_manager::PowerManagementPolicy& policy) override {
205 POWER_LOG(USER) << "SetPolicy";
200 dbus::MethodCall method_call( 206 dbus::MethodCall method_call(
201 power_manager::kPowerManagerInterface, 207 power_manager::kPowerManagerInterface,
202 power_manager::kSetPolicyMethod); 208 power_manager::kSetPolicyMethod);
203 dbus::MessageWriter writer(&method_call); 209 dbus::MessageWriter writer(&method_call);
204 if (!writer.AppendProtoAsArrayOfBytes(policy)) { 210 if (!writer.AppendProtoAsArrayOfBytes(policy)) {
205 LOG(ERROR) << "Error calling " << power_manager::kSetPolicyMethod; 211 POWER_LOG(ERROR) << "Error calling " << power_manager::kSetPolicyMethod;
206 return; 212 return;
207 } 213 }
208 power_manager_proxy_->CallMethod( 214 power_manager_proxy_->CallMethod(
209 &method_call, 215 &method_call,
210 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 216 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
211 dbus::ObjectProxy::EmptyResponseCallback()); 217 dbus::ObjectProxy::EmptyResponseCallback());
212 } 218 }
213 219
214 virtual void SetIsProjecting(bool is_projecting) override { 220 virtual void SetIsProjecting(bool is_projecting) override {
221 POWER_LOG(USER) << "SetIsProjecting";
215 dbus::MethodCall method_call( 222 dbus::MethodCall method_call(
216 power_manager::kPowerManagerInterface, 223 power_manager::kPowerManagerInterface,
217 power_manager::kSetIsProjectingMethod); 224 power_manager::kSetIsProjectingMethod);
218 dbus::MessageWriter writer(&method_call); 225 dbus::MessageWriter writer(&method_call);
219 writer.AppendBool(is_projecting); 226 writer.AppendBool(is_projecting);
220 power_manager_proxy_->CallMethod( 227 power_manager_proxy_->CallMethod(
221 &method_call, 228 &method_call,
222 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 229 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
223 dbus::ObjectProxy::EmptyResponseCallback()); 230 dbus::ObjectProxy::EmptyResponseCallback());
224 last_is_projecting_ = is_projecting; 231 last_is_projecting_ = is_projecting;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 private: 339 private:
333 // Returns true if the current thread is the origin thread. 340 // Returns true if the current thread is the origin thread.
334 bool OnOriginThread() { 341 bool OnOriginThread() {
335 return base::PlatformThread::CurrentId() == origin_thread_id_; 342 return base::PlatformThread::CurrentId() == origin_thread_id_;
336 } 343 }
337 344
338 // Called when a dbus signal is initially connected. 345 // Called when a dbus signal is initially connected.
339 void SignalConnected(const std::string& interface_name, 346 void SignalConnected(const std::string& interface_name,
340 const std::string& signal_name, 347 const std::string& signal_name,
341 bool success) { 348 bool success) {
342 LOG_IF(WARNING, !success) << "Failed to connect to signal " 349 if (!success)
343 << signal_name << "."; 350 POWER_LOG(ERROR) << "Failed to connect to signal " << signal_name << ".";
344 } 351 }
345 352
346 // Makes a method call to power manager with no arguments and no response. 353 // Makes a method call to power manager with no arguments and no response.
347 void SimpleMethodCallToPowerManager(const std::string& method_name) { 354 void SimpleMethodCallToPowerManager(const std::string& method_name) {
348 dbus::MethodCall method_call(power_manager::kPowerManagerInterface, 355 dbus::MethodCall method_call(power_manager::kPowerManagerInterface,
349 method_name); 356 method_name);
350 power_manager_proxy_->CallMethod( 357 power_manager_proxy_->CallMethod(
351 &method_call, 358 &method_call,
352 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 359 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
353 dbus::ObjectProxy::EmptyResponseCallback()); 360 dbus::ObjectProxy::EmptyResponseCallback());
354 } 361 }
355 362
356 void NameOwnerChangedReceived(const std::string& old_owner, 363 void NameOwnerChangedReceived(const std::string& old_owner,
357 const std::string& new_owner) { 364 const std::string& new_owner) {
358 VLOG(1) << "Power manager restarted (old owner was " 365 POWER_LOG(EVENT) << "Power manager restarted. Old owner: "
359 << (old_owner.empty() ? "[none]" : old_owner.c_str()) 366 << (old_owner.empty() ? "[none]" : old_owner.c_str())
360 << ", new owner is " 367 << " New owner: "
361 << (new_owner.empty() ? "[none]" : new_owner.c_str()) << ")"; 368 << (new_owner.empty() ? "[none]" : new_owner.c_str());
362 suspend_is_pending_ = false; 369 suspend_is_pending_ = false;
363 pending_suspend_id_ = -1; 370 pending_suspend_id_ = -1;
364 suspending_from_dark_resume_ = false; 371 suspending_from_dark_resume_ = false;
365 if (!new_owner.empty()) { 372 if (!new_owner.empty()) {
366 VLOG(1) << "Sending initial state to power manager"; 373 POWER_LOG(EVENT) << "Sending initial state to power manager";
367 RegisterSuspendDelays(); 374 RegisterSuspendDelays();
368 SetIsProjecting(last_is_projecting_); 375 SetIsProjecting(last_is_projecting_);
369 FOR_EACH_OBSERVER(Observer, observers_, PowerManagerRestarted()); 376 FOR_EACH_OBSERVER(Observer, observers_, PowerManagerRestarted());
370 } 377 }
371 } 378 }
372 379
373 void BrightnessChangedReceived(dbus::Signal* signal) { 380 void BrightnessChangedReceived(dbus::Signal* signal) {
374 dbus::MessageReader reader(signal); 381 dbus::MessageReader reader(signal);
375 int32_t brightness_level = 0; 382 int32_t brightness_level = 0;
376 bool user_initiated = 0; 383 bool user_initiated = 0;
377 if (!(reader.PopInt32(&brightness_level) && 384 if (!(reader.PopInt32(&brightness_level) &&
378 reader.PopBool(&user_initiated))) { 385 reader.PopBool(&user_initiated))) {
379 LOG(ERROR) << "Brightness changed signal had incorrect parameters: " 386 POWER_LOG(ERROR) << "Brightness changed signal had incorrect parameters: "
380 << signal->ToString(); 387 << signal->ToString();
381 return; 388 return;
382 } 389 }
383 VLOG(1) << "Brightness changed to " << brightness_level 390 POWER_LOG(DEBUG) << "Brightness changed to " << brightness_level
384 << ": user initiated " << user_initiated; 391 << ": user initiated " << user_initiated;
385 FOR_EACH_OBSERVER(Observer, observers_, 392 FOR_EACH_OBSERVER(Observer, observers_,
386 BrightnessChanged(brightness_level, user_initiated)); 393 BrightnessChanged(brightness_level, user_initiated));
387 } 394 }
388 395
389 void PeripheralBatteryStatusReceived(dbus::Signal* signal) { 396 void PeripheralBatteryStatusReceived(dbus::Signal* signal) {
390 dbus::MessageReader reader(signal); 397 dbus::MessageReader reader(signal);
391 power_manager::PeripheralBatteryStatus protobuf_status; 398 power_manager::PeripheralBatteryStatus protobuf_status;
392 if (!reader.PopArrayOfBytesAsProto(&protobuf_status)) { 399 if (!reader.PopArrayOfBytesAsProto(&protobuf_status)) {
393 LOG(ERROR) << "Unable to decode protocol buffer from " 400 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
394 << power_manager::kPeripheralBatteryStatusSignal << " signal"; 401 << power_manager::kPeripheralBatteryStatusSignal
402 << " signal";
395 return; 403 return;
396 } 404 }
397 405
398 std::string path = protobuf_status.path(); 406 std::string path = protobuf_status.path();
399 std::string name = protobuf_status.name(); 407 std::string name = protobuf_status.name();
400 int level = protobuf_status.has_level() ? protobuf_status.level() : -1; 408 int level = protobuf_status.has_level() ? protobuf_status.level() : -1;
401 409
402 VLOG(1) << "Device battery status received " << level 410 POWER_LOG(DEBUG) << "Device battery status received " << level << " for "
403 << " for " << name << " at " << path; 411 << name << " at " << path;
404 412
405 FOR_EACH_OBSERVER(Observer, observers_, 413 FOR_EACH_OBSERVER(Observer, observers_,
406 PeripheralBatteryStatusReceived(path, name, level)); 414 PeripheralBatteryStatusReceived(path, name, level));
407 } 415 }
408 416
409 void PowerSupplyPollReceived(dbus::Signal* signal) { 417 void PowerSupplyPollReceived(dbus::Signal* signal) {
410 VLOG(1) << "Received power supply poll signal."; 418 POWER_LOG(DEBUG) << "Received power supply poll signal.";
411 dbus::MessageReader reader(signal); 419 dbus::MessageReader reader(signal);
412 power_manager::PowerSupplyProperties protobuf; 420 power_manager::PowerSupplyProperties protobuf;
413 if (reader.PopArrayOfBytesAsProto(&protobuf)) { 421 if (reader.PopArrayOfBytesAsProto(&protobuf)) {
414 HandlePowerSupplyProperties(protobuf); 422 HandlePowerSupplyProperties(protobuf);
415 } else { 423 } else {
416 LOG(ERROR) << "Unable to decode " 424 POWER_LOG(ERROR) << "Unable to decode "
417 << power_manager::kPowerSupplyPollSignal << "signal"; 425 << power_manager::kPowerSupplyPollSignal << " signal";
418 } 426 }
419 } 427 }
420 428
421 void OnGetPowerSupplyPropertiesMethod(dbus::Response* response) { 429 void OnGetPowerSupplyPropertiesMethod(dbus::Response* response) {
422 if (!response) { 430 if (!response) {
423 LOG(ERROR) << "Error calling " 431 POWER_LOG(ERROR) << "Error calling "
424 << power_manager::kGetPowerSupplyPropertiesMethod; 432 << power_manager::kGetPowerSupplyPropertiesMethod;
425 return; 433 return;
426 } 434 }
427 435
428 dbus::MessageReader reader(response); 436 dbus::MessageReader reader(response);
429 power_manager::PowerSupplyProperties protobuf; 437 power_manager::PowerSupplyProperties protobuf;
430 if (reader.PopArrayOfBytesAsProto(&protobuf)) { 438 if (reader.PopArrayOfBytesAsProto(&protobuf)) {
431 HandlePowerSupplyProperties(protobuf); 439 HandlePowerSupplyProperties(protobuf);
432 } else { 440 } else {
433 LOG(ERROR) << "Unable to decode " 441 POWER_LOG(ERROR) << "Unable to decode "
434 << power_manager::kGetPowerSupplyPropertiesMethod 442 << power_manager::kGetPowerSupplyPropertiesMethod
435 << " response"; 443 << " response";
436 } 444 }
437 } 445 }
438 446
439 void OnGetScreenBrightnessPercent( 447 void OnGetScreenBrightnessPercent(
440 const GetScreenBrightnessPercentCallback& callback, 448 const GetScreenBrightnessPercentCallback& callback,
441 dbus::Response* response) { 449 dbus::Response* response) {
442 if (!response) { 450 if (!response) {
443 LOG(ERROR) << "Error calling " 451 POWER_LOG(ERROR) << "Error calling "
444 << power_manager::kGetScreenBrightnessPercentMethod; 452 << power_manager::kGetScreenBrightnessPercentMethod;
445 return; 453 return;
446 } 454 }
447 dbus::MessageReader reader(response); 455 dbus::MessageReader reader(response);
448 double percent = 0.0; 456 double percent = 0.0;
449 if (!reader.PopDouble(&percent)) 457 if (!reader.PopDouble(&percent))
450 LOG(ERROR) << "Error reading response from powerd: " 458 POWER_LOG(ERROR) << "Error reading response from powerd: "
451 << response->ToString(); 459 << response->ToString();
452 callback.Run(percent); 460 callback.Run(percent);
453 } 461 }
454 462
455 void HandlePowerSupplyProperties( 463 void HandlePowerSupplyProperties(
456 const power_manager::PowerSupplyProperties& proto) { 464 const power_manager::PowerSupplyProperties& proto) {
457 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(proto)); 465 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(proto));
458 const bool on_battery = proto.external_power() == 466 const bool on_battery = proto.external_power() ==
459 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED; 467 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED;
460 base::PowerMonitorDeviceSource::SetPowerSource(on_battery); 468 base::PowerMonitorDeviceSource::SetPowerSource(on_battery);
461 } 469 }
462 470
463 void HandleRegisterSuspendDelayReply(bool dark_suspend, 471 void HandleRegisterSuspendDelayReply(bool dark_suspend,
464 const std::string& method_name, 472 const std::string& method_name,
465 dbus::Response* response) { 473 dbus::Response* response) {
466 if (!response) { 474 if (!response) {
467 LOG(ERROR) << "Error calling " << method_name; 475 POWER_LOG(ERROR) << "Error calling " << method_name;
468 return; 476 return;
469 } 477 }
470 478
471 dbus::MessageReader reader(response); 479 dbus::MessageReader reader(response);
472 power_manager::RegisterSuspendDelayReply protobuf; 480 power_manager::RegisterSuspendDelayReply protobuf;
473 if (!reader.PopArrayOfBytesAsProto(&protobuf)) { 481 if (!reader.PopArrayOfBytesAsProto(&protobuf)) {
474 LOG(ERROR) << "Unable to parse reply from " << method_name; 482 POWER_LOG(ERROR) << "Unable to parse reply from " << method_name;
475 return; 483 return;
476 } 484 }
477 485
478 if (dark_suspend) { 486 if (dark_suspend) {
479 dark_suspend_delay_id_ = protobuf.delay_id(); 487 dark_suspend_delay_id_ = protobuf.delay_id();
480 has_dark_suspend_delay_id_ = true; 488 has_dark_suspend_delay_id_ = true;
481 VLOG(1) << "Registered dark suspend delay " << dark_suspend_delay_id_; 489 POWER_LOG(EVENT) << "Registered dark suspend delay "
490 << dark_suspend_delay_id_;
482 } else { 491 } else {
483 suspend_delay_id_ = protobuf.delay_id(); 492 suspend_delay_id_ = protobuf.delay_id();
484 has_suspend_delay_id_ = true; 493 has_suspend_delay_id_ = true;
485 VLOG(1) << "Registered suspend delay " << suspend_delay_id_; 494 POWER_LOG(EVENT) << "Registered suspend delay " << suspend_delay_id_;
486 } 495 }
487 } 496 }
488 497
489 void HandleSuspendImminent(bool in_dark_resume, dbus::Signal* signal) { 498 void HandleSuspendImminent(bool in_dark_resume, dbus::Signal* signal) {
490 std::string signal_name = signal->GetMember(); 499 std::string signal_name = signal->GetMember();
491 if ((in_dark_resume && !has_dark_suspend_delay_id_) || 500 if ((in_dark_resume && !has_dark_suspend_delay_id_) ||
492 (!in_dark_resume && !has_suspend_delay_id_)) { 501 (!in_dark_resume && !has_suspend_delay_id_)) {
493 LOG(ERROR) << "Received unrequested " << signal_name << " signal"; 502 POWER_LOG(ERROR) << "Received unrequested " << signal_name << " signal";
494 return; 503 return;
495 } 504 }
496 505
497 dbus::MessageReader reader(signal); 506 dbus::MessageReader reader(signal);
498 power_manager::SuspendImminent proto; 507 power_manager::SuspendImminent proto;
499 if (!reader.PopArrayOfBytesAsProto(&proto)) { 508 if (!reader.PopArrayOfBytesAsProto(&proto)) {
500 LOG(ERROR) << "Unable to decode protocol buffer from " << signal_name 509 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
501 << " signal"; 510 << signal_name << " signal";
502 return; 511 return;
503 } 512 }
504 513
505 VLOG(1) << "Got " << signal_name << " signal announcing suspend attempt " 514 POWER_LOG(EVENT) << "Got " << signal_name
506 << proto.suspend_id(); 515 << " signal announcing suspend attempt "
516 << proto.suspend_id();
507 517
508 // If a previous suspend is pending from the same state we are currently in 518 // 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 519 // (fully powered on or in dark resume), then something's gone a little
510 // wonky. 520 // wonky.
511 if (suspend_is_pending_ && 521 if (suspend_is_pending_ && suspending_from_dark_resume_ == in_dark_resume) {
512 suspending_from_dark_resume_ == in_dark_resume) { 522 POWER_LOG(ERROR) << "Got " << signal_name
513 LOG(WARNING) << "Got " << signal_name << " signal about pending suspend " 523 << " signal about pending suspend attempt "
514 << "attempt " << proto.suspend_id() << " while still " 524 << proto.suspend_id()
515 << "waiting on attempt " << pending_suspend_id_; 525 << " while still waiting on attempt "
526 << pending_suspend_id_;
516 } 527 }
517 528
518 pending_suspend_id_ = proto.suspend_id(); 529 pending_suspend_id_ = proto.suspend_id();
519 suspend_is_pending_ = true; 530 suspend_is_pending_ = true;
520 suspending_from_dark_resume_ = in_dark_resume; 531 suspending_from_dark_resume_ = in_dark_resume;
521 num_pending_suspend_readiness_callbacks_ = 0; 532 num_pending_suspend_readiness_callbacks_ = 0;
522 if (suspending_from_dark_resume_) 533 if (suspending_from_dark_resume_)
523 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent()); 534 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent());
524 else 535 else
525 FOR_EACH_OBSERVER(Observer, observers_, SuspendImminent()); 536 FOR_EACH_OBSERVER(Observer, observers_, SuspendImminent());
526 base::PowerMonitorDeviceSource::HandleSystemSuspending(); 537 base::PowerMonitorDeviceSource::HandleSystemSuspending();
527 MaybeReportSuspendReadiness(); 538 MaybeReportSuspendReadiness();
528 } 539 }
529 540
530 void SuspendDoneReceived(dbus::Signal* signal) { 541 void SuspendDoneReceived(dbus::Signal* signal) {
531 dbus::MessageReader reader(signal); 542 dbus::MessageReader reader(signal);
532 power_manager::SuspendDone proto; 543 power_manager::SuspendDone proto;
533 if (!reader.PopArrayOfBytesAsProto(&proto)) { 544 if (!reader.PopArrayOfBytesAsProto(&proto)) {
534 LOG(ERROR) << "Unable to decode protocol buffer from " 545 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
535 << power_manager::kSuspendDoneSignal << " signal"; 546 << power_manager::kSuspendDoneSignal << " signal";
536 return; 547 return;
537 } 548 }
538 549
539 const base::TimeDelta duration = 550 const base::TimeDelta duration =
540 base::TimeDelta::FromInternalValue(proto.suspend_duration()); 551 base::TimeDelta::FromInternalValue(proto.suspend_duration());
541 VLOG(1) << "Got " << power_manager::kSuspendDoneSignal << " signal:" 552 POWER_LOG(EVENT) << "Got " << power_manager::kSuspendDoneSignal
542 << " suspend_id=" << proto.suspend_id() 553 << " signal:"
543 << " duration=" << duration.InSeconds() << " sec"; 554 << " suspend_id=" << proto.suspend_id()
555 << " duration=" << duration.InSeconds() << " sec";
544 556
545 if (render_process_manager_delegate_) 557 if (render_process_manager_delegate_)
546 render_process_manager_delegate_->SuspendDone(); 558 render_process_manager_delegate_->SuspendDone();
547 559
548 FOR_EACH_OBSERVER( 560 FOR_EACH_OBSERVER(
549 PowerManagerClient::Observer, observers_, SuspendDone(duration)); 561 PowerManagerClient::Observer, observers_, SuspendDone(duration));
550 base::PowerMonitorDeviceSource::HandleSystemResumed(); 562 base::PowerMonitorDeviceSource::HandleSystemResumed();
551 } 563 }
552 564
553 void IdleActionImminentReceived(dbus::Signal* signal) { 565 void IdleActionImminentReceived(dbus::Signal* signal) {
554 dbus::MessageReader reader(signal); 566 dbus::MessageReader reader(signal);
555 power_manager::IdleActionImminent proto; 567 power_manager::IdleActionImminent proto;
556 if (!reader.PopArrayOfBytesAsProto(&proto)) { 568 if (!reader.PopArrayOfBytesAsProto(&proto)) {
557 LOG(ERROR) << "Unable to decode protocol buffer from " 569 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
558 << power_manager::kIdleActionImminentSignal << " signal"; 570 << power_manager::kIdleActionImminentSignal << " signal";
559 return; 571 return;
560 } 572 }
561 FOR_EACH_OBSERVER(Observer, observers_, 573 FOR_EACH_OBSERVER(Observer, observers_,
562 IdleActionImminent(base::TimeDelta::FromInternalValue( 574 IdleActionImminent(base::TimeDelta::FromInternalValue(
563 proto.time_until_idle_action()))); 575 proto.time_until_idle_action())));
564 } 576 }
565 577
566 void IdleActionDeferredReceived(dbus::Signal* signal) { 578 void IdleActionDeferredReceived(dbus::Signal* signal) {
567 FOR_EACH_OBSERVER(Observer, observers_, IdleActionDeferred()); 579 FOR_EACH_OBSERVER(Observer, observers_, IdleActionDeferred());
568 } 580 }
569 581
570 void InputEventReceived(dbus::Signal* signal) { 582 void InputEventReceived(dbus::Signal* signal) {
571 dbus::MessageReader reader(signal); 583 dbus::MessageReader reader(signal);
572 power_manager::InputEvent proto; 584 power_manager::InputEvent proto;
573 if (!reader.PopArrayOfBytesAsProto(&proto)) { 585 if (!reader.PopArrayOfBytesAsProto(&proto)) {
574 LOG(ERROR) << "Unable to decode protocol buffer from " 586 POWER_LOG(ERROR) << "Unable to decode protocol buffer from "
575 << power_manager::kInputEventSignal << " signal"; 587 << power_manager::kInputEventSignal << " signal";
576 return; 588 return;
577 } 589 }
578 590
579 base::TimeTicks timestamp = 591 base::TimeTicks timestamp =
580 base::TimeTicks::FromInternalValue(proto.timestamp()); 592 base::TimeTicks::FromInternalValue(proto.timestamp());
581 VLOG(1) << "Got " << power_manager::kInputEventSignal << " signal:" 593 POWER_LOG(USER) << "Got " << power_manager::kInputEventSignal << " signal:"
582 << " type=" << proto.type() << " timestamp=" << proto.timestamp(); 594 << " type=" << proto.type()
595 << " timestamp=" << proto.timestamp();
583 switch (proto.type()) { 596 switch (proto.type()) {
584 case power_manager::InputEvent_Type_POWER_BUTTON_DOWN: 597 case power_manager::InputEvent_Type_POWER_BUTTON_DOWN:
585 case power_manager::InputEvent_Type_POWER_BUTTON_UP: { 598 case power_manager::InputEvent_Type_POWER_BUTTON_UP: {
586 const bool down = 599 const bool down =
587 (proto.type() == power_manager::InputEvent_Type_POWER_BUTTON_DOWN); 600 (proto.type() == power_manager::InputEvent_Type_POWER_BUTTON_DOWN);
588 FOR_EACH_OBSERVER(PowerManagerClient::Observer, observers_, 601 FOR_EACH_OBSERVER(PowerManagerClient::Observer, observers_,
589 PowerButtonEventReceived(down, timestamp)); 602 PowerButtonEventReceived(down, timestamp));
590 603
591 // Tell powerd that Chrome has handled power button presses. 604 // Tell powerd that Chrome has handled power button presses.
592 if (down) { 605 if (down) {
(...skipping 22 matching lines...) Expand all
615 628
616 void RegisterSuspendDelayImpl( 629 void RegisterSuspendDelayImpl(
617 const std::string& method_name, 630 const std::string& method_name,
618 const power_manager::RegisterSuspendDelayRequest& protobuf_request, 631 const power_manager::RegisterSuspendDelayRequest& protobuf_request,
619 dbus::ObjectProxy::ResponseCallback callback) { 632 dbus::ObjectProxy::ResponseCallback callback) {
620 dbus::MethodCall method_call( 633 dbus::MethodCall method_call(
621 power_manager::kPowerManagerInterface, method_name); 634 power_manager::kPowerManagerInterface, method_name);
622 dbus::MessageWriter writer(&method_call); 635 dbus::MessageWriter writer(&method_call);
623 636
624 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) { 637 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) {
625 LOG(ERROR) << "Error constructing message for " << method_name; 638 POWER_LOG(ERROR) << "Error constructing message for " << method_name;
626 return; 639 return;
627 } 640 }
628 641
629 power_manager_proxy_->CallMethod( 642 power_manager_proxy_->CallMethod(
630 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, callback); 643 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, callback);
631 } 644 }
632 645
633 // Registers suspend delays with the power manager. This is usually only 646 // 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 647 // called at startup, but if the power manager restarts, we need to create new
635 // delays. 648 // delays.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 delay_id = suspend_delay_id_; 703 delay_id = suspend_delay_id_;
691 } 704 }
692 705
693 if (render_process_manager_delegate_ && !suspending_from_dark_resume_) 706 if (render_process_manager_delegate_ && !suspending_from_dark_resume_)
694 render_process_manager_delegate_->SuspendImminent(); 707 render_process_manager_delegate_->SuspendImminent();
695 708
696 dbus::MethodCall method_call( 709 dbus::MethodCall method_call(
697 power_manager::kPowerManagerInterface, method_name); 710 power_manager::kPowerManagerInterface, method_name);
698 dbus::MessageWriter writer(&method_call); 711 dbus::MessageWriter writer(&method_call);
699 712
700 VLOG(1) << "Announcing readiness of suspend delay " << delay_id 713 POWER_LOG(EVENT) << "Announcing readiness of suspend delay " << delay_id
701 << " for suspend attempt " << pending_suspend_id_; 714 << " for suspend attempt " << pending_suspend_id_;
702 power_manager::SuspendReadinessInfo protobuf_request; 715 power_manager::SuspendReadinessInfo protobuf_request;
703 protobuf_request.set_delay_id(delay_id); 716 protobuf_request.set_delay_id(delay_id);
704 protobuf_request.set_suspend_id(pending_suspend_id_); 717 protobuf_request.set_suspend_id(pending_suspend_id_);
705 718
706 pending_suspend_id_ = -1; 719 pending_suspend_id_ = -1;
707 suspend_is_pending_ = false; 720 suspend_is_pending_ = false;
708 721
709 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) { 722 if (!writer.AppendProtoAsArrayOfBytes(protobuf_request)) {
710 LOG(ERROR) << "Error constructing message for " << method_name; 723 POWER_LOG(ERROR) << "Error constructing message for " << method_name;
711 return; 724 return;
712 } 725 }
713 power_manager_proxy_->CallMethod( 726 power_manager_proxy_->CallMethod(
714 &method_call, 727 &method_call,
715 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 728 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
716 dbus::ObjectProxy::EmptyResponseCallback()); 729 dbus::ObjectProxy::EmptyResponseCallback());
717 } 730 }
718 731
719 // Origin thread (i.e. the UI thread in production). 732 // Origin thread (i.e. the UI thread in production).
720 base::PlatformThreadId origin_thread_id_; 733 base::PlatformThreadId origin_thread_id_;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 813
801 virtual bool HasObserver(const Observer* observer) const override { 814 virtual bool HasObserver(const Observer* observer) const override {
802 return observers_.HasObserver(observer); 815 return observers_.HasObserver(observer);
803 } 816 }
804 817
805 virtual void SetRenderProcessManagerDelegate( 818 virtual void SetRenderProcessManagerDelegate(
806 base::WeakPtr<RenderProcessManagerDelegate> delegate) override { 819 base::WeakPtr<RenderProcessManagerDelegate> delegate) override {
807 } 820 }
808 821
809 virtual void DecreaseScreenBrightness(bool allow_off) override { 822 virtual void DecreaseScreenBrightness(bool allow_off) override {
810 VLOG(1) << "Requested to descrease screen brightness"; 823 POWER_LOG(USER) << "Requested to descrease screen brightness";
811 SetBrightness(brightness_ - 5.0, true); 824 SetBrightness(brightness_ - 5.0, true);
812 } 825 }
813 826
814 virtual void IncreaseScreenBrightness() override { 827 virtual void IncreaseScreenBrightness() override {
815 VLOG(1) << "Requested to increase screen brightness"; 828 POWER_LOG(USER) << "Requested to increase screen brightness";
816 SetBrightness(brightness_ + 5.0, true); 829 SetBrightness(brightness_ + 5.0, true);
817 } 830 }
818 831
819 virtual void SetScreenBrightnessPercent(double percent, 832 virtual void SetScreenBrightnessPercent(double percent,
820 bool gradual) override { 833 bool gradual) override {
821 VLOG(1) << "Requested to set screen brightness to " << percent << "% " 834 POWER_LOG(USER) << "Requested to set screen brightness to " << percent
822 << (gradual ? "gradually" : "instantaneously"); 835 << "% " << (gradual ? "gradually" : "instantaneously");
823 SetBrightness(percent, false); 836 SetBrightness(percent, false);
824 } 837 }
825 838
826 virtual void GetScreenBrightnessPercent( 839 virtual void GetScreenBrightnessPercent(
827 const GetScreenBrightnessPercentCallback& callback) override { 840 const GetScreenBrightnessPercentCallback& callback) override {
841 POWER_LOG(USER) << "Requested to get screen brightness";
828 callback.Run(brightness_); 842 callback.Run(brightness_);
829 } 843 }
830 844
831 virtual void DecreaseKeyboardBrightness() override { 845 virtual void DecreaseKeyboardBrightness() override {
832 VLOG(1) << "Requested to descrease keyboard brightness"; 846 POWER_LOG(USER) << "Requested to descrease keyboard brightness";
833 } 847 }
834 848
835 virtual void IncreaseKeyboardBrightness() override { 849 virtual void IncreaseKeyboardBrightness() override {
836 VLOG(1) << "Requested to increase keyboard brightness"; 850 POWER_LOG(USER) << "Requested to increase keyboard brightness";
837 } 851 }
838 852
839 virtual void RequestStatusUpdate() override { 853 virtual void RequestStatusUpdate() override {
840 base::MessageLoop::current()->PostTask(FROM_HERE, 854 POWER_LOG(USER) << "Requested status update";
841 base::Bind(&PowerManagerClientStubImpl::UpdateStatus, 855 base::MessageLoop::current()->PostTask(
842 weak_ptr_factory_.GetWeakPtr())); 856 FROM_HERE, base::Bind(&PowerManagerClientStubImpl::UpdateStatus,
857 weak_ptr_factory_.GetWeakPtr()));
843 } 858 }
844 859
845 virtual void RequestSuspend() override {} 860 virtual void RequestSuspend() override {}
846 virtual void RequestRestart() override {} 861 virtual void RequestRestart() override {}
847 virtual void RequestShutdown() override {} 862 virtual void RequestShutdown() override {}
848 863
849 virtual void NotifyUserActivity( 864 virtual void NotifyUserActivity(
850 power_manager::UserActivityType type) override {} 865 power_manager::UserActivityType type) override {}
851 virtual void NotifyVideoActivity(bool is_fullscreen) override {} 866 virtual void NotifyVideoActivity(bool is_fullscreen) override {}
852 virtual void SetPolicy( 867 virtual void SetPolicy(
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 // static 1007 // static
993 PowerManagerClient* PowerManagerClient::Create( 1008 PowerManagerClient* PowerManagerClient::Create(
994 DBusClientImplementationType type) { 1009 DBusClientImplementationType type) {
995 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 1010 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
996 return new PowerManagerClientImpl(); 1011 return new PowerManagerClientImpl();
997 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 1012 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
998 return new PowerManagerClientStubImpl(); 1013 return new PowerManagerClientStubImpl();
999 } 1014 }
1000 1015
1001 } // namespace chromeos 1016 } // 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