Index: ui/aura/mus/window_tree_client.cc |
diff --git a/ui/aura/mus/window_tree_client.cc b/ui/aura/mus/window_tree_client.cc |
index 5f5ff4cdcd67425d3d866a12fb5003153b24ad81..b24cd67afeec0b8d5712019dc26211ea31faad53 100644 |
--- a/ui/aura/mus/window_tree_client.cc |
+++ b/ui/aura/mus/window_tree_client.cc |
@@ -439,13 +439,14 @@ void WindowTreeClient::SetLocalPropertiesFromServerProperties( |
std::unique_ptr<WindowTreeHostMus> WindowTreeClient::CreateWindowTreeHost( |
WindowMusType window_mus_type, |
const ui::mojom::WindowData& window_data, |
- int64_t display_id) { |
+ int64_t display_id, |
+ const cc::FrameSinkId& frame_sink_id) { |
std::unique_ptr<WindowPortMus> window_port = |
CreateWindowPortMus(window_data, window_mus_type); |
roots_.insert(window_port.get()); |
std::unique_ptr<WindowTreeHostMus> window_tree_host = |
base::MakeUnique<WindowTreeHostMus>(std::move(window_port), this, |
- display_id); |
+ display_id, frame_sink_id); |
window_tree_host->InitHost(); |
SetLocalPropertiesFromServerProperties( |
WindowMus::Get(window_tree_host->window()), window_data); |
@@ -534,15 +535,16 @@ void WindowTreeClient::OnEmbedImpl(ui::mojom::WindowTree* window_tree, |
ui::mojom::WindowDataPtr root_data, |
int64_t display_id, |
Id focused_window_id, |
- bool drawn) { |
+ bool drawn, |
+ const cc::FrameSinkId& frame_sink_id) { |
// WARNING: this is only called if WindowTreeClient was created as the |
// result of an embedding. |
client_id_ = client_id; |
WindowTreeConnectionEstablished(window_tree); |
DCHECK(roots_.empty()); |
- std::unique_ptr<WindowTreeHostMus> window_tree_host = |
- CreateWindowTreeHost(WindowMusType::EMBED, *root_data, display_id); |
+ std::unique_ptr<WindowTreeHostMus> window_tree_host = CreateWindowTreeHost( |
+ WindowMusType::EMBED, *root_data, display_id, frame_sink_id); |
focus_synchronizer_->SetFocusFromServer( |
GetWindowByServerId(focused_window_id)); |
@@ -553,13 +555,14 @@ void WindowTreeClient::OnEmbedImpl(ui::mojom::WindowTree* window_tree, |
WindowTreeHostMus* WindowTreeClient::WmNewDisplayAddedImpl( |
const display::Display& display, |
ui::mojom::WindowDataPtr root_data, |
- bool parent_drawn) { |
+ bool parent_drawn, |
+ const cc::FrameSinkId& frame_sink_id) { |
DCHECK(window_manager_delegate_); |
window_manager_delegate_->OnWmWillCreateDisplay(display); |
- std::unique_ptr<WindowTreeHostMus> window_tree_host = |
- CreateWindowTreeHost(WindowMusType::DISPLAY, *root_data, display.id()); |
+ std::unique_ptr<WindowTreeHostMus> window_tree_host = CreateWindowTreeHost( |
+ WindowMusType::DISPLAY, *root_data, display.id(), frame_sink_id); |
WindowTreeHostMus* window_tree_host_ptr = window_tree_host.get(); |
window_manager_delegate_->OnWmNewDisplay(std::move(window_tree_host), |
@@ -877,7 +880,8 @@ void WindowTreeClient::OnEmbed(ClientSpecificId client_id, |
ui::mojom::WindowTreePtr tree, |
int64_t display_id, |
Id focused_window_id, |
- bool drawn) { |
+ bool drawn, |
+ const cc::FrameSinkId& frame_sink_id) { |
DCHECK(!tree_ptr_); |
tree_ptr_ = std::move(tree); |
@@ -889,7 +893,7 @@ void WindowTreeClient::OnEmbed(ClientSpecificId client_id, |
} |
OnEmbedImpl(tree_ptr_.get(), client_id, std::move(root_data), display_id, |
- focused_window_id, drawn); |
+ focused_window_id, drawn, frame_sink_id); |
} |
void WindowTreeClient::OnEmbeddedAppDisconnected(Id window_id) { |
@@ -925,7 +929,8 @@ void WindowTreeClient::OnCaptureChanged(Id new_capture_window_id, |
void WindowTreeClient::OnTopLevelCreated(uint32_t change_id, |
ui::mojom::WindowDataPtr data, |
int64_t display_id, |
- bool drawn) { |
+ bool drawn, |
+ const cc::FrameSinkId& frame_sink_id) { |
// The server ack'd the top level window we created and supplied the state |
// of the window at the time the server created it. For properties we do not |
// have changes in flight for we can update them immediately. For properties |
@@ -989,6 +994,8 @@ void WindowTreeClient::OnTopLevelCreated(uint32_t change_id, |
// Top level windows should not have a parent. |
DCHECK_EQ(0u, data->parent_id); |
+ |
+ window->SetFrameSinkIdFromServer(frame_sink_id); |
} |
void WindowTreeClient::OnWindowBoundsChanged( |
@@ -1357,8 +1364,10 @@ void WindowTreeClient::OnConnect(ClientSpecificId client_id) { |
void WindowTreeClient::WmNewDisplayAdded(const display::Display& display, |
ui::mojom::WindowDataPtr root_data, |
- bool parent_drawn) { |
- WmNewDisplayAddedImpl(display, std::move(root_data), parent_drawn); |
+ bool parent_drawn, |
+ const cc::FrameSinkId& frame_sink_id) { |
+ WmNewDisplayAddedImpl(display, std::move(root_data), parent_drawn, |
+ frame_sink_id); |
} |
void WindowTreeClient::WmDisplayRemoved(int64_t display_id) { |