Index: android_webview/browser/hardware_renderer.cc |
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc |
index b4cc30fe769a9390e190ba1a674b6aa5acc8618f..655dd44415b2571f754198a59bf6af2e24ddbe66 100644 |
--- a/android_webview/browser/hardware_renderer.cc |
+++ b/android_webview/browser/hardware_renderer.cc |
@@ -167,7 +167,11 @@ void HardwareRenderer::DestroySurface() { |
DCHECK(child_id_.is_valid()); |
// Submit an empty frame to force any existing resources to be returned. |
- support_->SubmitCompositorFrame(child_id_, cc::CompositorFrame()); |
+ cc::CompositorFrame frame; |
+ // We submit without a prior BeginFrame, so acknowledge a manual BeginFrame. |
+ frame.metadata.begin_frame_ack = |
+ cc::BeginFrameAck::CreateManualAckWithDamage(); |
+ support_->SubmitCompositorFrame(child_id_, std::move(frame)); |
surfaces_->RemoveChildId(cc::SurfaceId(frame_sink_id_, child_id_)); |
support_->EvictFrame(); |
child_id_ = cc::LocalSurfaceId(); |