Index: cc/trees/single_thread_proxy.cc |
diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc |
index 901f3960729c2a543c0b90ee61a57cf874741628..6ac3ae14b92b7e691cad806110e15b4ad66fc64d 100644 |
--- a/cc/trees/single_thread_proxy.cc |
+++ b/cc/trees/single_thread_proxy.cc |
@@ -289,16 +289,17 @@ void SingleThreadProxy::Stop() { |
DebugScopedSetMainThreadBlocked main_thread_blocked(task_runner_provider_); |
DebugScopedSetImplThread impl(task_runner_provider_); |
+ // Prevent the scheduler from performing actions while we're in an |
+ // inconsistent state. |
+ if (scheduler_on_impl_thread_) |
+ scheduler_on_impl_thread_->Stop(); |
// Take away the CompositorFrameSink before destroying things so it doesn't |
// try to call into its client mid-shutdown. |
layer_tree_host_impl_->ReleaseCompositorFrameSink(); |
- |
- BlockingTaskRunner::CapturePostTasks blocked( |
- task_runner_provider_->blocking_main_thread_task_runner()); |
scheduler_on_impl_thread_ = nullptr; |
layer_tree_host_impl_ = nullptr; |
} |
- layer_tree_host_ = NULL; |
+ layer_tree_host_ = nullptr; |
} |
void SingleThreadProxy::SetMutator(std::unique_ptr<LayerTreeMutator> mutator) { |