Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index fbc4a820f982496949dce7d3040f3a0518f703c4..587547f8d6b7299468a707ba7c263e7b4c42f1b4 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -2553,8 +2553,14 @@ void LayerTreeHostImpl::AnimateTopControls(base::TimeTicks time) { |
UpdateMaxScrollOffset(); |
if (RootScrollLayer()->TotalScrollOffset().y() == 0.f) |
return; |
- RootScrollLayer()->ScrollBy(gfx::ScaleVector2d( |
- scroll, 1.f / active_tree_->total_page_scale_factor())); |
+ if (scroll.IsZero()) { |
+ // This may happen on the first animation step. Force redraw otherwise |
+ // the animation would stop because of no new frames. |
+ SetNeedsRedraw(); |
+ } else { |
+ RootScrollLayer()->ScrollBy(gfx::ScaleVector2d( |
+ scroll, 1.f / active_tree_->total_page_scale_factor())); |
+ } |
} |
void LayerTreeHostImpl::AnimateLayers(base::TimeTicks monotonic_time, |