| Index: components/mus/ws/server_window_surface.cc
|
| diff --git a/components/mus/ws/server_window_surface.cc b/components/mus/ws/server_window_surface.cc
|
| index 61208c15ceb53f5d9fb56478d93ee517abf5992a..9c836c9e478683f7aa0ce45219d02df9b59802d4 100644
|
| --- a/components/mus/ws/server_window_surface.cc
|
| +++ b/components/mus/ws/server_window_surface.cc
|
| @@ -99,13 +99,15 @@ bool ServerWindowSurface::ConvertSurfaceDrawQuad(
|
| const mojom::CompositorFrameMetadataPtr& metadata,
|
| cc::SharedQuadState* sqs,
|
| cc::RenderPass* render_pass) {
|
| - Id id = static_cast<Id>(
|
| + // Surface ids originate from the client, meaning they are ClientWindowIds
|
| + // and can only be resolved by the client that submitted the frame.
|
| + const ClientWindowId other_client_window_id(
|
| input->surface_quad_state->surface.To<cc::SurfaceId>().id);
|
| - // TODO(sky): this is now wrong, needs mapping from client to window.
|
| - WindowId other_window_id = WindowIdFromTransportId(id);
|
| - ServerWindow* other_window = window()->GetChildWindow(other_window_id);
|
| + ServerWindow* other_window = window()->delegate()->FindWindowForSurface(
|
| + window(), mojom::SurfaceType::DEFAULT, other_client_window_id);
|
| if (!other_window) {
|
| - DVLOG(2) << "The window ID '" << id << "' does not exist.";
|
| + DVLOG(2) << "The window ID '" << other_client_window_id.id
|
| + << "' does not exist.";
|
| // TODO(fsamuel): We return true here so that the CompositorFrame isn't
|
| // entirely rejected. We just drop this SurfaceDrawQuad. This failure
|
| // can happen if the client has an out of date view of the window tree.
|
| @@ -113,7 +115,7 @@ bool ServerWindowSurface::ConvertSurfaceDrawQuad(
|
| return true;
|
| }
|
|
|
| - referenced_window_ids_.insert(other_window_id);
|
| + referenced_window_ids_.insert(other_window->id());
|
|
|
| ServerWindowSurface* default_surface =
|
| other_window->GetOrCreateSurfaceManager()->GetDefaultSurface();
|
|
|