Index: content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc |
diff --git a/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc |
index 0c4d066e37895a768142f2491c6e6b1d489ce988..3a085462bfe6d03cd472d0123e7f6303835b4483 100644 |
--- a/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc |
+++ b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc |
@@ -7,6 +7,7 @@ |
#include "cc/surfaces/surface.h" |
#include "cc/surfaces/surface_manager.h" |
#include "content/browser/compositor/surface_utils.h" |
+#include "content/browser/renderer_host/offscreen_canvas_surface_manager.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
namespace content { |
@@ -14,12 +15,15 @@ namespace content { |
OffscreenCanvasCompositorFrameSink::OffscreenCanvasCompositorFrameSink( |
const cc::SurfaceId& surface_id, |
cc::mojom::MojoCompositorFrameSinkClientPtr client) |
- : surface_id_(surface_id), client_(std::move(client)) { |
+ : surface_id_(surface_id), client_(std::move(client)), weak_factory_(this) { |
Fady Samuel
2016/11/11 23:33:16
Don't store this SurfaceId maybe?
Store a const F
xlai (Olivia)
2016/11/14 15:13:19
I'm going to do it in the next CL. Because right n
|
cc::SurfaceManager* manager = GetSurfaceManager(); |
surface_factory_ = base::MakeUnique<cc::SurfaceFactory>( |
surface_id_.frame_sink_id(), manager, this); |
manager->RegisterFrameSinkId(surface_id_.frame_sink_id()); |
surface_factory_->Create(surface_id_.local_frame_id()); |
+ |
+ OffscreenCanvasSurfaceManager::GetInstance() |
+ ->RegisterCompositorFrameSinkInstance(surface_id_.frame_sink_id(), this); |
} |
OffscreenCanvasCompositorFrameSink::~OffscreenCanvasCompositorFrameSink() { |
@@ -32,6 +36,9 @@ OffscreenCanvasCompositorFrameSink::~OffscreenCanvasCompositorFrameSink() { |
manager->InvalidateFrameSinkId(surface_id_.frame_sink_id()); |
} |
surface_factory_->Destroy(surface_id_.local_frame_id()); |
+ |
+ OffscreenCanvasSurfaceManager::GetInstance() |
+ ->UnregisterCompositorFrameSinkInstance(surface_id_.frame_sink_id()); |
} |
// static |