Chromium Code Reviews| Index: content/browser/renderer_host/offscreen_canvas_provider_impl.cc |
| diff --git a/content/browser/renderer_host/offscreen_canvas_surface_factory_impl.cc b/content/browser/renderer_host/offscreen_canvas_provider_impl.cc |
| similarity index 36% |
| rename from content/browser/renderer_host/offscreen_canvas_surface_factory_impl.cc |
| rename to content/browser/renderer_host/offscreen_canvas_provider_impl.cc |
| index 8d101f19d6ae71c9cf0d5ecc9d8a608a8bbeff7c..58c3cdc4f94ab3ae279787bcdf7c95644e809270 100644 |
| --- a/content/browser/renderer_host/offscreen_canvas_surface_factory_impl.cc |
| +++ b/content/browser/renderer_host/offscreen_canvas_provider_impl.cc |
| @@ -2,23 +2,24 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "content/browser/renderer_host/offscreen_canvas_surface_factory_impl.h" |
| +#include "content/browser/renderer_host/offscreen_canvas_provider_impl.h" |
| -#include "base/memory/ptr_util.h" |
| -#include "cc/surfaces/frame_sink_id.h" |
| +#include "content/browser/compositor/surface_utils.h" |
| +#include "content/browser/renderer_host/offscreen_canvas_compositor_frame_sink_manager.h" |
| #include "content/browser/renderer_host/offscreen_canvas_surface_impl.h" |
| -#include "mojo/public/cpp/bindings/strong_binding.h" |
| namespace content { |
| -// static |
| -void OffscreenCanvasSurfaceFactoryImpl::Create( |
| - blink::mojom::OffscreenCanvasSurfaceFactoryRequest request) { |
| - mojo::MakeStrongBinding(base::MakeUnique<OffscreenCanvasSurfaceFactoryImpl>(), |
| - std::move(request)); |
| +OffscreenCanvasProviderImpl::OffscreenCanvasProviderImpl() = default; |
| + |
| +OffscreenCanvasProviderImpl::~OffscreenCanvasProviderImpl() = default; |
| + |
| +void OffscreenCanvasProviderImpl::Add( |
| + blink::mojom::OffscreenCanvasProviderRequest request) { |
| + bindings_.AddBinding(this, std::move(request)); |
| } |
| -void OffscreenCanvasSurfaceFactoryImpl::CreateOffscreenCanvasSurface( |
| +void OffscreenCanvasProviderImpl::CreateOffscreenCanvasSurface( |
| const cc::FrameSinkId& parent_frame_sink_id, |
| const cc::FrameSinkId& frame_sink_id, |
| cc::mojom::FrameSinkManagerClientPtr client, |
| @@ -27,4 +28,19 @@ void OffscreenCanvasSurfaceFactoryImpl::CreateOffscreenCanvasSurface( |
| std::move(client), std::move(request)); |
| } |
| +void OffscreenCanvasProviderImpl::CreateCompositorFrameSink( |
| + const cc::FrameSinkId& frame_sink_id, |
| + cc::mojom::MojoCompositorFrameSinkClientPtr client, |
| + cc::mojom::MojoCompositorFrameSinkRequest request) { |
| + auto* manager = OffscreenCanvasCompositorFrameSinkManager::GetInstance(); |
| + auto* surface_impl = manager->GetSurfaceInstance(frame_sink_id); |
| + if (!surface_impl) { |
| + NOTREACHED(); |
|
piman
2017/04/12 19:07:43
nit: not NOTREACHED(). It can be reached. Ideally
kylechar
2017/04/12 21:06:28
Done.
|
| + return; |
| + } |
| + |
| + surface_impl->CreateCompositorFrameSink(std::move(client), |
| + std::move(request)); |
| +} |
| + |
| } // namespace content |