Currently there is a WindowTreeClient per display. A ramification of this is that a windowmanager can't easily move a window between displays. There should be a single WindowTreeClient for the windowmanager so that it doesn't have this problem.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1cc6966e3f846069257522bedb9c3f9315386d02 commit 1cc6966e3f846069257522bedb9c3f9315386d02 Author: sky <sky@chromium.org> Date: Fri Jun 17 23:59:35 2016 Changes how window manager obtains WindowTree from mus Prior to this patch there was a WindowTree per display. This is problematic as it means the window manager can't move windows between displays. This patch makes it so there is a WindowTree per window manager with a root per display. The window manager establishes its connection by way of WindowManagerWindowTreeFactory::CreateWindowTree(). Mus then calls OnConnect() to give the client the client id, followed by WmNewDisplayAdded() once per display root. Changing this resulted in having to change around ash/mus. Previously there was a WindowManager per display, now there is a single WindowManager with the per display information held by RootWindowController. Ideally I would have left these changes to a separate patch, but changing around the mojoms means I have to do it all at once. On the mus side there is some state held per display that needs to be upleveled as well. To avoid making this patch even larger I'm leaving that for a future patch. This resulted in a bit of awkwardness, but I'll fix that shortly. BUG= 611563 TEST=covered by tests R=ben@chromium.org Review-Url: https://codereview.chromium.org/2072343002 Cr-Commit-Position: refs/heads/master@{#400546} [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/accelerator_registrar_impl.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/accelerator_registrar_impl.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/bridge/wm_window_mus.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/bridge/wm_window_mus.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/disconnected_app_handler.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/disconnected_app_handler.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/manifest.json [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/root_window_controller.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/root_window_controller.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/root_windows_observer.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/test/wm_test_base.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/test/wm_test_helper.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/window_manager.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/window_manager.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/window_manager_application.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/ash/mus/window_manager_application.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/demo/manifest.json [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/demo/mus_demo.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/demo/mus_demo.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/mus_app.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/mus_app.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/BUILD.gn [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/lib/in_flight_change.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/lib/window_tree_client.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/BUILD.gn [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/test_window_tree_client_setup.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/test_window_tree_client_setup.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/window_server_test_base.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/window_server_test_base.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/window_tree_client_private.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/tests/window_tree_client_private.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/window_manager_delegate.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/window_tree_client.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/cpp/window_tree_client_delegate.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/interfaces/BUILD.gn [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/interfaces/window_manager.mojom [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/public/interfaces/window_manager_factory.mojom [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/interfaces/window_manager_window_tree_factory.mojom [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/interfaces/window_tree.mojom [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/public/interfaces/window_tree_constants.mojom [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/test_wm/manifest.json [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/test_wm/test_wm.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/BUILD.gn [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/cursor_unittest.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/display.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/display.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/display_unittest.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/test_utils.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/test_utils.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/user_display_manager.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/user_display_manager_unittest.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_client_unittest.cc [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/ws/window_manager_factory_registry.cc [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/ws/window_manager_factory_registry.h [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/ws/window_manager_factory_registry_observer.h [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/ws/window_manager_factory_service.cc [delete] https://crrev.com/1532d8d156be95a9bc272cc9fcbb96c00a67c286/components/mus/ws/window_manager_factory_service.h [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_window_tree_factory.cc [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_window_tree_factory.h [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_window_tree_factory_set.cc [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_window_tree_factory_set.h [add] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_manager_window_tree_factory_set_observer.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_server.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_server.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_tree.cc [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_tree.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_tree_binding.h [modify] https://crrev.com/1cc6966e3f846069257522bedb9c3f9315386d02/components/mus/ws/window_tree_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b6815d705e84fdf739222e40e5b394a0760b3a6d commit b6815d705e84fdf739222e40e5b394a0760b3a6d Author: sky <sky@chromium.org> Date: Wed Jun 22 22:09:30 2016 Promotes remaining global window manager state into WindowManagerState The non-global bits, which is basically just creation of the ServerWindow for per display window manager roots is now in WindowManagerDisplayRoot. I moved GlobalWindowManagerState back into WindowManagerState. BUG= 611563 TEST=covered by tests R=ben@chromium.org Review-Url: https://codereview.chromium.org/2089023002 Cr-Commit-Position: refs/heads/master@{#401429} [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/mus_app.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/BUILD.gn [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/cursor_unittest.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display_manager.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display_manager.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display_manager_delegate.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/display_unittest.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/event_dispatcher.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/event_dispatcher.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/event_dispatcher_delegate.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/event_dispatcher_unittest.cc [delete] https://crrev.com/afdb218eb1c970926ed884af1dbd3d8c99c5975a/components/mus/ws/global_window_manager_state.cc [delete] https://crrev.com/afdb218eb1c970926ed884af1dbd3d8c99c5975a/components/mus/ws/global_window_manager_state.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/test_utils.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/user_display_manager_unittest.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/user_id_tracker_observer.h [add] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_display_root.cc [add] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_display_root.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_state.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_state.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_state_unittest.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_window_tree_factory.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_window_tree_factory.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_window_tree_factory_set.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_manager_window_tree_factory_set.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_server.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_server.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_tree.cc [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_tree.h [modify] https://crrev.com/b6815d705e84fdf739222e40e5b394a0760b3a6d/components/mus/ws/window_tree_unittest.cc
Comment 1 by rjkroege@chromium.org
, May 17 2016Labels: tadpole