Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Unified Diff: ui/aura/mus/window_tree_client.cc

Issue 2778363002: Mus-WS / Aura-Mus: Propagate LocalSurfaceId on WindowTreeHost creation (Closed)
Patch Set: Add comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura/mus/window_tree_client.h ('k') | ui/aura/mus/window_tree_client_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 233da4df7e06e9473645b9a46992700723fd34e0..b53158c97e17033f48589c6fa53f45454c67f7e1 100644
--- a/ui/aura/mus/window_tree_client.cc
+++ b/ui/aura/mus/window_tree_client.cc
@@ -440,7 +440,8 @@ std::unique_ptr<WindowTreeHostMus> WindowTreeClient::CreateWindowTreeHost(
WindowMusType window_mus_type,
const ui::mojom::WindowData& window_data,
int64_t display_id,
- const cc::FrameSinkId& frame_sink_id) {
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_id) {
std::unique_ptr<WindowPortMus> window_port =
CreateWindowPortMus(window_data, window_mus_type);
roots_.insert(window_port.get());
@@ -454,8 +455,9 @@ std::unique_ptr<WindowTreeHostMus> WindowTreeClient::CreateWindowTreeHost(
SetWindowVisibleFromServer(WindowMus::Get(window_tree_host->window()),
true);
}
- SetWindowBoundsFromServer(WindowMus::Get(window_tree_host->window()),
- window_data.bounds, base::nullopt);
+ WindowMus* window = WindowMus::Get(window_tree_host->window());
+
+ SetWindowBoundsFromServer(window, window_data.bounds, local_surface_id);
return window_tree_host;
}
@@ -524,21 +526,24 @@ bool WindowTreeClient::HandleInternalPropertyChanged(WindowMus* window,
return true;
}
-void WindowTreeClient::OnEmbedImpl(ui::mojom::WindowTree* window_tree,
- ClientSpecificId client_id,
- ui::mojom::WindowDataPtr root_data,
- int64_t display_id,
- Id focused_window_id,
- bool drawn,
- const cc::FrameSinkId& frame_sink_id) {
+void WindowTreeClient::OnEmbedImpl(
+ ui::mojom::WindowTree* window_tree,
+ ClientSpecificId client_id,
+ ui::mojom::WindowDataPtr root_data,
+ int64_t display_id,
+ Id focused_window_id,
+ bool drawn,
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_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, frame_sink_id);
+ std::unique_ptr<WindowTreeHostMus> window_tree_host =
+ CreateWindowTreeHost(WindowMusType::EMBED, *root_data, display_id,
+ frame_sink_id, local_surface_id);
focus_synchronizer_->SetFocusFromServer(
GetWindowByServerId(focused_window_id));
@@ -550,15 +555,17 @@ WindowTreeHostMus* WindowTreeClient::WmNewDisplayAddedImpl(
const display::Display& display,
ui::mojom::WindowDataPtr root_data,
bool parent_drawn,
- const cc::FrameSinkId& frame_sink_id) {
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_id) {
DCHECK(window_manager_delegate_);
got_initial_displays_ = true;
window_manager_delegate_->OnWmWillCreateDisplay(display);
- std::unique_ptr<WindowTreeHostMus> window_tree_host = CreateWindowTreeHost(
- WindowMusType::DISPLAY, *root_data, display.id(), frame_sink_id);
+ std::unique_ptr<WindowTreeHostMus> window_tree_host =
+ CreateWindowTreeHost(WindowMusType::DISPLAY, *root_data, display.id(),
+ frame_sink_id, local_surface_id);
WindowTreeHostMus* window_tree_host_ptr = window_tree_host.get();
window_manager_delegate_->OnWmNewDisplay(std::move(window_tree_host),
@@ -874,13 +881,15 @@ void WindowTreeClient::SetEventTargetingPolicy(
tree_->SetEventTargetingPolicy(window->server_id(), policy);
}
-void WindowTreeClient::OnEmbed(ClientSpecificId client_id,
- ui::mojom::WindowDataPtr root_data,
- ui::mojom::WindowTreePtr tree,
- int64_t display_id,
- Id focused_window_id,
- bool drawn,
- const cc::FrameSinkId& frame_sink_id) {
+void WindowTreeClient::OnEmbed(
+ ClientSpecificId client_id,
+ ui::mojom::WindowDataPtr root_data,
+ ui::mojom::WindowTreePtr tree,
+ int64_t display_id,
+ Id focused_window_id,
+ bool drawn,
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_id) {
DCHECK(!tree_ptr_);
tree_ptr_ = std::move(tree);
@@ -892,7 +901,7 @@ void WindowTreeClient::OnEmbed(ClientSpecificId client_id,
}
OnEmbedImpl(tree_ptr_.get(), client_id, std::move(root_data), display_id,
- focused_window_id, drawn, frame_sink_id);
+ focused_window_id, drawn, frame_sink_id, local_surface_id);
}
void WindowTreeClient::OnEmbeddedAppDisconnected(Id window_id) {
@@ -935,11 +944,13 @@ void WindowTreeClient::OnFrameSinkIdAllocated(
window->SetFrameSinkIdFromServer(frame_sink_id);
}
-void WindowTreeClient::OnTopLevelCreated(uint32_t change_id,
- ui::mojom::WindowDataPtr data,
- int64_t display_id,
- bool drawn,
- const cc::FrameSinkId& frame_sink_id) {
+void WindowTreeClient::OnTopLevelCreated(
+ uint32_t change_id,
+ ui::mojom::WindowDataPtr data,
+ int64_t display_id,
+ bool drawn,
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_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
@@ -975,15 +986,15 @@ void WindowTreeClient::OnTopLevelCreated(uint32_t change_id,
const gfx::Rect bounds(data->bounds);
{
- // TODO(fsamuel): Propagate a cc::LocalSurfaceId through here.
- InFlightBoundsChange bounds_change(this, window, bounds, base::nullopt);
+ InFlightBoundsChange bounds_change(this, window, bounds, local_surface_id);
InFlightChange* current_change =
GetOldestInFlightChangeMatching(bounds_change);
if (current_change)
current_change->SetRevertValueFrom(bounds_change);
else if (gfx::ConvertRectToPixel(ScaleFactorForDisplay(window->GetWindow()),
- window->GetWindow()->bounds()) != bounds)
- SetWindowBoundsFromServer(window, bounds, base::nullopt);
+ window->GetWindow()->bounds()) != bounds) {
+ SetWindowBoundsFromServer(window, bounds, local_surface_id);
+ }
}
// There is currently no API to bulk set properties, so we iterate over each
@@ -1383,12 +1394,14 @@ void WindowTreeClient::OnConnect(ClientSpecificId client_id) {
client_id_ = client_id;
}
-void WindowTreeClient::WmNewDisplayAdded(const display::Display& display,
- ui::mojom::WindowDataPtr root_data,
- bool parent_drawn,
- const cc::FrameSinkId& frame_sink_id) {
+void WindowTreeClient::WmNewDisplayAdded(
+ const display::Display& display,
+ ui::mojom::WindowDataPtr root_data,
+ bool parent_drawn,
+ const cc::FrameSinkId& frame_sink_id,
+ const base::Optional<cc::LocalSurfaceId>& local_surface_id) {
WmNewDisplayAddedImpl(display, std::move(root_data), parent_drawn,
- frame_sink_id);
+ frame_sink_id, local_surface_id);
}
void WindowTreeClient::WmDisplayRemoved(int64_t display_id) {
« no previous file with comments | « ui/aura/mus/window_tree_client.h ('k') | ui/aura/mus/window_tree_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698