New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 656676 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 613210
Owner: ----
Closed: Sep 8
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Mash: Support non-rectagular client area in Windows.

Project Member Reported by mfomitchev@chromium.org, Oct 17 2016

Issue description

Currently 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())

 
Components: Internals>MUS UI>Shell
Labels: Proj-Mustash-Mus-WS
can the browser indicate that it doesn't want the event? it will fall back to the parent (ash) which will latch? Seems like the easiest solution at the cost of 2 extra ipc on a mousedown or touchdown.


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?

Comment 3 by sky@chromium.org, 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.
Cc: vollick@chromium.org
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.
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. 
Cc: jonr...@chromium.org
Related:  issue 613210 
Project Member

Comment 8 by sheriffbot@chromium.org, Nov 9 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
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
Components: -UI>Shell -Internals>MUS Internals>Services>Viz
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.
Cc: -mfomitchev@chromium.org
Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash-WM
Labels: -Proj-Mustash-Mus-WS
Deprecating Proj-Mustash-Mus-WS label in favor of Components.
Labels: -Proj-Mustash-Mus Proj-Mustash
Migrating Proj-Mustash-Mus to components Internals>Services>WindowService and Internals>Services>Ash

Labels: -Pri-3 -Hotlist-Recharge-Cold -Proj-Mustash Proj-Mash-SingleProcess OS-Chrome Pri-2
Status: Available (was: Untriaged)
Summary: Mash: Support non-rectagular client area in Windows. (was: Mustash: Support non-rectagular client area in Mus Windows.)
Mergedinto: 613210
Status: Duplicate (was: Available)

Sign in to add a comment