New issue
Advanced search Search tips

Issue 717671 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocked on:
issue 718860



Sign in to add a comment

mash: Brightness popup doesn't show when brightness keys are pressed

Project Member Reported by jamescook@chromium.org, May 2 2017

Issue description

chrome --mash on link, Chrome r468701, self-built test image 60.0.3088.0

Hit brightness up or down
* Screen brightness changes as expected
* Popup doesn't display

I don't see anything interesting in the chrome logs, just this:
[29200:29200:0502/122059.802177:5349985233:ERROR:shell_delegate_mus.cc(70)] Not implemented reached in virtual bool ash::ShellDelegateMus::IsRunningInForcedAppMode() const

Maybe ash isn't receiving some dbus signal that the brightness actually changed? Is this stuff handled in the window server?

 

Comment 1 by derat@chromium.org, May 2 2017

powerd emits BrightnessChanged D-Bus signals, which are received by chromeos::PowerManagerClient and forwarded to PowerManagerClient::Observer::BrightnessChanged.

I think that ash::TrayBrightness::BrightnessChanged -> HandleBrightnessChanged is the route that we take to display the bubble. At first glance, I'm not sure why that wouldn't be working in mash.

Comment 2 by derat@chromium.org, May 4 2017

Cc: derat@chromium.org
Owner: kylec...@chromium.org
I was briefly thrown for a loop when I added some logging to TrayBrightness and didn't see it show up in /var/log/chrome/chrome, but it turns out that ash logging goes to /var/log/ui/ui.LATEST when running with --mash.

As far as I can tell, we're bailing out here in TrayBrightness::HandleBrightnessChanged:

  // Never show the bubble on systems that lack internal displays: if an
  // external display's brightness is changed, it may already display the new
  // level via an on-screen display. 
  if (!display::Display::HasInternalDisplay())
    return;

And then:

  // static
  bool Display::HasInternalDisplay() {
    return internal_display_id_ != kInvalidDisplayId;
  }

Kyle, do you know what's going on here? The popup is displayed in --mus but not --mash, which feels a bit surprising.
Cc: sky@chromium.org
In mustash there are two different IPC interfaces for sending display::Screen/Display information to clients. The WM gets messages on the mojom::WindowManager interface which is a special case (to ensure synchronization with other WindowTree related messages). The mojom::WindowManager interface doesn't include the internal display (and some other things) because I never finished up that work.

We decided on a "simple display management" plan in mus where display::Screen/Display information originates from ash still. That is why it works there. 

I haven't talked with sky@ recently but I think we're going to use the same "simple display management" code with mustash now too.

Comment 4 by sky@chromium.org, May 5 2017

Blockedon: 718860
The plan is to enable simplified display management for mash too. I filed 718860.

Comment 5 by sky@chromium.org, Jun 21 2017

Owner: sky@chromium.org
Status: Fixed (was: Assigned)
Simplified display management is now enabled for mash and the brightness keys now show the popup.

Comment 6 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)
Components: -Internals>MUS Internals>Services>WindowService

Comment 8 by vapier@chromium.org, Jun 21 2018

Status: Fixed (was: Archived)

Sign in to add a comment