Index: services/ui/public/cpp/compositor_frame_sink.cc |
diff --git a/services/ui/public/cpp/compositor_frame_sink.cc b/services/ui/public/cpp/compositor_frame_sink.cc |
index d132f8062546b164ad398965739287df04275ce1..ac0aed38a89b7bd3071a06f08ded7cd21d2142a6 100644 |
--- a/services/ui/public/cpp/compositor_frame_sink.cc |
+++ b/services/ui/public/cpp/compositor_frame_sink.cc |
@@ -8,20 +8,16 @@ |
#include "cc/output/compositor_frame.h" |
#include "cc/output/compositor_frame_sink_client.h" |
#include "gpu/ipc/client/gpu_channel_host.h" |
-#include "services/ui/public/cpp/context_provider.h" |
#include "services/ui/public/cpp/gpu_service.h" |
#include "services/ui/public/cpp/window_surface.h" |
namespace ui { |
CompositorFrameSink::CompositorFrameSink( |
- scoped_refptr<gpu::GpuChannelHost> gpu_channel_host, |
+ scoped_refptr<cc::ContextProvider> context_provider, |
std::unique_ptr<ui::WindowSurface> surface) |
- : cc::CompositorFrameSink( |
- make_scoped_refptr(new ContextProvider(std::move(gpu_channel_host))), |
- nullptr), |
- surface_(std::move(surface)) { |
-} |
+ : cc::CompositorFrameSink(std::move(context_provider), nullptr), |
+ surface_(std::move(surface)) {} |
CompositorFrameSink::~CompositorFrameSink() {} |
@@ -49,18 +45,14 @@ void CompositorFrameSink::DetachFromClient() { |
} |
void CompositorFrameSink::SubmitCompositorFrame(cc::CompositorFrame frame) { |
- // CompositorFrameSink owns WindowSurface, and so if CompositorFrameSink is |
- // destroyed then SubmitCompositorFrame's callback will never get called. |
- // Thus, base::Unretained is safe here as |client_| is valid as long as |this| |
- // is. |
- surface_->SubmitCompositorFrame( |
- std::move(frame), |
- base::Bind(&cc::CompositorFrameSinkClient::DidReceiveCompositorFrameAck, |
- base::Unretained(client_))); |
+ surface_->SubmitCompositorFrame(std::move(frame)); |
+} |
+ |
+void CompositorFrameSink::DidReceiveCompositorFrameAck() { |
+ client_->DidReceiveCompositorFrameAck(); |
} |
-void CompositorFrameSink::OnResourcesReturned( |
- ui::WindowSurface* surface, |
+void CompositorFrameSink::ReclaimResources( |
const cc::ReturnedResourceArray& resources) { |
client_->ReclaimResources(resources); |
} |