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; |
} |