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

Issue 438433002: Add dark resume methods to PowerManagerClient (Closed)

Created:
6 years, 4 months ago by Chirantan Ekbote
Modified:
6 years, 3 months ago
Reviewers:
pprabhu, Daniel Erat
CC:
chromium-reviews, oshima+watch_chromium.org, Sameer Nanda, stevenjb+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

This makes PowerManagerClient tell the power manager to notify chrome when the system comes up in dark resume. It also adds a DarkSuspendImminent() method that observers within chrome can implement if they want to be notified of this event. BUG=397346 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org>; Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=290692

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : rebase and update FakePowerManagerClient #

Total comments: 11

Patch Set 4 : use explicit methods instead of base::Bind #

Total comments: 5

Patch Set 5 : address comments #

Total comments: 4

Patch Set 6 : rebase and address comments #

Patch Set 7 : int32 -> int32_t #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+131 lines, -57 lines) Patch
M chromeos/dbus/fake_power_manager_client.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M chromeos/dbus/fake_power_manager_client.cc View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M chromeos/dbus/power_manager_client.h View 1 2 3 4 1 chunk +8 lines, -0 lines 0 comments Download
M chromeos/dbus/power_manager_client.cc View 1 2 3 4 5 6 12 chunks +118 lines, -57 lines 3 comments Download

Messages

Total messages: 15 (0 generated)
Chirantan Ekbote
Please take a look.
6 years, 4 months ago (2014-08-15 23:04:16 UTC) #1
Daniel Erat
https://codereview.chromium.org/438433002/diff/40001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/40001/chromeos/dbus/power_manager_client.cc#newcode468 chromeos/dbus/power_manager_client.cc:468: void DarkSuspendImminentReceived(dbus::Signal* signal) { can you just eliminate these ...
6 years, 4 months ago (2014-08-15 23:49:31 UTC) #2
Chirantan Ekbote
https://codereview.chromium.org/438433002/diff/40001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/40001/chromeos/dbus/power_manager_client.cc#newcode468 chromeos/dbus/power_manager_client.cc:468: void DarkSuspendImminentReceived(dbus::Signal* signal) { sure. will fix. https://codereview.chromium.org/438433002/diff/40001/chromeos/dbus/power_manager_client.cc#newcode499 chromeos/dbus/power_manager_client.cc:499: ...
6 years, 4 months ago (2014-08-18 17:49:08 UTC) #3
Daniel Erat
https://codereview.chromium.org/438433002/diff/60001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/60001/chromeos/dbus/power_manager_client.cc#newcode440 chromeos/dbus/power_manager_client.cc:440: RegisterSuspendDelayReplyCommon(false, response); nit: OnRegisterSuspendDelayReply()? putting "Register" at the beginning ...
6 years, 4 months ago (2014-08-18 21:02:13 UTC) #4
Chirantan Ekbote
https://codereview.chromium.org/438433002/diff/60001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/60001/chromeos/dbus/power_manager_client.cc#newcode440 chromeos/dbus/power_manager_client.cc:440: RegisterSuspendDelayReplyCommon(false, response); On 2014/08/18 at 21:02:13, Daniel Erat wrote: ...
6 years, 4 months ago (2014-08-18 21:15:43 UTC) #5
Chirantan Ekbote
Please take another look.
6 years, 4 months ago (2014-08-19 01:13:30 UTC) #6
Daniel Erat
thanks, lgtm with a few small comments https://codereview.chromium.org/438433002/diff/80001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/80001/chromeos/dbus/power_manager_client.cc#newcode654 chromeos/dbus/power_manager_client.cc:654: int32 delay_id; ...
6 years, 4 months ago (2014-08-19 02:13:17 UTC) #7
Chirantan Ekbote
https://codereview.chromium.org/438433002/diff/80001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/80001/chromeos/dbus/power_manager_client.cc#newcode654 chromeos/dbus/power_manager_client.cc:654: int32 delay_id; On 2014/08/19 at 02:13:17, Daniel Erat wrote: ...
6 years, 4 months ago (2014-08-19 18:18:26 UTC) #8
Chirantan Ekbote
The CQ bit was checked by chirantan@chromium.org
6 years, 4 months ago (2014-08-19 22:13:39 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chirantan@chromium.org/438433002/120001
6 years, 4 months ago (2014-08-19 22:14:39 UTC) #10
commit-bot: I haz the power
Committed patchset #7 (120001) as 290692
6 years, 4 months ago (2014-08-19 23:23:13 UTC) #11
pprabhu
pprabhu@chromium.org changed reviewers: + pprabhu@chromium.org
6 years, 3 months ago (2014-08-26 18:13:18 UTC) #12
pprabhu
@chirantan: I noticed something while looking at this to implement the shill equivalent. PTAL. https://codereview.chromium.org/438433002/diff/120001/chromeos/dbus/power_manager_client.cc ...
6 years, 3 months ago (2014-08-26 18:13:18 UTC) #13
Daniel Erat
https://codereview.chromium.org/438433002/diff/120001/chromeos/dbus/power_manager_client.cc File chromeos/dbus/power_manager_client.cc (right): https://codereview.chromium.org/438433002/diff/120001/chromeos/dbus/power_manager_client.cc#newcode606 chromeos/dbus/power_manager_client.cc:606: void RegisterSuspendDelays() { On 2014/08/26 18:13:18, pprabhu wrote: > ...
6 years, 3 months ago (2014-08-26 18:16:34 UTC) #14
Chirantan Ekbote
6 years, 3 months ago (2014-08-26 19:10:54 UTC) #15
Message was sent while issue was closed.
https://codereview.chromium.org/438433002/diff/120001/chromeos/dbus/power_man...
File chromeos/dbus/power_manager_client.cc (right):

https://codereview.chromium.org/438433002/diff/120001/chromeos/dbus/power_man...
chromeos/dbus/power_manager_client.cc:606: void RegisterSuspendDelays() {
On 2014/08/26 at 18:16:33, Daniel Erat wrote:
> On 2014/08/26 18:13:18, pprabhu wrote:
> > Fly by late comment: Shouldn't this also reset |suspend_is_pending_| and
> > |suspending_from_dark_resume_|?
> > 
> > Consider the case when power_manager dies after we receive a
> > (Dark)SuspendImminent signal, we will reset the state of PowerManagerClient,
but
> > will end up with incorrect initial values for these two variables.
> 
> probably wouldn't hurt to do that here, but i think that powerd has an ugly
hack to send a fake SuspendDone event at startup in this case

But it looks like |suspend_is_pending_| is not cleared in SuspendDoneReceived. 
It only gets cleared in MaybeReportSuspendReadiness.  So we could have a problem
if the following sequence occurs:

- Chrome receives a {Dark}SuspendImminent
- One of the observers takes a callback
- powerd goes away
- powerd restarts
- The observer runs the callback

In this case, chrome would report suspend readiness with an id of -1 or whatever
id powerd assigned to it (depending on whether or not chrome received the
RegisterSuspendDelay reply before running the observer callback).  I think
powerd can deal with either case but we should probably prevent chrome from
sending the message in the first place.  Plus, if for whatever reason powerd
doesn't restart, then chrome would still report suspend readiness only to
receive a ServiceUnknown error in return.

Maybe this should be cleared in NameOwnerChangedReceived?  I'll upload a CL to
do this.

Powered by Google App Engine
This is Rietveld 408576698