Index: cc/surfaces/compositor_frame_sink_support.cc |
diff --git a/cc/surfaces/compositor_frame_sink_support.cc b/cc/surfaces/compositor_frame_sink_support.cc |
index d28ea4a2d4f536c041f515d37c2f613847f5d114..e898da216bbe2b2f6b18487911df46c57cfa2b36 100644 |
--- a/cc/surfaces/compositor_frame_sink_support.cc |
+++ b/cc/surfaces/compositor_frame_sink_support.cc |
@@ -73,7 +73,12 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame( |
display_->Resize(frame_size); |
} |
} |
+ |
+ uint64_t begin_frame_source_id = frame.metadata.begin_frame_source_id; |
+ uint64_t begin_frame_number = frame.metadata.begin_frame_number; |
+ uint64_t oldest_incorporated_frame = frame.metadata.oldest_incorporated_frame; |
++ack_pending_count_; |
+ |
surface_factory_.SubmitCompositorFrame( |
local_frame_id_, std::move(frame), |
base::Bind(&CompositorFrameSinkSupport::DidReceiveCompositorFrameAck, |
@@ -82,6 +87,17 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame( |
display_->SetLocalFrameId(local_frame_id_, |
frame.metadata.device_scale_factor); |
} |
+ |
+ BeginFrameAck ack(begin_frame_source_id, begin_frame_number, |
+ oldest_incorporated_frame, 0, true); |
+ if (begin_frame_source_) |
+ begin_frame_source_->DidFinishFrame(this, ack); |
+} |
+ |
+void CompositorFrameSinkSupport::BeginFrameDidNotDraw( |
+ const BeginFrameAck& ack) { |
+ if (begin_frame_source_) |
+ begin_frame_source_->DidFinishFrame(this, ack); |
} |
void CompositorFrameSinkSupport::Require(const LocalFrameId& local_frame_id, |