Index: content/browser/compositor/delegated_frame_host.cc |
diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc |
index 8f362de8572e5cdd534aa4b8e947df9c4760abd4..0fb665771107286d2e7998bd7ea91318b81ba0e5 100644 |
--- a/content/browser/compositor/delegated_frame_host.cc |
+++ b/content/browser/compositor/delegated_frame_host.cc |
@@ -376,7 +376,7 @@ |
} |
last_output_surface_id_ = output_surface_id; |
} |
- bool skip_frame_size_mismatch = false; |
+ bool immediate_ack = !compositor_; |
pending_delegated_ack_count_++; |
if (frame_size.IsEmpty()) { |
@@ -418,10 +418,10 @@ |
gfx::Size desired_size = client_->DelegatedFrameHostDesiredSizeInDIP(); |
if (desired_size != frame_size_in_dip && !desired_size.IsEmpty()) |
- skip_frame_size_mismatch = true; |
+ immediate_ack = true; |
cc::SurfaceFactory::DrawCallback ack_callback; |
- if (compositor_ && !skip_frame_size_mismatch) { |
+ if (compositor_ && !immediate_ack) { |
ack_callback = base::Bind(&DelegatedFrameHost::SurfaceDrawn, |
AsWeakPtr(), output_surface_id); |
} |
@@ -457,9 +457,7 @@ |
client_->DelegatedFrameHostGetLayer()->OnDelegatedFrameDamage( |
damage_rect_in_dip); |
- // Note that |compositor_| may be reset by SetShowSurface or |
- // SetShowDelegatedContent above. |
- if (!compositor_ || skip_frame_size_mismatch) { |
+ if (immediate_ack) { |
SendDelegatedFrameAck(output_surface_id); |
} else if (!use_surfaces_) { |
std::vector<ui::LatencyInfo>::const_iterator it; |