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 9c836c9e478683f7aa0ce45219d02df9b59802d4..800de90e4a6c9edba67fe78d832261fc885d918d 100644 |
--- a/components/mus/ws/server_window_surface.cc |
+++ b/components/mus/ws/server_window_surface.cc |
@@ -32,13 +32,10 @@ ServerWindowSurface::ServerWindowSurface( |
: manager_(manager), |
surface_type_(surface_type), |
surface_id_(manager->GenerateId()), |
- surface_factory_(manager_->window() |
- ->delegate() |
- ->GetSurfacesState() |
- ->manager(), |
- this), |
+ surface_factory_(manager_->GetSurfaceManager(), this), |
client_(std::move(client)), |
- binding_(this, std::move(request)) { |
+ binding_(this, std::move(request)), |
+ registered_surface_factory_client_(false) { |
surface_factory_.Create(surface_id_); |
} |
@@ -47,6 +44,11 @@ ServerWindowSurface::~ServerWindowSurface() { |
// call back into here and access |client_| so we should destroy |
// |surface_factory_|'s resources early on. |
surface_factory_.DestroyAll(); |
+ |
+ if (registered_surface_factory_client_) { |
+ cc::SurfaceManager* surface_manager = manager_->GetSurfaceManager(); |
+ surface_manager->UnregisterSurfaceFactoryClient(manager_->id_namespace()); |
+ } |
} |
void ServerWindowSurface::SubmitCompositorFrame( |
@@ -84,6 +86,13 @@ void ServerWindowSurface::DestroySurfacesScheduledForDestruction() { |
surface_factory_.Destroy(id); |
} |
+void ServerWindowSurface::RegisterForBeginFrames() { |
+ DCHECK(!registered_surface_factory_client_); |
+ registered_surface_factory_client_ = true; |
+ cc::SurfaceManager* surface_manager = manager_->GetSurfaceManager(); |
+ surface_manager->RegisterSurfaceFactoryClient(manager_->id_namespace(), this); |
+} |
+ |
ServerWindow* ServerWindowSurface::window() { |
return manager_->window(); |
} |
@@ -153,7 +162,6 @@ void ServerWindowSurface::ReturnResources( |
} |
void ServerWindowSurface::SetBeginFrameSource( |
- cc::SurfaceId surface_id, |
cc::BeginFrameSource* begin_frame_source) { |
// TODO(tansell): Implement this. |
} |