| Index: cc/trees/single_thread_proxy.cc | 
| diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc | 
| index 56d244c41301e10ff3c18394a554b065c8519501..dfce8088d18ac248bfef847f62a4ac35231bc3ac 100644 | 
| --- a/cc/trees/single_thread_proxy.cc | 
| +++ b/cc/trees/single_thread_proxy.cc | 
| @@ -90,7 +90,6 @@ | 
| if (layer_tree_host_->settings().single_thread_proxy_scheduler && | 
| !scheduler_on_impl_thread_) { | 
| SchedulerSettings scheduler_settings(layer_tree_host_->settings()); | 
| -    // SingleThreadProxy should run in main thread low latency mode. | 
| scheduler_settings.main_thread_should_always_be_low_latency = true; | 
| scheduler_on_impl_thread_ = | 
| Scheduler::Create(this, | 
| @@ -427,10 +426,13 @@ | 
| // the pending tree is not actually ready in the SingleThreadProxy. | 
| layer_tree_host_impl_->SetRequiresHighResToDraw(); | 
|  | 
| -    // Synchronously call to CommitComplete. Resetting | 
| -    // |commit_blocking_task_runner| would make sure all tasks posted during | 
| -    // commit/activation before CommitComplete. | 
| -    CommitComplete(); | 
| +    // Since activation could cause tasks to run, post CommitComplete | 
| +    // separately so that it runs after these tasks.  This is the loose | 
| +    // equivalent of blocking commit until activation and also running | 
| +    // all tasks posted during commit/activation before CommitComplete. | 
| +    MainThreadTaskRunner()->PostTask( | 
| +        FROM_HERE, base::Bind(&SingleThreadProxy::CommitComplete, | 
| +                              weak_factory_.GetWeakPtr())); | 
| } | 
|  | 
| timing_history_.DidActivateSyncTree(); | 
|  |