As described in https://docs.google.com/a/google.com/document/d/1sfzcSc45orNacBC_pQXygAIdYVBJCDhVxPrQtwd5cpo/edit?usp=sharing and https://docs.google.com/a/google.com/document/d/123eFd0rUTu0140V6hJKkkWmpqibdIfM-zTtUR5a2qaQ/edit?usp=sharing, powerd needs to report a bit more information to Chrome about some of the power management actions it takes. I plan to add a ScreenIdleState protobuf that's included in a ScreenIdleStateChanged D-Bus signal, as well as adding a field to the SuspendImminent protobuf describing the reason for the suspend request.
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/system_api/+/47afcabaf957c013418ef2a33481ec1fe764dc94 commit 47afcabaf957c013418ef2a33481ec1fe764dc94 Author: Daniel Erat <derat@chromium.org> Date: Fri Oct 27 03:21:01 2017 system_api: Add powerd ScreenIdleState proto. Add a ScreenIdleState protocol buffer message that will be included in new ScreenIdleStateChanged D-Bus signals emitted by powerd. Also add a "reason" enum field to SuspendImminent. BUG= chromium:778449 TEST=built it Change-Id: I692015498c258e47bba3d5c4e429596cb17fa16e Reviewed-on: https://chromium-review.googlesource.com/740664 Commit-Ready: Dan Erat <derat@chromium.org> Tested-by: Dan Erat <derat@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [modify] https://crrev.com/47afcabaf957c013418ef2a33481ec1fe764dc94/dbus/power_manager/dbus-constants.h [add] https://crrev.com/47afcabaf957c013418ef2a33481ec1fe764dc94/dbus/power_manager/idle.proto [modify] https://crrev.com/47afcabaf957c013418ef2a33481ec1fe764dc94/system_api.gyp [modify] https://crrev.com/47afcabaf957c013418ef2a33481ec1fe764dc94/dbus/power_manager/suspend.proto
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/814efedfa054f72baaf8def8fdb06fcaec8243d4 commit 814efedfa054f72baaf8def8fdb06fcaec8243d4 Author: Daniel Erat <derat@chromium.org> Date: Fri Oct 27 03:21:02 2017 power: Emit ScreenIdleStateChanged D-Bus signals. Make powerd emit ScreenIdleStateChanged D-Bus signals containing ScreenIdleState protocol buffers when the screen is dimmed or turned off in response to user inactivity or undimmed or turned back on in response to user activity. BUG= chromium:778449 TEST=added unit tests; also manually verified via dbus-monitor that correct signals are emitted CQ-DEPEND=I692015498c258e47bba3d5c4e429596cb17fa16e Change-Id: Ibfd3007d4dd7d2e7231399e477ccf74d064a5bb9 Reviewed-on: https://chromium-review.googlesource.com/740667 Commit-Ready: Dan Erat <derat@chromium.org> Tested-by: Dan Erat <derat@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [modify] https://crrev.com/814efedfa054f72baaf8def8fdb06fcaec8243d4/power_manager/powerd/daemon.cc [modify] https://crrev.com/814efedfa054f72baaf8def8fdb06fcaec8243d4/power_manager/powerd/policy/state_controller_unittest.cc [modify] https://crrev.com/814efedfa054f72baaf8def8fdb06fcaec8243d4/power_manager/powerd/policy/state_controller.cc [modify] https://crrev.com/814efedfa054f72baaf8def8fdb06fcaec8243d4/power_manager/powerd/policy/state_controller.h
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/27bf6f0385e20796dbb305b99246cadcfacb4658 commit 27bf6f0385e20796dbb305b99246cadcfacb4658 Author: Daniel Erat <derat@chromium.org> Date: Sun Oct 29 01:08:48 2017 power: Add "reason" to SuspendImminent D-Bus signals. Make powerd set a "reason" field in SuspendImminent protocol buffers to report whether suspends happen in response to the idle timeout, the lid being closed, or a RequestSuspend D-Bus method call. BUG= chromium:778449 TEST=updated unit tests; also manually verified via dbus-monitor that correct signals are emitted CQ-DEPEND=I692015498c258e47bba3d5c4e429596cb17fa16e Change-Id: I45afc6581cf51a7e817c14c92e4a701db2de02ec Reviewed-on: https://chromium-review.googlesource.com/740705 Commit-Ready: Dan Erat <derat@chromium.org> Tested-by: Dan Erat <derat@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/state_controller_unittest.cc [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/daemon.cc [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/state_controller.h [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/suspender.cc [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/daemon.h [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/state_controller.cc [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/suspender.h [modify] https://crrev.com/27bf6f0385e20796dbb305b99246cadcfacb4658/power_manager/powerd/policy/suspender_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2814759eef9973c8f9b2786f67f67142e6712e20 commit 2814759eef9973c8f9b2786f67f67142e6712e20 Author: Daniel Erat <derat@chromium.org> Date: Mon Oct 30 20:20:10 2017 Roll src/third_party/cros_system_api/ 53717bc2d..47afcabaf (3 commits) https://chromium.googlesource.com/chromiumos/platform/system_api.git/+log/53717bc2de48..47afcabaf957 $ git log 53717bc2d..47afcabaf --date=short --no-merges --format='%ad %ae %s' 2017-10-25 derat system_api: Add powerd ScreenIdleState proto. 2017-10-25 ejcaruso shill: make property identifier for Cellular.ModelID consistent 2017-10-02 ejcaruso switches: add modemfwd_switches.h Created with: roll-dep src/third_party/cros_system_api Bug: 778449 Change-Id: Ifaefefa117c08d824e1bf1125037f6e6fad1105b Reviewed-on: https://chromium-review.googlesource.com/742231 Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Commit-Queue: Dan Erat <derat@chromium.org> Cr-Commit-Position: refs/heads/master@{#512598} [modify] https://crrev.com/2814759eef9973c8f9b2786f67f67142e6712e20/DEPS
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b commit 05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b Author: Daniel Erat <derat@chromium.org> Date: Mon Oct 30 22:41:45 2017 chromeos: Notify about screen idle state and suspend reason. Update chromeos::PowerManagerClient to notify its observers about ScreenIdleStateChanged D-Bus signals. Also pass along reasons from SuspendImminent signals. TBR=stevenjb@chromium.org Bug: 778449 Change-Id: Ieb19e055050416ff38d79ae46d580c35ce64db51 Reviewed-on: https://chromium-review.googlesource.com/742626 Commit-Queue: Dan Erat <derat@chromium.org> Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Hidehiko Abe <hidehiko@chromium.org> Reviewed-by: Xiyuan Xia <xiyuan@chromium.org> Cr-Commit-Position: refs/heads/master@{#512650} [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/system/power/power_event_observer.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/system/power/power_event_observer.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/system/power/power_event_observer_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/system/power/tablet_power_button_controller_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/wm/tablet_mode/tablet_mode_controller.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/ash/wm/tablet_mode/tablet_mode_controller.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/extensions/file_manager/device_event_router.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/extensions/file_manager/device_event_router.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/file_manager/volume_manager_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/lock_screen_apps/state_controller.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/lock_screen_apps/state_controller.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/lock_screen_apps/state_controller_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/login/lock/webui_screen_locker.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/power/extension_event_observer.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/power/extension_event_observer.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/power/extension_event_observer_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/power/renderer_freezer_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/tether/tether_service.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/tether/tether_service.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/chromeos/tether/tether_service_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/signin/easy_unlock_service.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chrome/browser/signin/easy_unlock_service_unittest_chromeos.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/BUILD.gn [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/dbus/fake_power_manager_client.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/dbus/fake_power_manager_client.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/dbus/power_manager_client.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/dbus/power_manager_client.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/dbus/power_manager_client_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/disks/suspend_unmount_manager.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/disks/suspend_unmount_manager.h [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/chromeos/disks/suspend_unmount_manager_unittest.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/components/arc/power/arc_power_bridge.cc [modify] https://crrev.com/05f8e5c93e2e931ddb5a04b887fd29eb5fb2c08b/components/arc/power/arc_power_bridge.h
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/2a3ea85e30747d78b5c54d9f9ee73c7ecf84813e commit 2a3ea85e30747d78b5c54d9f9ee73c7ecf84813e Author: Daniel Erat <derat@chromium.org> Date: Fri Nov 10 03:16:27 2017 power: Emit ScreenIdleStateChanged D-Bus signal at startup. Make powerd emit a ScreenIdleStateChanged D-Bus signal when it starts to ensure that observers get the current state after a crash or intentional restart. BUG= chromium:778449 TEST=updated unit test; also manually verified that chrome receives expected signal after restarting powerd Change-Id: I8856d059db910c164c4e5c2d65d19bda465ca9e2 Reviewed-on: https://chromium-review.googlesource.com/759836 Commit-Ready: Dan Erat <derat@chromium.org> Tested-by: Dan Erat <derat@chromium.org> Reviewed-by: Dan Erat <derat@chromium.org> Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [modify] https://crrev.com/2a3ea85e30747d78b5c54d9f9ee73c7ecf84813e/power_manager/powerd/policy/state_controller_unittest.cc [modify] https://crrev.com/2a3ea85e30747d78b5c54d9f9ee73c7ecf84813e/power_manager/powerd/policy/state_controller.cc
Comment 1 by bugdroid1@chromium.org
, Oct 27 2017