| Index: cc/trees/thread_proxy.cc
|
| diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc
|
| index 93b4c65f5fa19e7b1e358462cd93ca4489b7e43c..57837096ee9bc92988dbe65d68391dfe830b16d1 100644
|
| --- a/cc/trees/thread_proxy.cc
|
| +++ b/cc/trees/thread_proxy.cc
|
| @@ -108,6 +108,7 @@
|
| inside_draw(false),
|
| input_throttled_until_commit(false),
|
| animations_frozen_until_next_draw(false),
|
| + did_commit_after_animating(false),
|
| smoothness_priority_expiration_notifier(
|
| proxy->ImplThreadTaskRunner(),
|
| base::Bind(&ThreadProxy::RenewTreePriority, base::Unretained(proxy)),
|
| @@ -943,6 +944,7 @@
|
| impl().layer_tree_host_impl->CurrentBeginFrameArgs().frame_time;
|
| }
|
| impl().layer_tree_host_impl->Animate(impl().animation_time);
|
| + impl().did_commit_after_animating = false;
|
| }
|
|
|
| void ThreadProxy::ScheduledActionCommit() {
|
| @@ -960,6 +962,7 @@
|
| impl().animation_time = std::max(
|
| impl().animation_time, blocked_main().last_monotonic_frame_begin_time);
|
| }
|
| + impl().did_commit_after_animating = true;
|
|
|
| blocked_main().main_thread_inside_commit = true;
|
| impl().layer_tree_host_impl->BeginCommit();
|
| @@ -1027,6 +1030,11 @@
|
|
|
| impl().timing_history.DidStartDrawing();
|
| base::AutoReset<bool> mark_inside(&impl().inside_draw, true);
|
| +
|
| + if (impl().did_commit_after_animating) {
|
| + impl().layer_tree_host_impl->Animate(impl().animation_time);
|
| + impl().did_commit_after_animating = false;
|
| + }
|
|
|
| if (impl().layer_tree_host_impl->pending_tree())
|
| impl().layer_tree_host_impl->pending_tree()->UpdateDrawProperties();
|
|
|