Index: content/browser/renderer_host/offscreen_canvas_surface_impl.cc |
diff --git a/content/browser/renderer_host/offscreen_canvas_surface_impl.cc b/content/browser/renderer_host/offscreen_canvas_surface_impl.cc |
index a3ed311c56208e9f6d41b047c5e5050c91db9f16..7fd14414decfc3f74175ee858f0bd08295c9a53c 100644 |
--- a/content/browser/renderer_host/offscreen_canvas_surface_impl.cc |
+++ b/content/browser/renderer_host/offscreen_canvas_surface_impl.cc |
@@ -9,20 +9,12 @@ |
#include "cc/surfaces/surface_manager.h" |
#include "content/browser/compositor/surface_utils.h" |
#include "content/public/browser/browser_thread.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
namespace content { |
-// static |
-void OffscreenCanvasSurfaceImpl::Create( |
- mojo::InterfaceRequest<blink::mojom::OffscreenCanvasSurface> request) { |
- // |binding_| will take ownership of OffscreenCanvasSurfaceImpl |
- new OffscreenCanvasSurfaceImpl(std::move(request)); |
-} |
- |
-OffscreenCanvasSurfaceImpl::OffscreenCanvasSurfaceImpl( |
- mojo::InterfaceRequest<blink::mojom::OffscreenCanvasSurface> request) |
- : id_allocator_(new cc::SurfaceIdAllocator(AllocateSurfaceClientId())), |
- binding_(this, std::move(request)) { |
+OffscreenCanvasSurfaceImpl::OffscreenCanvasSurfaceImpl() |
+ : id_allocator_(new cc::SurfaceIdAllocator(AllocateSurfaceClientId())) { |
GetSurfaceManager()->RegisterSurfaceClientId(id_allocator_->client_id()); |
} |
@@ -38,6 +30,13 @@ OffscreenCanvasSurfaceImpl::~OffscreenCanvasSurfaceImpl() { |
surface_factory_->Destroy(surface_id_); |
} |
+// static |
+void OffscreenCanvasSurfaceImpl::Create( |
+ mojo::InterfaceRequest<blink::mojom::OffscreenCanvasSurface> request) { |
+ mojo::MakeStrongBinding(base::MakeUnique<OffscreenCanvasSurfaceImpl>(), |
+ std::move(request)); |
+} |
+ |
void OffscreenCanvasSurfaceImpl::GetSurfaceId( |
const GetSurfaceIdCallback& callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |