| 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 34%
|
| 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..9d578ada2b519faf90d8e4ee2fddee75b94e9e80 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,20 @@ 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) {
|
| + // TODO(kylechar): Add test for bad |frame_sink_id|.
|
| + auto* manager = OffscreenCanvasCompositorFrameSinkManager::GetInstance();
|
| + auto* surface_impl = manager->GetSurfaceInstance(frame_sink_id);
|
| + if (!surface_impl) {
|
| + DLOG(ERROR) << "No OffscreenCanvasSurfaceImpl for " << frame_sink_id;
|
| + return;
|
| + }
|
| +
|
| + surface_impl->CreateCompositorFrameSink(std::move(client),
|
| + std::move(request));
|
| +}
|
| +
|
| } // namespace content
|
|
|