| Index: content/browser/renderer_host/render_widget_host_impl.cc
 | 
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
 | 
| index 456f6df7f52d0cef38aa64d6cb7f977223f3b113..48d3aeb372a183ac068db2782108e74eed3ebdaa 100644
 | 
| --- a/content/browser/renderer_host/render_widget_host_impl.cc
 | 
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc
 | 
| @@ -427,8 +427,10 @@ bool RenderWidgetHostImpl::OnMessageReceived(const IPC::Message &msg) {
 | 
|      IPC_MESSAGE_HANDLER(ViewHostMsg_RequestMove, OnRequestMove)
 | 
|      IPC_MESSAGE_HANDLER(ViewHostMsg_SetTooltipText, OnSetTooltipText)
 | 
|      IPC_MESSAGE_HANDLER(ViewHostMsg_PaintAtSize_ACK, OnPaintAtSizeAck)
 | 
| +#if defined(OS_MACOSX)
 | 
|      IPC_MESSAGE_HANDLER(ViewHostMsg_CompositorSurfaceBuffersSwapped,
 | 
|                          OnCompositorSurfaceBuffersSwapped)
 | 
| +#endif
 | 
|      IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_SwapCompositorFrame,
 | 
|                                  msg_is_ok = OnSwapCompositorFrame(msg))
 | 
|      IPC_MESSAGE_HANDLER(ViewHostMsg_DidOverscroll, OnOverscrolled)
 | 
| @@ -1744,6 +1746,7 @@ void RenderWidgetHostImpl::OnPaintAtSizeAck(int tag, const gfx::Size& size) {
 | 
|        Details<std::pair<int, gfx::Size> >(&details));
 | 
|  }
 | 
|  
 | 
| +#if defined(OS_MACOSX)
 | 
|  void RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwapped(
 | 
|        const ViewHostMsg_CompositorSurfaceBuffersSwapped_Params& params) {
 | 
|    TRACE_EVENT0("renderer_host",
 | 
| @@ -1765,7 +1768,9 @@ void RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwapped(
 | 
|    gpu_params.latency_info = params.latency_info;
 | 
|    view_->AcceleratedSurfaceBuffersSwapped(gpu_params,
 | 
|                                            params.gpu_process_host_id);
 | 
| +  view_->DidReceiveRendererFrame();
 | 
|  }
 | 
| +#endif  // OS_MACOSX
 | 
|  
 | 
|  bool RenderWidgetHostImpl::OnSwapCompositorFrame(
 | 
|      const IPC::Message& message) {
 | 
| @@ -1777,6 +1782,7 @@ bool RenderWidgetHostImpl::OnSwapCompositorFrame(
 | 
|  
 | 
|    if (view_) {
 | 
|      view_->OnSwapCompositorFrame(frame.Pass());
 | 
| +    view_->DidReceiveRendererFrame();
 | 
|    } else {
 | 
|      cc::CompositorFrameAck ack;
 | 
|      if (frame->gl_frame_data) {
 | 
| @@ -1936,6 +1942,7 @@ void RenderWidgetHostImpl::DidUpdateBackingStore(
 | 
|      view_being_painted_ = true;
 | 
|      view_->DidUpdateBackingStore(params.scroll_rect, params.scroll_delta,
 | 
|                                   params.copy_rects, params.latency_info);
 | 
| +    view_->DidReceiveRendererFrame();
 | 
|      view_being_painted_ = false;
 | 
|    }
 | 
|  
 | 
| @@ -2641,6 +2648,10 @@ void RenderWidgetHostImpl::FrameSwapped(const ui::LatencyInfo& latency_info) {
 | 
|      Send(new ViewMsg_SetBrowserRenderingStats(routing_id_, rendering_stats_));
 | 
|  }
 | 
|  
 | 
| +void RenderWidgetHostImpl::DidReceiveRendererFrame() {
 | 
| +  view_->DidReceiveRendererFrame();
 | 
| +}
 | 
| +
 | 
|  // static
 | 
|  void RenderWidgetHostImpl::CompositorFrameDrawn(
 | 
|      const ui::LatencyInfo& latency_info) {
 | 
| 
 |