Make sure suspend/resume work for mash |
|||||||
Issue descriptionNeeds some investigation, no doubt related to 629707.
,
Feb 13 2017
Sure, I'm the right person to own this. I'm doing a build and will try to ascertain the current state of this today.
,
Feb 13 2017
Chrome asks powerd to suspend, so that part works, at least. Like you said, Chrome crashes, so it's hard to tell whether Chrome's suspend delay stuff correctly. I'd expect it to work, as powerd already supports multiple D-Bus clients for suspend delays. With separate ash and Chrome processes, we see a suspend delay registered for each, but they shouldn't step on each other's toes. I should make ash use "ash" as the name for its delay so we don't end up with two delays named "chrome", which is confusing: [0213/124532:INFO:suspend_delay_controller.cc(62)] Registering suspend delay 64225291 (chrome) of 5000 ms on behalf of :1.142 ... [0213/124534:INFO:suspend_delay_controller.cc(62)] Registering suspend delay 64225292 (chrome) of 5000 ms on behalf of :1.144 Also, powerd reports that its SetDisplayPower calls to Chrome are failing: [0213/124534:INFO:daemon.cc(1077)] D-Bus org.chromium.LibCrosService ownership changed to :1.144 [0213/124534:INFO:display_power_setter.cc(82)] Asking Chrome to turn all displays on [0213/124534:ERROR:object_proxy.cc(582)] Failed to call method: org.chromium.LibCrosServiceInterface.SetDisplayPower: object_path= /org/chromium/LibCrosService: org.freedesktop.DBus.Error.UnknownMethod: Method "SetDisplayPower" with signature "i" on interface "org.chromium.LibCrosServiceInterface" doesn't exist
,
Feb 14 2017
Side question: Is there a way to determine from within a //chromeos/dbus client class whether we're running in a Chrome process (either mash or pre-mash) vs. an ash process? I could plumb through ProcessMask information from DBusThreadManager to the client's constructor, although that feels like a bit of a hack, maybe.
,
Feb 14 2017
In chrome code we have IsRunningInMash(). In ash we have WmShell::IsRunningInMash(), but that assumes you know if you're in chrome code or ash code. These are the only run time functions I'm aware of.
,
Feb 14 2017
rockot@ may have something Fairly Soon™ based on his comment in issue 690553 . In the meantime, perhaps it's okay to do something hacky, like call ash::Shell::HasInstance() (assuming this is not startup code).
,
Feb 14 2017
or ash::WmShell::HasInstance()
,
Feb 14 2017
//chromeos is about as far as you can get from being able to depend on //ash, unfortunately (it's similar to //base in many ways), so I'm probably stuck injecting this into //chromeos with the current state of things. Ken's work sounds promising! I might hold off for that, since I think I just want this to be able to report different suspend delay names to the powerd process, which mostly just helps when looking at logs.
,
May 8 2017
,
Nov 21 2017
,
Apr 19 2018
,
Oct 17
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by jamescook@chromium.org
, Feb 13 2017Status: Assigned (was: Untriaged)