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

Issue 637853 link

Starred by 5 users

Issue metadata

Status: Archived
Owner:
Last visit > 30 days ago
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 731255



Sign in to add a comment

Reevaluate usage of aura::client::CursorClient in mushrome/mustash

Project Member Reported by sky@chromium.org, Aug 15 2016

Issue description

They are needed by WmShellMus, specifically:
  virtual void LockCursor() = 0;
  virtual void UnlockCursor() = 0;
  virtual bool IsMouseEventsEnabled() = 0;

 

Comment 1 by sky@chromium.org, Aug 24 2016

Labels: Proj-Mustash-Mash
Labels: Proj-Mustash
Components: Internals>MUS

Comment 4 by e...@chromium.org, Oct 12 2016

Did some preliminary research on this.

i.

LockCursor() is part of the pointer events' LockMouse()/UnlockMouse() calls (see implementation in RenderWidgetHostViewAura). It prevents the cursor manager from changing the various cursor properties until unlocked, when it applies all the latest state for everything. Something should work if we just call the current window’s cursor manager and issue LockCursor()/UnlockCursor() calls. But I’m not sure what it should do given how we changed the semantics of cursors. In mus, every window has its own cursor, instead of there being a single toplevel cursor state.

Currently in ash, if you LockCursor(), this is a desktop wide effect because there’s one CursorManager on the one toplevel aura root window, meaning ash can. But the code on desktop (at least desktop x11), if you LockCursor(), this only applies to the current set of chrome windows. In the current NativeWidgetMus implementation, it only applies to the current process.

But most of the places in ash where we call LockCursor(), we want a global effect! DefaultWindowResizer wants to lock the cursor to a resize one for the duration of the resize. ScreenshotController wants to set the cursor to the window selection cursor globally (!) and lock it for the duration of selecting a window to screenshot, and then hide the cursor while the screenshot is taken. LockStateController wants to globally hide the cursor from the point where a user clicks on the shutdown button to the computer actually shutting down.

(This isn’t a problem for the desktop usage of LockCursor(), such as RWHVA::LockMouse(). The cursor gets hidden on the current window, and if there’s a mouse movement over the window edge, it warps the mouse position back to the center of the window. I don’t think we even need to implement anything for this case.)

ii.

IsMouseEventsEnabled() is another place where the current ash code looks at the state of the global Root Window’s CursorManager for information. And it’s another place where all the non-ash usage is safe to be per-process. (IsMouseEventsEnabled() is also mostly already implemented in native_widget_mus.cc; )

(The entire set of EnableMouseEvents()/DisableMouseEvents()/IsMouseEventsEnabled() might also be misnamed; I don’t see anything that really actually affects the generation of mouse events, only things at the edges which interpret events. i.e. ImmersiveFullscreenController:: UpdateLocatedEventRevealedLock(), ShelfLayoutManager::CalculateAutoHideState(), View::IsMouseHovered(). Several of these checks are really a sort of “mouse cursor visibility plus” checks for touch events.)
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea37af717f1569dd93282e09b6fb49ff22b771f8

commit ea37af717f1569dd93282e09b6fb49ff22b771f8
Author: sky <sky@chromium.org>
Date: Tue Mar 07 22:59:41 2017

Last sets of tests that can move to common_unittests

This way they run in both mash_unittests and ash_unittests.
Interesting things of note:
. Had to remove DCHECKs for GetRootWindowForDisplayId() as some tests
  call with invalid.
. Had to rename class in mus named WindowManagerTest as it conflicts
  with test with same name in ash.

BUG= 622486 , 631103 , 637853 , 648733 ,695556, 696028 ,698091, 698129 , 698878 , 698887 ,698888,698892,698894, 698895 , 698914 ,699172,699175, 693114 
TEST=test changes
R=msw@chromium.org

Review-Url: https://codereview.chromium.org/2739703003
Cr-Commit-Position: refs/heads/master@{#455272}

[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/BUILD.gn
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/mus/bridge/wm_shell_mus.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/mus/window_manager_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/test/ash_test_base.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/overview/window_selector_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/panels/panel_layout_manager_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/panels/panel_window_resizer_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/system_modal_container_layout_manager_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/window_cycle_controller_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/window_manager_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/window_modality_controller_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/window_state_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/window_util_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/workspace/workspace_event_handler_unittest.cc
[modify] https://crrev.com/ea37af717f1569dd93282e09b6fb49ff22b771f8/ash/wm/workspace/workspace_window_resizer_unittest.cc

Comment 6 by sky@chromium.org, Mar 27 2017

Labels: -Pri-3 mustash-2 Pri-2
Owner: e...@chromium.org
Status: Assigned (was: Untriaged)
I'm passing this your way Elliot given you're working on similar things. 

Comment 7 by sky@chromium.org, Mar 27 2017

Summary: Implement aura::client::CursorClient for mushrome/mustash (was: ash wm needs equivalent of aura::client::CursorClient)
I'm changing the title to better reflect what I think should happen here.

WmShell exposes a couple of functions that come from CursorClient, e.g. LockCursor, UnlockCursor and IsMouseEventsEnabled. These functions should be removed and code should go back to using CursorClient. In mushrome/mash custom mus specific CursorClients should be installed. The mus specific cursor client will end up talking over mojom to mus.

Comment 8 by e...@chromium.org, May 9 2017

Summary: Reevaluate usage of aura::client::CursorClient in mushrome/mustash (was: Implement aura::client::CursorClient for mushrome/mustash)
I think the problem is one step higher.

The CursorClient interface assumes that it's setting the properties of a single
global cursor for the whole screen. This isn't how mus works, with a separate
client/non-client cursor set on a per mus window basis, with cursor switching
happening automatically on the server.

Calls to the cursor manager in ash fall into a few categories:

- The calls in ScreenshotController which try to set the cursor in a global
  way. This is a one off and would require a new SetGlobalOverride() cursor.

- Calls which are trying to hide/lock the cursor globally. (This can be handled
  by just exposing Show/Hide/Lock/Unlock methods to the window manager, per the
  bug description.)

- Calls which are superfluous. (Everything about window resizing; this is
  handled by mus.)

I wrote a patch which exposes {Lock,Unlock,Show,Hide}Cursor to the client
(https://codereview.chromium.org/2857963003/), and with the addition of a new
interface to set a global override cursor, this should be enough to
reimplemenet (or ignore) the above usages.

The big problem is that's not the majority of what CursorManager/
NativeCursorManager do. CurosrManager is another way for ash to inject
behaviour into Chrome.

CurosrClient is set globally on a root window. In pre-mus-mash land, it was set
and then took all cursor changing calls from chrome. It did this to do a bunch
of additional 

- To control the size of the cursor. CursorClient::SetCursorSet() is called by
  chrome accessibility code to make the cursor larger.

- To disable the native cursor and to use an image in an aura::Window as the
  cursor instead. (This is also some sort of accessibility feature). I have no
  idea how you go and make this performant in a mus world. Given that cursor
  data is no longer data a single piece of global state, but

- Global boradcast of these state changes to all aura window hosts.

These things which are currently the responsibility of
CursorManager/AshNativeCursorManager need to be rethought.

(I haven't looked at what it would take to implement IsMouseEventsEnabled() in
detail; it seems to be a weird hanger-on to this interface.)

Project Member

Comment 9 by bugdroid1@chromium.org, May 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1b91d7d3fd76ab7ceb954c05982e6253360c63cf

commit 1b91d7d3fd76ab7ceb954c05982e6253360c63cf
Author: erg <erg@chromium.org>
Date: Mon May 15 20:17:03 2017

Add apis for the window manager to control the cursor in mus.

This adds {Lock,Unlock,Show,Hide}Cursor() to the window manager mojom,
which all have analogs in the current CursorClient. It also adds the
ability for the window manager to set a global override cursor, which
is used instead of the per-window cursor.

This converts usage of CursorClient to a ShellPort wrapper.

BUG= 637853 

Review-Url: https://codereview.chromium.org/2857963003
Cr-Commit-Position: refs/heads/master@{#471881}

[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/aura/shell_port_classic.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/aura/shell_port_classic.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/mus/bridge/shell_port_mash.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/mus/bridge/shell_port_mash.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/shell_port.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ash/wm/lock_state_controller.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/public/interfaces/window_manager.mojom
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/BUILD.gn
[add] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/cursor_state.cc
[add] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/cursor_state.h
[add] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/cursor_state_unittest.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/display.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/display.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/display_unittest.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/test_utils.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_manager_state.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_manager_state_unittest.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_server.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_tree.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/services/ui/ws/window_tree.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ui/aura/mus/window_manager_delegate.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ui/aura/test/mus/test_window_manager_client.cc
[modify] https://crrev.com/1b91d7d3fd76ab7ceb954c05982e6253360c63cf/ui/aura/test/mus/test_window_manager_client.h

Components: -MUS

Comment 11 by sky@chromium.org, Jun 8 2017

Blocking: 731255

Comment 12 by e...@chromium.org, Jun 16 2017

The last part of this bug that still needs to be addressed is IsMouseEventsEnabled(). In #4, I suggested that it was mostly implemented and later, suggested that it had nothing to do with whether mouse events were dispatched.

I was wrong. This all needs a major rethink. The state is used in WindowEventDispatcher::PreDispatchMouseEvent() to filter non-synthesized mouse events out. This code is in aura, and the window server does not appear to do anything like this; fixing this probably involves window manager calls to the current EnableMouseEvents()/DisableMouseEvents(), along with changing event dispatch in the window server itself.

(This might not be a problem for mushrome, since it's keeping everything in one process? I'll need further research here.)
Project Member

Comment 13 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f535f3e8476a4727232607d5d887409686405f45

commit f535f3e8476a4727232607d5d887409686405f45
Author: Elliot Glaysher <erg@chromium.org>
Date: Wed Jul 12 00:31:19 2017

Keep track of mouse events enabled in mus mode.

For mash, we'll have to port the current logic in CompountEventFilter to the
window server for keeping track of the mouse event enabled state, but for mus,
we can just use the existing cursor_manager().

Bug:  734808 , 637853 
Change-Id: I4b6a084732b643b6c8f94f091ee60852d9d07597
Reviewed-on: https://chromium-review.googlesource.com/565351
Commit-Queue: Elliot Glaysher <erg@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485748}
[modify] https://crrev.com/f535f3e8476a4727232607d5d887409686405f45/ash/mus/bridge/shell_port_mash.cc
[modify] https://crrev.com/f535f3e8476a4727232607d5d887409686405f45/testing/buildbot/filters/ash_unittests_mus.filter

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce740243c39d8782b67bae1220d210b35cee6e98

commit ce740243c39d8782b67bae1220d210b35cee6e98
Author: Elliot Glaysher <erg@chromium.org>
Date: Mon Jul 17 19:09:17 2017

Hide the mouse cursor when the user presses most keys in mash.

In non-mash mode, chromeos uses a list of keys in
cursor_manager_chromeos.cc to determine whether pressing a key should
hide the cursor. This patch adds a window manager interface which lets
the window manager send a list of EventMatchers which will determine
whether the cursor is shown or hidden after a key event.

Note: This does not yet deal with key events generated by the
accessibility keyboard.

Bug:  637853 
Change-Id: I2bbb66562b2ded407fc6b05f9b02f1ed18704613
Reviewed-on: https://chromium-review.googlesource.com/570766
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Elliot Glaysher <erg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487184}
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ash/mus/BUILD.gn
[add] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ash/mus/event_matcher_util.cc
[add] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ash/mus/event_matcher_util.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ash/mus/window_manager.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ash/mus/window_manager.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/public/interfaces/event_matcher.mojom
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/public/interfaces/window_manager.mojom
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_dispatcher.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_dispatcher_delegate.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_matcher.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/event_matcher.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/window_manager_state.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/window_tree.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/services/ui/ws/window_tree.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/aura/mus/window_manager_delegate.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/aura/test/mus/test_window_manager_client.cc
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/aura/test/mus/test_window_manager_client.h
[modify] https://crrev.com/ce740243c39d8782b67bae1220d210b35cee6e98/ui/events/mojo/keyboard_codes.mojom

Comment 15 by e...@chromium.org, Jul 19 2017

Cc: jonr...@chromium.org e...@chromium.org sky@chromium.org sadrul@chromium.org
 Issue 631103  has been merged into this issue.
Project Member

Comment 16 by bugdroid1@chromium.org, Jul 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/08063f7b5b503d07ef215f8250b30cb5f3db2c1d

commit 08063f7b5b503d07ef215f8250b30cb5f3db2c1d
Author: Elliot Glaysher <erg@chromium.org>
Date: Sat Jul 29 00:24:06 2017

Keep track of mouse events enabled in mash.

This ports the logic in aura's CompoundEventFilter to the current mus
event dispatch, where a touch event hides the mouse cursor until the
next mouse event. We also give the window manager an explicit way to set
this state (as some accessibility features mess with it directly).

Bug:  637853 
Change-Id: I158f6ea9965bb888fcdc68495cb916e593cd28a8
Tests: CursorStateTest.SetCursorTouchVisibleWhile{Locked,Unlocked}
Reviewed-on: https://chromium-review.googlesource.com/590079
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Elliot Glaysher <erg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490554}
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/mus/bridge/shell_port_mash.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/mus/bridge/shell_port_mash.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/mus/window_manager.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/mus/window_manager.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/shell_port.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/shell_port_classic.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ash/shell_port_classic.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/mash/simple_wm/simple_wm.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/mash/simple_wm/simple_wm.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/demo/mus_demo_internal.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/demo/mus_demo_internal.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/public/interfaces/window_manager.mojom
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/test_wm/test_wm.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/BUILD.gn
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/cursor_state.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/cursor_state.h
[add] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/cursor_state_delegate.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/cursor_state_unittest.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/event_dispatcher_delegate.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/test_utils.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/test_utils.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_manager_client_unittest.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_manager_state.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_server_test_base.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_server_test_base.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_tree.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_tree.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/services/ui/ws/window_tree_unittest.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/mus/window_manager_delegate.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/test/aura_test_base.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/test/aura_test_base.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/test/mus/test_window_manager_client.cc
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/aura/test/mus/test_window_manager_client.h
[modify] https://crrev.com/08063f7b5b503d07ef215f8250b30cb5f3db2c1d/ui/events/event.h

Comment 17 by e...@chromium.org, Aug 1 2017

Status: Fixed (was: Assigned)
Project Member

Comment 18 by bugdroid1@chromium.org, Nov 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f8ac82712ee493fb2f0a4f1a3a8639613130d81a

commit f8ac82712ee493fb2f0a4f1a3a8639613130d81a
Author: James Cook <jamescook@chromium.org>
Date: Fri Nov 03 23:58:52 2017

cros: Clean up ash_unittests using SetLayoutForCurrentDisplays in --mash

SetLayoutForCurrentDisplays() works under mash. Re-enable tests that use
it. For the ones that still fail, disable via filter file and update
comment.

Bug:  698043 ,  637853 
Test: ash_unittests --mash
Change-Id: I401204ffdb31796fb4aa97a3d551a96c34846602
Reviewed-on: https://chromium-review.googlesource.com/754282
Commit-Queue: James Cook <jamescook@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513973}
[modify] https://crrev.com/f8ac82712ee493fb2f0a4f1a3a8639613130d81a/ash/shelf/shelf_layout_manager_unittest.cc
[modify] https://crrev.com/f8ac82712ee493fb2f0a4f1a3a8639613130d81a/ash/wm/workspace/workspace_window_resizer_unittest.cc
[modify] https://crrev.com/f8ac82712ee493fb2f0a4f1a3a8639613130d81a/testing/buildbot/filters/ash_unittests_mash.filter

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

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

Comment 21 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2920dfe1c88deaf619a76c3189da7b331ca5957

commit f2920dfe1c88deaf619a76c3189da7b331ca5957
Author: James Cook <jamescook@chromium.org>
Date: Tue Sep 04 19:55:01 2018

chromeos: Eliminate ash::Config::MASH_DEPRECATED

We haven't run ash in this mode for months, since the switch to ws2 /
window-service-as-a-library.

* CursorManager exists in ws2, so always use it
* Docked magnifier works in SingleProcessMash, and will need to be
  fixed separately for multi-process
* Eliminate unused DragWindowResizerMash. Window dragging across
  displays works for both single-process and multi-process mash
* Always use EventTargetingPolicy::TARGET_AND_DESCENDENTS in exo.
  Manually verified that clicks go to the right place in both
  single-process and multi-process mash.
* Remove many unused includes

I had to disable one ash_unittest for NonClientFrameController.

TBR=lhchavez@chromium.org

Bug:  631103 ,  637853 ,  646565 ,  705592 ,  756163 , 839521
Test: ash_unittests
Change-Id: Iab64339029a33921274089ca4cb57a8f037f6f88
Reviewed-on: https://chromium-review.googlesource.com/1200483
Commit-Queue: James Cook <jamescook@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588626}
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/BUILD.gn
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/accelerators/accelerator_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/accelerators/accelerator_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/accessibility/accessibility_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/app_list/app_list_controller_impl.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/dbus/ash_dbus_services.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/display/display_prefs.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/display/mirror_window_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/display/mirror_window_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/display/window_tree_host_manager.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/frame/header_view.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/highlighter/highlighter_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/ime/ime_focus_handler_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/keyboard/virtual_keyboard_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/keyboard/virtual_keyboard_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/laser/laser_pointer_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/lock_screen_action/lock_screen_note_display_state_handler_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/login/ui/lock_screen_sanity_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/login/ui/login_password_view_test.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/login/ui/login_test_base.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/magnifier/magnification_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/metrics/login_metrics_recorder_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/public/cpp/BUILD.gn
[delete] https://crrev.com/62ebf0a512c16992819b555014cdd9ce6ade383e/ash/public/cpp/config.h
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/root_window_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/app_list_button_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_context_menu_model_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_layout_manager_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_tooltip_manager.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_tooltip_manager_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shelf/shelf_window_watcher_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shell.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shell.h
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/shell_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/sticky_keys/sticky_keys_overlay_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/flag_warning/flag_warning_tray.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/message_center/notification_tray_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/network/tray_network_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/network/wifi_toggle_notification_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/night_light/night_light_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/night_light/tray_night_light_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/palette/palette_tray.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/palette/palette_tray_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/palette/tools/screenshot_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/power/peripheral_battery_notifier_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/power/power_button_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/session/logout_button_tray_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/status_area_widget.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/status_area_widget_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/tray/system_tray.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/tray_caps_lock.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/system/unified/unified_system_tray_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/test/ash_test_base.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/test/ash_test_base.h
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/tooltips/tooltip_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/touch/touch_observer_hud_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wallpaper/wallpaper_controller.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wallpaper/wallpaper_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wayland/wayland_server_controller.cc
[delete] https://crrev.com/62ebf0a512c16992819b555014cdd9ce6ade383e/ash/wm/drag_window_resizer_mash.cc
[delete] https://crrev.com/62ebf0a512c16992819b555014cdd9ce6ade383e/ash/wm/drag_window_resizer_mash.h
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/lock_state_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/non_client_frame_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/overview/window_selector_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/splitview/split_view_controller_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/system_modal_container_layout_manager.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/window_util.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/ash/wm/workspace/workspace_layout_manager_unittest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/chrome/browser/ui/ash/ash_util.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/chrome/browser/ui/views/frame/immersive_mode_controller_ash_browsertest.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/components/arc/rotation_lock/arc_rotation_lock_bridge.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/components/exo/shell_surface_base.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/components/exo/wayland/clients/test/wayland_client_test.cc
[modify] https://crrev.com/f2920dfe1c88deaf619a76c3189da7b331ca5957/testing/buildbot/filters/chromeos.single_process_mash.fyi.ash_unittests.filter

Sign in to add a comment