| Index: cc/trees/thread_proxy.cc
|
| diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
|
| index 329b3e824d781a74034ce8f2e1208837084f54e5..88f1314c6d1c39bb4cba32910a81642a725cdeeb 100644
|
| --- a/cc/trees/thread_proxy.cc
|
| +++ b/cc/trees/thread_proxy.cc
|
| @@ -9,9 +9,9 @@
|
|
|
| #include "base/auto_reset.h"
|
| #include "base/bind.h"
|
| -#include "base/debug/trace_event.h"
|
| -#include "base/debug/trace_event_argument.h"
|
| -#include "base/debug/trace_event_synthetic_delay.h"
|
| +#include "base/trace_event/trace_event.h"
|
| +#include "base/trace_event/trace_event_argument.h"
|
| +#include "base/trace_event/trace_event_synthetic_delay.h"
|
| #include "cc/base/swap_promise.h"
|
| #include "cc/debug/benchmark_instrumentation.h"
|
| #include "cc/debug/devtools_instrumentation.h"
|
| @@ -452,13 +452,16 @@ void ThreadProxy::SetDeferCommits(bool defer_commits) {
|
| else
|
| TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::SetDeferCommits", this);
|
|
|
| - if (!main().defer_commits && main().pending_deferred_commit) {
|
| - Proxy::MainThreadTaskRunner()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&ThreadProxy::BeginMainFrame,
|
| - main_thread_weak_ptr_,
|
| - base::Passed(&main().pending_deferred_commit)));
|
| - }
|
| + Proxy::ImplThreadTaskRunner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&ThreadProxy::SetDeferCommitsOnImplThread,
|
| + impl_thread_weak_ptr_,
|
| + defer_commits));
|
| +}
|
| +
|
| +void ThreadProxy::SetDeferCommitsOnImplThread(bool defer_commits) const {
|
| + DCHECK(IsImplThread());
|
| + impl().scheduler->SetDeferCommits(defer_commits);
|
| }
|
|
|
| bool ThreadProxy::CommitRequested() const {
|
| @@ -701,10 +704,12 @@ void ThreadProxy::BeginMainFrame(
|
| DCHECK(IsMainThread());
|
|
|
| if (main().defer_commits) {
|
| - main().pending_deferred_commit = begin_main_frame_state.Pass();
|
| - layer_tree_host()->DidDeferCommit();
|
| - TRACE_EVENT_INSTANT0(
|
| - "cc", "EarlyOut_DeferCommits", TRACE_EVENT_SCOPE_THREAD);
|
| + TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit",
|
| + TRACE_EVENT_SCOPE_THREAD);
|
| + Proxy::ImplThreadTaskRunner()->PostTask(
|
| + FROM_HERE, base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread,
|
| + impl_thread_weak_ptr_,
|
| + CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT));
|
| return;
|
| }
|
|
|
|
|