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 70b93ae08e9f8ddb6a36c3e7d02eae4367211681..07ae8175c5d18632fa3afb0c2228e822117d4d6c 100644 |
--- a/content/browser/compositor/delegated_frame_host.cc |
+++ b/content/browser/compositor/delegated_frame_host.cc |
@@ -433,11 +433,8 @@ void DelegatedFrameHost::SwapDelegatedFrame( |
current_frame_size_in_dip_ = frame_size_in_dip; |
CheckResizeLock(); |
- if (modified_layers && !damage_rect_in_dip.IsEmpty()) { |
- // TODO(jbauman): Need to always tell the window observer about the |
- // damage. |
+ if (!damage_rect_in_dip.IsEmpty()) |
client_->GetLayer()->OnDelegatedFrameDamage(damage_rect_in_dip); |
- } |
pending_delegated_ack_count_++; |
@@ -457,6 +454,8 @@ void DelegatedFrameHost::SwapDelegatedFrame( |
base::Bind(&DelegatedFrameHost::SendDelegatedFrameAck, |
AsWeakPtr(), |
output_surface_id)); |
+ } else { |
+ AddOnCommitCallbackAndDisableLocks(base::Closure()); |
} |
DidReceiveFrameFromRenderer(damage_rect); |
if (frame_provider_.get() || !surface_id_.is_null()) |
@@ -939,7 +938,8 @@ void DelegatedFrameHost::AddOnCommitCallbackAndDisableLocks( |
compositor->AddObserver(this); |
can_lock_compositor_ = NO_PENDING_COMMIT; |
- on_compositing_did_commit_callbacks_.push_back(callback); |
+ if (!callback.is_null()) |
+ on_compositing_did_commit_callbacks_.push_back(callback); |
} |
void DelegatedFrameHost::AddedToWindow() { |