Issue metadata
Sign in to add a comment
|
Mash: Support non-rectagular client area in Windows. |
||||||||||||||||||||||||
Issue descriptionCurrently ServerWindow's non-client area is defined as a set of rects: https://cs.chromium.org/chromium/src/services/ui/ws/server_window.h?cl=GROK&gsn=additional_client_area&rcl=1476702996&l=226 However in the browser frame the non-client area is of irregular shape: the area between the tabs in the tab strip and the area above the new tab button (NTB) logically belongs to the non-client area. E.g in traditional ash if you mouse-press between the tabs or just above the NTB you can drag the browser window around. This doesn't work in Mustash because the entire rect containing tab strip is considered to be in the client area (see BrowserNonClientFrameViewMus::UpdateClientArea())
,
Oct 17 2016
That's a cool idea. Looking at WindowManagerState::OnEventAck though, it doesn't seem like we have event bubbling in Mus implemented (yet?). Also, if we bubble to the parent ServerWindow, I don't think the event will be handled by WM - I think we would need to bubble it to the non-client area of the same window. So we'd need to add an extra step in the bubbling phase for unhandled events. But we can do this only for events that fall into additional_client_areas(), which probably wouldn't be too bad?
,
Oct 17 2016
We wanted to avoid the extra hop when we know a particular client is going to handle it. And Mikhai is certainly right that we don't handle bubbling correctly. The client areas should support a more generic path, I went with rects as that was easiest at the time.
,
Oct 18 2016
There's a probably a better way. vollick@ presented an issue with OOPIF event routing yesterday. The TL;DR is that an embedder needs a way to submit as part of its CompositorFrame additional regions for which events to it but the embedded child provides the actual pixels. Seems like we could use the same mechanism: Ash submits "transparent occluders" over the region of the tabstrip that it wants the events for. But Chrome actually draws them.
,
Oct 18 2016
I don't think we have a case here where Chrome needs to draw something but events should go to ash. Chrome draws the tabs and should get the events for the tabs. Ash draws the window frame including close/minimize/maximize buttons and should get the events for those.
,
Oct 31 2016
,
Nov 8 2016
Related: issue 613210
,
Nov 9 2017
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 10 2017
This is something which we still wish to pursue. However it will have to wait for the completion of the first major phase of the Viz project.
,
Nov 21 2017
,
Apr 19 2018
,
Apr 24 2018
Deprecating Proj-Mustash-Mus-WS label in favor of Components.
,
Apr 24 2018
Migrating Proj-Mustash-Mus to components Internals>Services>WindowService and Internals>Services>Ash
,
Aug 14
,
Sep 8
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by rjkroege@chromium.org
, Oct 17 2016Labels: Proj-Mustash-Mus-WS