|
|
Adds remainder of support for multiple roots to WS
The initial root is established as it always has by way of Embed()
(although I could change this too). Subsequent roots are created by
way of WindowTreeConnection::NewTopLevelWindow(). This results in the
following:
. client lib assigns its own id to newly created window in it's own
namespace and communicates this to server via NewTopLevelWindow.
. WS::NewTopLevelWindow() forwards request to WM to create the actual
window. Additionally the WS pauses incoming messages from the client
until the WM communicates the real id back (*).
. WM creates window and communicates back to WS the id via
OnWmCreatedTopLevelWindow().
. WS maintains mapping between client assigned id and id assigned from
WS and ensures the client only ever sees the id it assigned and not
the real id. I would have preferred not to have two ids like this,
but doing this means the client doesn't have to block waiting for
the rela id from the WS before it can use the window.
* Pausing incoming messages is done to ensure we don't end up in a
situation where the client is trying to use the id before the WM has
actually created the window. By pausing the bindings we ensure we
won't get any out of order messages. From the clients perspective
the client can continue messaging the server.
I also made WindowManagerConnection maintain a single
WindowTreeConnection, so that all windows created by it come from the
same connection.
BUG= 569154
TEST=covered by tests
R=ben@chromium.org
Committed: https://crrev.com/adfb923735404fa6b0bf97940dcddd7442468fc1
Cr-Commit-Position: refs/heads/master@{#368100}
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+499 lines, -65 lines) |
Patch |
 |
M |
components/mus/public/cpp/lib/in_flight_change.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/lib/window.cc
|
View
|
1
|
2 chunks |
+4 lines, -2 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/lib/window_tree_client_impl.h
|
View
|
1
|
5 chunks |
+14 lines, -1 line |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/lib/window_tree_client_impl.cc
|
View
|
1
2
3
|
5 chunks |
+50 lines, -18 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/tests/test_window_tree.h
|
View
|
|
3 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/tests/test_window_tree.cc
|
View
|
|
2 chunks |
+11 lines, -1 line |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/tests/window_tree_client_impl_unittest.cc
|
View
|
|
1 chunk |
+29 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/window_manager_delegate.h
|
View
|
1
|
2 chunks |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/cpp/window_tree_connection.h
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/public/interfaces/window_tree.mojom
|
View
|
1
|
3 chunks |
+13 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/client_connection.h
|
View
|
|
2 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/client_connection.cc
|
View
|
|
3 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/connection_manager.h
|
View
|
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/connection_manager.cc
|
View
|
|
2 chunks |
+31 lines, -0 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/window_tree_impl.h
|
View
|
|
9 chunks |
+33 lines, -3 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/window_tree_impl.cc
|
View
|
|
8 chunks |
+88 lines, -3 lines |
0 comments
|
Download
|
 |
M |
components/mus/ws/window_tree_unittest.cc
|
View
|
|
8 chunks |
+126 lines, -3 lines |
0 comments
|
Download
|
 |
M |
mash/wm/window_manager_impl.h
|
View
|
1
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
 |
M |
mash/wm/window_manager_impl.cc
|
View
|
1
|
3 chunks |
+39 lines, -24 lines |
0 comments
|
Download
|
 |
M |
ui/views/mus/window_manager_connection.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
ui/views/mus/window_manager_connection.cc
|
View
|
|
3 chunks |
+16 lines, -8 lines |
0 comments
|
Download
|
Total messages: 7 (2 generated)
|