| 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 f7be1192269ac5b8b6a0907349fd781b5c732225..9e7dd13124f220c16f1bbf758a90b1a1cea93021 100644
|
| --- a/content/renderer/gpu/renderer_compositor_frame_sink.cc
|
| +++ b/content/renderer/gpu/renderer_compositor_frame_sink.cc
|
| @@ -140,7 +140,25 @@
|
| current_surface_properties_ = new_surface_properties;
|
| }
|
|
|
| - sink_->SubmitCompositorFrame(local_surface_id_, std::move(frame));
|
| + {
|
| + std::unique_ptr<FrameSwapMessageQueue::SendMessageScope>
|
| + send_message_scope =
|
| + frame_swap_message_queue_->AcquireSendMessageScope();
|
| + std::vector<std::unique_ptr<IPC::Message>> messages;
|
| + frame_swap_message_queue_->DrainMessages(&messages);
|
| + std::vector<IPC::Message> messages_to_send;
|
| + FrameSwapMessageQueue::TransferMessages(&messages, &messages_to_send);
|
| + uint32_t frame_token = 0;
|
| + 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));
|
| + if (frame_token) {
|
| + message_sender_->Send(new ViewHostMsg_FrameSwapMessages(
|
| + routing_id_, frame_token, messages_to_send));
|
| + }
|
| + // ~send_message_scope.
|
| + }
|
| }
|
|
|
| void RendererCompositorFrameSink::DidNotProduceFrame(
|
|
|