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

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

Powered by Google App Engine
This is Rietveld 408576698