Index: components/exo/surface.cc |
diff --git a/components/exo/surface.cc b/components/exo/surface.cc |
index bdcd746536ddccae9d57dc5d578742f4868d6c1b..049c3c6070378bf1512e0e5a437d23e41ccb0de0 100644 |
--- a/components/exo/surface.cc |
+++ b/components/exo/surface.cc |
@@ -838,7 +838,17 @@ void Surface::UpdateSurface(bool full_damage) { |
quad_state->opacity = state_.alpha; |
cc::CompositorFrame frame; |
- current_begin_frame_ack_.has_damage = true; |
+ // If we commit while we don't have an active BeginFrame, we acknowledge a |
+ // manual one. |
+ if (current_begin_frame_ack_.sequence_number == |
+ cc::BeginFrameArgs::kInvalidFrameNumber) { |
+ current_begin_frame_ack_ = |
+ cc::BeginFrameAck(cc::BeginFrameArgs::kManualSourceId, |
+ cc::BeginFrameArgs::kStartingFrameNumber, |
+ cc::BeginFrameArgs::kStartingFrameNumber, 0, true); |
+ } else { |
+ current_begin_frame_ack_.has_damage = true; |
+ } |
frame.metadata.begin_frame_ack = current_begin_frame_ack_; |
if (current_resource_.id) { |