| Index: content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| diff --git a/content/browser/compositor/mus_browser_compositor_output_surface.cc b/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| index 04caf2649e95dfe907c8af1da5a6180b1781b734..344eff29ed93befdfe53d8b77e89613923bb4f28 100644
|
| --- a/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| +++ b/content/browser/compositor/mus_browser_compositor_output_surface.cc
|
| @@ -14,6 +14,7 @@
|
| #include "content/common/gpu/client/context_provider_command_buffer.h"
|
| #include "gpu/command_buffer/client/gles2_interface.h"
|
| #include "gpu/ipc/client/command_buffer_proxy_impl.h"
|
| +#include "services/ui/public/cpp/compositor_frame_sink.h"
|
| #include "services/ui/public/cpp/window.h"
|
| #include "services/ui/public/cpp/window_surface.h"
|
|
|
| @@ -31,8 +32,8 @@ MusBrowserCompositorOutputSurface::MusBrowserCompositorOutputSurface(
|
| begin_frame_source,
|
| std::move(overlay_candidate_validator)),
|
| ui_window_(window) {
|
| - ui_window_surface_ =
|
| - ui_window_->RequestSurface(ui::mojom::SurfaceType::DEFAULT);
|
| + ui_compositor_frame_sink_ = ui_window_->RequestCompositorFrameSink(
|
| + ui::mojom::SurfaceType::DEFAULT, context);
|
| }
|
|
|
| MusBrowserCompositorOutputSurface::~MusBrowserCompositorOutputSurface() {}
|
| @@ -105,15 +106,7 @@ void MusBrowserCompositorOutputSurface::SwapBuffers(
|
| secure_output_only);
|
|
|
| ui_frame.delegated_frame_data->render_pass_list.push_back(std::move(pass));
|
| - // ui_frame_surface_ will be destroyed by MusBrowserCompositorOutputSurface's
|
| - // destructor, and the callback of SubmitCompositorFrame() will not be fired
|
| - // after ui_window_surface_ is destroyed, so it is safe to use
|
| - // base::Unretained(this) here.
|
| - ui_window_surface_->SubmitCompositorFrame(
|
| - std::move(ui_frame),
|
| - base::Bind(&MusBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted,
|
| - base::Unretained(this), std::vector<ui::LatencyInfo>(),
|
| - gfx::SwapResult::SWAP_ACK, nullptr));
|
| + ui_compositor_frame_sink_->SubmitCompositorFrame(std::move(ui_frame));
|
| return;
|
| }
|
|
|
| @@ -121,13 +114,14 @@ bool MusBrowserCompositorOutputSurface::BindToClient(
|
| cc::OutputSurfaceClient* client) {
|
| if (!GpuBrowserCompositorOutputSurface::BindToClient(client))
|
| return false;
|
| - ui_window_surface_->BindToThread();
|
| - ui_window_surface_->set_client(this);
|
| + ui_compositor_frame_sink_->BindToClient(this);
|
| return true;
|
| }
|
|
|
| -void MusBrowserCompositorOutputSurface::OnResourcesReturned(
|
| - ui::WindowSurface* surface,
|
| +void MusBrowserCompositorOutputSurface::SetBeginFrameSource(
|
| + cc::BeginFrameSource* source) {}
|
| +
|
| +void MusBrowserCompositorOutputSurface::ReclaimResources(
|
| const cc::ReturnedResourceArray& resources) {
|
| for (const auto& resource : resources) {
|
| DCHECK_EQ(1, resource.count);
|
| @@ -138,6 +132,28 @@ void MusBrowserCompositorOutputSurface::OnResourcesReturned(
|
| }
|
| }
|
|
|
| +void MusBrowserCompositorOutputSurface::SetTreeActivationCallback(
|
| + const base::Closure& callback) {}
|
| +
|
| +void MusBrowserCompositorOutputSurface::DidReceiveCompositorFrameAck() {
|
| + OnGpuSwapBuffersCompleted(std::vector<ui::LatencyInfo>(),
|
| + gfx::SwapResult::SWAP_ACK, nullptr);
|
| +}
|
| +
|
| +void MusBrowserCompositorOutputSurface::DidLoseCompositorFrameSink() {}
|
| +
|
| +void MusBrowserCompositorOutputSurface::OnDraw(
|
| + const gfx::Transform& transform,
|
| + const gfx::Rect& viewport,
|
| + bool resourceless_software_draw) {}
|
| +
|
| +void MusBrowserCompositorOutputSurface::SetMemoryPolicy(
|
| + const cc::ManagedMemoryPolicy& policy) {}
|
| +
|
| +void MusBrowserCompositorOutputSurface::SetExternalTilePriorityConstraints(
|
| + const gfx::Rect& viewport_rect,
|
| + const gfx::Transform& transform) {}
|
| +
|
| uint32_t MusBrowserCompositorOutputSurface::AllocateResourceId() {
|
| if (!free_resource_ids_.empty()) {
|
| uint32_t id = free_resource_ids_.back();
|
|
|