Index: services/ui/ws/server_window_surface.cc |
diff --git a/services/ui/ws/server_window_surface.cc b/services/ui/ws/server_window_surface.cc |
index 9228115e629289bc083cc8718f4d90c24c1051d3..eeb88372c3f89b5fd970f9a97daf16bed76453c8 100644 |
--- a/services/ui/ws/server_window_surface.cc |
+++ b/services/ui/ws/server_window_surface.cc |
@@ -24,7 +24,6 @@ ServerWindowSurface::ServerWindowSurface( |
mojom::SurfaceClientPtr client) |
: frame_sink_id_(frame_sink_id), |
manager_(manager), |
- surface_id_allocator_(frame_sink_id_), |
surface_factory_(frame_sink_id_, manager_->GetSurfaceManager(), this), |
client_(std::move(client)), |
binding_(this, std::move(request)) { |
@@ -50,7 +49,7 @@ void ServerWindowSurface::SubmitCompositorFrame( |
frame.delegated_frame_data->render_pass_list[0]->output_rect.size(); |
// If the size of the CompostiorFrame has changed then destroy the existing |
// Surface and create a new one of the appropriate size. |
- if (surface_id_.is_null() || frame_size != last_submitted_frame_size_) { |
+ if (local_frame_id_.is_null() || frame_size != last_submitted_frame_size_) { |
// Rendering of the topmost frame happens in two phases. First the frame |
// is generated and submitted, and a later date it is actually drawn. |
// During the time the frame is generated and drawn we can't destroy the |
@@ -58,22 +57,26 @@ void ServerWindowSurface::SubmitCompositorFrame( |
// this we schedule destruction via the delegate. The delegate will call |
// us back when we're not waiting on a frame to be drawn (which may be |
// synchronously). |
- if (!surface_id_.is_null()) { |
- surfaces_scheduled_for_destruction_.insert(surface_id_); |
+ if (!local_frame_id_.is_null()) { |
+ surfaces_scheduled_for_destruction_.insert(local_frame_id_); |
window()->delegate()->ScheduleSurfaceDestruction(window()); |
} |
- surface_id_ = surface_id_allocator_.GenerateId(); |
- surface_factory_.Create(surface_id_); |
+ local_frame_id_ = surface_id_allocator_.GenerateId(); |
+ surface_factory_.Create(local_frame_id_); |
} |
may_contain_video_ = frame.metadata.may_contain_video; |
- surface_factory_.SubmitCompositorFrame(surface_id_, std::move(frame), |
+ surface_factory_.SubmitCompositorFrame(local_frame_id_, std::move(frame), |
callback); |
last_submitted_frame_size_ = frame_size; |
window()->delegate()->OnScheduleWindowPaint(window()); |
} |
+cc::SurfaceId ServerWindowSurface::GetSurfaceId() const { |
+ return cc::SurfaceId(frame_sink_id_, local_frame_id_); |
+} |
+ |
void ServerWindowSurface::DestroySurfacesScheduledForDestruction() { |
- std::set<cc::SurfaceId> surfaces; |
+ std::set<cc::LocalFrameId> surfaces; |
surfaces.swap(surfaces_scheduled_for_destruction_); |
for (auto& id : surfaces) |
surface_factory_.Destroy(id); |