New issue
Advanced search Search tips

Issue 778449 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature



Sign in to add a comment

powerd should report screen idle state changes and suspend reasons over D-Bus

Project Member Reported by derat@chromium.org, Oct 25 2017

Issue description

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.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 27 2017

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

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 27 2017

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

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 29 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 30 2017

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

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 30 2017

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

Comment 6 by derat@chromium.org, Oct 30 2017

Status: Verified (was: Started)
Project Member

Comment 7 by bugdroid1@chromium.org, Nov 10 2017

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

Sign in to add a comment