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 47309d4420e11b2bbe41e524571d73b894436936..e55c2b159130aa043f837bd5c74b7448fa044fed 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -1032,7 +1032,7 @@ void RenderWidgetHostViewAndroid::RemoveLayers() { |
} |
void RenderWidgetHostViewAndroid::SetNeedsAnimate() { |
- content_view_core_->GetWindowAndroid()->RequestVSyncUpdate(); |
+ content_view_core_->GetWindowAndroid()->SetNeedsAnimate(); |
} |
bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) { |
@@ -1336,12 +1336,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 begin_frame_time) { |
+ if (Animate(begin_frame_time)) |
+ SetNeedsAnimate(); |
+} |
+ |
void RenderWidgetHostViewAndroid::OnLostResources() { |
ReleaseLocksOnSurface(); |
if (layer_.get()) |