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..cc228f3e92e957f84f6af0e4d85b1661c24cb6fb 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); |
@@ -455,6 +456,9 @@ std::unique_ptr<WindowTreeHostMus> WindowTreeClient::CreateWindowTreeHost( |
} |
SetWindowBoundsFromServer(WindowMus::Get(window_tree_host->window()), |
window_data.bounds); |
+ DCHECK(frame_sink_id.is_valid()); |
+ WindowMus::Get(window_tree_host->window()) |
sky
2017/03/21 21:12:03
How come you call this here and not in WindowTreeH
Fady Samuel
2017/03/21 22:03:29
Oohh oops, I added this first then later decided t
|
+ ->SetFrameSinkIdFromServer(frame_sink_id); |
return window_tree_host; |
} |
@@ -534,15 +538,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 +558,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 +883,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 +896,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 +932,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 +997,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 +1367,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) { |