| Index: content/browser/frame_host/render_widget_host_view_guest.cc
|
| diff --git a/content/browser/frame_host/render_widget_host_view_guest.cc b/content/browser/frame_host/render_widget_host_view_guest.cc
|
| index 2df2d5606cb8f5619d4082ca527f16c2ed1ee5a6..6282765c88fbdf6c7b05dd4c9097193ef48cded5 100644
|
| --- a/content/browser/frame_host/render_widget_host_view_guest.cc
|
| +++ b/content/browser/frame_host/render_widget_host_view_guest.cc
|
| @@ -300,10 +300,22 @@ void RenderWidgetHostViewGuest::OnSwapCompositorFrame(
|
| current_surface_scale_factor_ = scale_factor;
|
| }
|
|
|
| + bool was_null = false;
|
| if (!local_frame_id_.is_valid()) {
|
| local_frame_id_ = id_allocator_->GenerateId();
|
| - surface_factory_->Create(local_frame_id_);
|
| + was_null = true;
|
| + }
|
| +
|
| + cc::SurfaceFactory::DrawCallback ack_callback = base::Bind(
|
| + &RenderWidgetHostViewChildFrame::SurfaceDrawn,
|
| + RenderWidgetHostViewChildFrame::AsWeakPtr(), compositor_frame_sink_id);
|
| + ack_pending_count_++;
|
| + // If this value grows very large, something is going wrong.
|
| + DCHECK(ack_pending_count_ < 1000);
|
| + surface_factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
|
| + ack_callback);
|
|
|
| + if (was_null) {
|
| cc::SurfaceSequence sequence =
|
| cc::SurfaceSequence(frame_sink_id_, next_surface_sequence_++);
|
| // The renderer process will satisfy this dependency when it creates a
|
| @@ -320,16 +332,6 @@ void RenderWidgetHostViewGuest::OnSwapCompositorFrame(
|
| sequence);
|
| }
|
| }
|
| -
|
| - cc::SurfaceFactory::DrawCallback ack_callback = base::Bind(
|
| - &RenderWidgetHostViewChildFrame::SurfaceDrawn,
|
| - RenderWidgetHostViewChildFrame::AsWeakPtr(), compositor_frame_sink_id);
|
| - ack_pending_count_++;
|
| - // If this value grows very large, something is going wrong.
|
| - DCHECK(ack_pending_count_ < 1000);
|
| - surface_factory_->SubmitCompositorFrame(local_frame_id_, std::move(frame),
|
| - ack_callback);
|
| -
|
| ProcessFrameSwappedCallbacks();
|
|
|
| // If after detaching we are sent a frame, we should finish processing it, and
|
|
|