Index: services/ui/ws/display_client_compositor_frame_sink.cc |
diff --git a/services/ui/ws/display_client_compositor_frame_sink.cc b/services/ui/ws/display_client_compositor_frame_sink.cc |
index 5d719fa1dab4290c2bcdd7c33ffca4ff8adfccf4..01c16fc804b90d1ce25db1f32c6ebec8e6283da3 100644 |
--- a/services/ui/ws/display_client_compositor_frame_sink.cc |
+++ b/services/ui/ws/display_client_compositor_frame_sink.cc |
@@ -48,6 +48,9 @@ void DisplayClientCompositorFrameSink::SubmitCompositorFrame( |
if (!compositor_frame_sink_) |
return; |
+ DCHECK_LE(cc::BeginFrameArgs::kStartingFrameNumber, |
+ frame.metadata.begin_frame_ack.sequence_number); |
+ |
gfx::Size frame_size = last_submitted_frame_size_; |
if (!frame.render_pass_list.empty()) |
frame_size = frame.render_pass_list.back()->output_rect.size(); |
@@ -99,7 +102,9 @@ void DisplayClientCompositorFrameSink::OnNeedsBeginFrames( |
void DisplayClientCompositorFrameSink::OnDidFinishFrame( |
const cc::BeginFrameAck& ack) { |
- // TODO(eseckler): Pass on the ack to compositor_frame_sink_. |
+ // If there was damage, the submitted CompositorFrame includes the ack. |
+ if (!ack.has_damage) |
+ compositor_frame_sink_->BeginFrameDidNotSwap(ack); |
} |
} // namespace ws |