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 986bda4ecce621a7506bd15622cf455f13b29864..8da65865fa9f54be685a9bf3f06afc858ea86891 100644 |
--- a/content/browser/renderer_host/render_widget_host_impl.cc |
+++ b/content/browser/renderer_host/render_widget_host_impl.cc |
@@ -805,7 +805,8 @@ void RenderWidgetHostImpl::WaitForSurface() { |
} |
TimeDelta max_delay = TimeDelta::FromMilliseconds(kPaintMsgTimeoutMS); |
- TimeTicks end_time = TimeTicks::Now() + max_delay; |
+ TimeTicks start_time = TimeTicks::Now(); |
+ TimeDelta elapsed_delay; |
do { |
TRACE_EVENT0("renderer_host", "WaitForSurface::WaitForUpdate"); |
@@ -833,8 +834,12 @@ void RenderWidgetHostImpl::WaitForSurface() { |
// BackingStore yet. This is necessary to support the GPU path which |
// typically has multiple frames pipelined -- we may need to skip one or two |
// BackingStore messages to get to the latest. |
- max_delay = end_time - TimeTicks::Now(); |
- } while (max_delay > TimeDelta::FromSeconds(0)); |
+ elapsed_delay = TimeTicks::Now() - start_time; |
+ } while (elapsed_delay < max_delay); |
+ |
+ UMA_HISTOGRAM_CUSTOM_TIMES("OSX.RendererHost.SurfaceWaitTime", elapsed_delay, |
+ TimeDelta::FromMilliseconds(1), |
+ TimeDelta::FromMilliseconds(200), 50); |
} |
#endif |