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 011d9a091583d27ac07bb3598771baae74a3fc0a..aaee98b185fe45917a8674898ecb1c93d97ce117 100644 |
--- a/cc/surfaces/compositor_frame_sink_support.cc |
+++ b/cc/surfaces/compositor_frame_sink_support.cc |
@@ -67,7 +67,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, |
@@ -76,6 +81,17 @@ void CompositorFrameSinkSupport::SubmitCompositorFrame( |
display_->SetLocalFrameId(local_frame_id_, |
frame.metadata.device_scale_factor); |
} |
+ |
+ BeginFrameAck ack(begin_frame_source_id, begin_frame_number, true, |
+ oldest_incorporated_frame, 0); |
+ 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::DidReceiveCompositorFrameAck() { |