Index: services/ui/surfaces/gpu_compositor_frame_sink.cc |
diff --git a/services/ui/surfaces/gpu_compositor_frame_sink.cc b/services/ui/surfaces/gpu_compositor_frame_sink.cc |
index 34ef009d4fd1206f85067b472a8321c400c702b3..109a7bf925305e02357c677bd0be25fe7404c77c 100644 |
--- a/services/ui/surfaces/gpu_compositor_frame_sink.cc |
+++ b/services/ui/surfaces/gpu_compositor_frame_sink.cc |
@@ -19,10 +19,11 @@ GpuCompositorFrameSink::GpuCompositorFrameSink( |
cc::mojom::MojoCompositorFrameSinkClientPtr client, |
cc::mojom::DisplayPrivateRequest display_private_request) |
: display_compositor_(display_compositor), |
+ display_(std::move(display)), |
support_(this, |
display_compositor->manager(), |
frame_sink_id, |
- std::move(display), |
+ display_.get(), |
std::move(begin_frame_source)), |
client_(std::move(client)), |
binding_(this, std::move(request)), |
@@ -30,6 +31,9 @@ GpuCompositorFrameSink::GpuCompositorFrameSink( |
this, |
std::move(compositor_frame_sink_private_request)), |
display_private_binding_(this, std::move(display_private_request)) { |
+ support_.BindToClient(); |
+ support_.RegisterFrameSinkId(); |
+ support_.SetDisplayVisible(true); |
binding_.set_connection_error_handler(base::Bind( |
&GpuCompositorFrameSink::OnClientConnectionLost, base::Unretained(this))); |
@@ -38,7 +42,10 @@ GpuCompositorFrameSink::GpuCompositorFrameSink( |
base::Unretained(this))); |
} |
-GpuCompositorFrameSink::~GpuCompositorFrameSink() {} |
+GpuCompositorFrameSink::~GpuCompositorFrameSink() { |
+ support_.DetachFromClient(); |
+ support_.InvalidateFrameSinkId(); |
+} |
void GpuCompositorFrameSink::EvictFrame() { |
support_.EvictFrame(); |