Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
index 90a7feaf608ea64f2392efdd5daf02f21e262bd0..5c3324eb68060f61452e8210f3e0438a347446b3 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -1029,8 +1029,24 @@ void RenderWidgetHostViewMac::AckPendingSwapBuffers() { |
pending_swap_buffers_acks_.front().first, |
pending_swap_buffers_acks_.front().second, |
0); |
- if (render_widget_host_) |
+ if (render_widget_host_) { |
render_widget_host_->AcknowledgeSwapBuffersToRenderer(); |
+ |
+ // Send VSync parameters to compositor thread. |
+ if (compositing_iosurface_.get()) { |
+ base::TimeTicks timebase; |
+ uint32 numerator = 0, denominator = 0; |
+ compositing_iosurface_->GetVSyncParameters(&timebase, |
+ &numerator, |
+ &denominator); |
+ if (numerator > 0 && denominator > 0) { |
+ int64 interval_micros = |
+ 1000000 * static_cast<int64>(numerator) / denominator; |
+ render_widget_host_->UpdateVSyncParameters( |
+ timebase, base::TimeDelta::FromMicroseconds(interval_micros)); |
+ } |
+ } |
+ } |
} |
pending_swap_buffers_acks_.erase(pending_swap_buffers_acks_.begin()); |
} |