New issue
Advanced search Search tips

Issue 611563 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Aug 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
mus

Blocking:
issue 613199



Sign in to add a comment

WindowManager should use a single connection

Project Member Reported by sky@chromium.org, May 12 2016

Issue description

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.
 
Cc: rjkroege@chromium.org
Labels: tadpole
Labels: screen

Comment 3 by sky@chromium.org, May 19 2016

Blocking: 613199

Comment 4 by sky@chromium.org, May 23 2016

Labels: -Pri-3 Pri-2

Comment 5 by sky@chromium.org, Jun 7 2016

Owner: sky@chromium.org
Status: Started (was: Available)
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 18 2016

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

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 22 2016

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 8 by sky@chromium.org, Aug 29 2016

Status: Fixed (was: Started)

Comment 9 by dchan@chromium.org, Oct 7 2016

Labels: VerifyIn-55

Comment 10 by dchan@google.com, Nov 19 2016

Labels: VerifyIn-56

Comment 11 by dchan@google.com, Jan 21 2017

Labels: VerifyIn-57

Comment 12 by dchan@google.com, Mar 4 2017

Labels: VerifyIn-58

Comment 13 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 14 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 16 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)

Sign in to add a comment