Chromium Code Reviews| Index: content/renderer/gpu/renderer_compositor_frame_sink.cc |
| diff --git a/content/renderer/gpu/renderer_compositor_frame_sink.cc b/content/renderer/gpu/renderer_compositor_frame_sink.cc |
| index 9e7dd13124f220c16f1bbf758a90b1a1cea93021..d5fe62dbed0df9af49a4b6b7748da9652a1c1c52 100644 |
| --- a/content/renderer/gpu/renderer_compositor_frame_sink.cc |
| +++ b/content/renderer/gpu/renderer_compositor_frame_sink.cc |
| @@ -36,19 +36,18 @@ RendererCompositorFrameSink::RendererCompositorFrameSink( |
| cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info, |
| cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request, |
| scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue) |
|
Fady Samuel
2017/05/26 12:00:18
why do we hold on to this if we don't use it anymo
Saman Sami
2017/05/26 14:32:36
Good catch. Let me get rid of this in a separate C
|
| - : CompositorFrameSink(std::move(context_provider), |
| - std::move(worker_context_provider), |
| - gpu_memory_buffer_manager, |
| - shared_bitmap_manager), |
| + : ClientCompositorFrameSink(std::move(context_provider), |
| + std::move(worker_context_provider), |
| + gpu_memory_buffer_manager, |
| + shared_bitmap_manager, |
| + std::move(synthetic_begin_frame_source), |
| + std::move(sink_info), |
| + std::move(sink_client_request), |
| + false /* enable_surface_synchronization */), |
| compositor_frame_sink_filter_( |
| RenderThreadImpl::current()->compositor_message_filter()), |
| message_sender_(RenderThreadImpl::current()->sync_message_filter()), |
| frame_swap_message_queue_(swap_frame_message_queue), |
| - synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)), |
| - external_begin_frame_source_( |
| - synthetic_begin_frame_source_ |
| - ? nullptr |
| - : base::MakeUnique<cc::ExternalBeginFrameSource>(this)), |
| routing_id_(routing_id), |
| sink_info_(std::move(sink_info)), |
| sink_client_request_(std::move(sink_client_request)), |
| @@ -56,7 +55,6 @@ RendererCompositorFrameSink::RendererCompositorFrameSink( |
| DCHECK(compositor_frame_sink_filter_); |
| DCHECK(frame_swap_message_queue_); |
| DCHECK(message_sender_); |
| - thread_checker_.DetachFromThread(); |
| } |
| RendererCompositorFrameSink::RendererCompositorFrameSink( |
| @@ -66,16 +64,15 @@ RendererCompositorFrameSink::RendererCompositorFrameSink( |
| cc::mojom::MojoCompositorFrameSinkPtrInfo sink_info, |
| cc::mojom::MojoCompositorFrameSinkClientRequest sink_client_request, |
| scoped_refptr<FrameSwapMessageQueue> swap_frame_message_queue) |
| - : CompositorFrameSink(std::move(vulkan_context_provider)), |
| + : ClientCompositorFrameSink(std::move(vulkan_context_provider), |
| + std::move(synthetic_begin_frame_source), |
| + std::move(sink_info), |
| + std::move(sink_client_request), |
| + false /* enable_surface_synchronization */), |
| compositor_frame_sink_filter_( |
| RenderThreadImpl::current()->compositor_message_filter()), |
| message_sender_(RenderThreadImpl::current()->sync_message_filter()), |
| frame_swap_message_queue_(swap_frame_message_queue), |
| - synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)), |
| - external_begin_frame_source_( |
| - synthetic_begin_frame_source_ |
| - ? nullptr |
| - : base::MakeUnique<cc::ExternalBeginFrameSource>(this)), |
| routing_id_(routing_id), |
| sink_info_(std::move(sink_info)), |
| sink_client_request_(std::move(sink_client_request)), |
| @@ -83,47 +80,30 @@ RendererCompositorFrameSink::RendererCompositorFrameSink( |
| DCHECK(compositor_frame_sink_filter_); |
| DCHECK(frame_swap_message_queue_); |
| DCHECK(message_sender_); |
| - thread_checker_.DetachFromThread(); |
| } |
| RendererCompositorFrameSink::~RendererCompositorFrameSink() = default; |
| bool RendererCompositorFrameSink::BindToClient( |
| cc::CompositorFrameSinkClient* client) { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| - if (!cc::CompositorFrameSink::BindToClient(client)) |
| + if (!ui::ClientCompositorFrameSink::BindToClient(client)) |
| return false; |
| - sink_.Bind(std::move(sink_info_)); |
| - sink_client_binding_.Bind(std::move(sink_client_request_)); |
| - |
| - if (synthetic_begin_frame_source_) |
| - client_->SetBeginFrameSource(synthetic_begin_frame_source_.get()); |
| - else |
| - client_->SetBeginFrameSource(external_begin_frame_source_.get()); |
| - |
| compositor_frame_sink_proxy_ = new RendererCompositorFrameSinkProxy(this); |
| compositor_frame_sink_filter_handler_ = |
| base::Bind(&RendererCompositorFrameSinkProxy::OnMessageReceived, |
| compositor_frame_sink_proxy_); |
| compositor_frame_sink_filter_->AddHandlerOnCompositorThread( |
| routing_id_, compositor_frame_sink_filter_handler_); |
| + |
| return true; |
| } |
| void RendererCompositorFrameSink::DetachFromClient() { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| - client_->SetBeginFrameSource(nullptr); |
| - // Destroy the begin frame source on the same thread it was bound on. |
| - // The CompositorFrameSink itself is destroyed on the main thread. |
| - external_begin_frame_source_ = nullptr; |
| - synthetic_begin_frame_source_ = nullptr; |
| compositor_frame_sink_proxy_->ClearCompositorFrameSink(); |
| compositor_frame_sink_filter_->RemoveHandlerOnCompositorThread( |
| routing_id_, compositor_frame_sink_filter_handler_); |
| - sink_.reset(); |
| - sink_client_binding_.Close(); |
| - cc::CompositorFrameSink::DetachFromClient(); |
| + ui::ClientCompositorFrameSink::DetachFromClient(); |
| } |
| void RendererCompositorFrameSink::SubmitCompositorFrame( |
| @@ -152,7 +132,7 @@ void RendererCompositorFrameSink::SubmitCompositorFrame( |
| if (!messages_to_send.empty()) |
| frame_token = frame_swap_message_queue_->AllocateFrameToken(); |
| frame.metadata.frame_token = frame_token; |
| - sink_->SubmitCompositorFrame(local_surface_id_, std::move(frame)); |
| + sink()->SubmitCompositorFrame(local_surface_id_, std::move(frame)); |
| if (frame_token) { |
| message_sender_->Send(new ViewHostMsg_FrameSwapMessages( |
| routing_id_, frame_token, messages_to_send)); |
| @@ -161,16 +141,8 @@ void RendererCompositorFrameSink::SubmitCompositorFrame( |
| } |
| } |
| -void RendererCompositorFrameSink::DidNotProduceFrame( |
| - const cc::BeginFrameAck& ack) { |
| - DCHECK(!ack.has_damage); |
| - DCHECK_LE(cc::BeginFrameArgs::kStartingFrameNumber, ack.sequence_number); |
| - sink_->DidNotProduceFrame(ack); |
| -} |
| - |
| void RendererCompositorFrameSink::OnMessageReceived( |
| const IPC::Message& message) { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| IPC_BEGIN_MESSAGE_MAP(RendererCompositorFrameSink, message) |
| IPC_MESSAGE_HANDLER(ViewMsg_BeginFrame, OnBeginFrameIPC) |
| IPC_END_MESSAGE_MAP() |
| @@ -178,14 +150,7 @@ void RendererCompositorFrameSink::OnMessageReceived( |
| void RendererCompositorFrameSink::OnBeginFrameIPC( |
| const cc::BeginFrameArgs& args) { |
| - if (external_begin_frame_source_) |
| - external_begin_frame_source_->OnBeginFrame(args); |
| -} |
| - |
| -void RendererCompositorFrameSink::DidReceiveCompositorFrameAck( |
| - const cc::ReturnedResourceArray& resources) { |
| - ReclaimResources(resources); |
| - client_->DidReceiveCompositorFrameAck(); |
| + ui::ClientCompositorFrameSink::OnBeginFrame(args); |
| } |
| void RendererCompositorFrameSink::OnBeginFrame(const cc::BeginFrameArgs& args) { |
| @@ -193,13 +158,4 @@ void RendererCompositorFrameSink::OnBeginFrame(const cc::BeginFrameArgs& args) { |
| NOTREACHED() << "BeginFrames are delivered using Chrome IPC."; |
| } |
| -void RendererCompositorFrameSink::ReclaimResources( |
| - const cc::ReturnedResourceArray& resources) { |
| - client_->ReclaimResources(resources); |
| -} |
| - |
| -void RendererCompositorFrameSink::OnNeedsBeginFrames(bool needs_begin_frames) { |
| - sink_->SetNeedsBeginFrame(needs_begin_frames); |
| -} |
| - |
| } // namespace content |