Index: content/browser/renderer_host/render_widget_host_view_android.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
index 6ed389874e60ad69ec852668995aa31df13d0745..7bed642cab83da1fd6fb46d3a60aac7b0b755ac9 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -1052,7 +1052,7 @@ void RenderWidgetHostViewAndroid::RemoveLayers() { |
} |
void RenderWidgetHostViewAndroid::SetNeedsAnimate() { |
- content_view_core_->GetWindowAndroid()->RequestVSyncUpdate(); |
+ content_view_core_->GetWindowAndroid()->SetNeedsAnimate(); |
} |
bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { |
@@ -1337,12 +1337,15 @@ void RenderWidgetHostViewAndroid::OnVSync(base::TimeTicks frame_time, |
host_->GetRoutingID(), |
cc::BeginFrameArgs::Create(frame_time, deadline, vsync_period))); |
- // TODO(sievers): This should use the LayerTreeHostClient callback |
- bool needs_animate = Animate(frame_time); |
- if (needs_begin_frame_ || needs_animate) |
+ if (needs_begin_frame_) |
content_view_core_->GetWindowAndroid()->RequestVSyncUpdate(); |
} |
+void RenderWidgetHostViewAndroid::OnAnimate(base::TimeTicks frame_begin_time) { |
+ if (Animate(frame_begin_time)) |
+ SetNeedsAnimate(); |
+} |
+ |
void RenderWidgetHostViewAndroid::OnLostResources() { |
ReleaseLocksOnSurface(); |
if (layer_.get()) |