Index: cc/trees/single_thread_proxy.cc |
diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc |
index adc42c986c709f91faab22b566af9a8c996e0329..a5fc90af93d4734416d1edb2af78ff3e114308cc 100644 |
--- a/cc/trees/single_thread_proxy.cc |
+++ b/cc/trees/single_thread_proxy.cc |
@@ -45,7 +45,6 @@ SingleThreadProxy::SingleThreadProxy( |
next_frame_is_newly_committed_frame_(false), |
inside_draw_(false), |
defer_commits_(false), |
- commit_was_deferred_(false), |
commit_requested_(false), |
inside_synchronous_composite_(false), |
output_surface_creation_requested_(false), |
@@ -309,10 +308,7 @@ void SingleThreadProxy::SetDeferCommits(bool defer_commits) { |
TRACE_EVENT_ASYNC_END0("cc", "SingleThreadProxy::SetDeferCommits", this); |
defer_commits_ = defer_commits; |
- if (!defer_commits_ && commit_was_deferred_) { |
- commit_was_deferred_ = false; |
- BeginMainFrame(); |
- } |
+ scheduler_on_impl_thread_->SetDeferCommits(defer_commits); |
} |
bool SingleThreadProxy::CommitRequested() const { |
@@ -668,9 +664,10 @@ void SingleThreadProxy::ScheduledActionSendBeginMainFrame() { |
void SingleThreadProxy::BeginMainFrame() { |
if (defer_commits_) { |
- DCHECK(!commit_was_deferred_); |
- commit_was_deferred_ = true; |
- layer_tree_host_->DidDeferCommit(); |
+ TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit", |
+ TRACE_EVENT_SCOPE_THREAD); |
+ BeginMainFrameAbortedOnImplThread( |
+ CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT); |
return; |
} |