| Index: cc/trees/single_thread_proxy.cc
|
| diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc
|
| index 21c9d604e5ec1aa613207fcf84706d4d8a9914ab..488bba48a445c84c966349def4a8340cfa25ac8d 100644
|
| --- a/cc/trees/single_thread_proxy.cc
|
| +++ b/cc/trees/single_thread_proxy.cc
|
| @@ -45,6 +45,7 @@
|
| 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),
|
| @@ -311,7 +312,10 @@
|
| TRACE_EVENT_ASYNC_END0("cc", "SingleThreadProxy::SetDeferCommits", this);
|
|
|
| defer_commits_ = defer_commits;
|
| - scheduler_on_impl_thread_->SetDeferCommits(defer_commits);
|
| + if (!defer_commits_ && commit_was_deferred_) {
|
| + commit_was_deferred_ = false;
|
| + BeginMainFrame();
|
| + }
|
| }
|
|
|
| bool SingleThreadProxy::CommitRequested() const {
|
| @@ -672,10 +676,9 @@
|
|
|
| void SingleThreadProxy::BeginMainFrame() {
|
| if (defer_commits_) {
|
| - TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit",
|
| - TRACE_EVENT_SCOPE_THREAD);
|
| - BeginMainFrameAbortedOnImplThread(
|
| - CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT);
|
| + DCHECK(!commit_was_deferred_);
|
| + commit_was_deferred_ = true;
|
| + layer_tree_host_->DidDeferCommit();
|
| return;
|
| }
|
|
|
|
|