Index: content/child/resource_dispatcher.cc |
diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc |
index 3ca9668c246a0a3fca0bc7ab1d6bee6275f9ed82..9de5df8df4c13f15d1e809c16e6bd37804a73b49 100644 |
--- a/content/child/resource_dispatcher.cc |
+++ b/content/child/resource_dispatcher.cc |
@@ -785,6 +785,23 @@ void ResourceDispatcher::ToResourceResponseInfo( |
RemoteToLocalTimeTicks(converter, &load_timing->send_start); |
RemoteToLocalTimeTicks(converter, &load_timing->send_end); |
RemoteToLocalTimeTicks(converter, &load_timing->receive_headers_end); |
+ |
+ // Collect UMA on the inter-process skew. |
+ bool is_skew_additive = false; |
+ if (converter.IsSkewAdditiveForMetrics()) { |
+ is_skew_additive = true; |
+ base::TimeDelta skew = converter.GetSkewForMetrics(); |
+ if (skew >= base::TimeDelta()) { |
+ UMA_HISTOGRAM_TIMES( |
+ "InterProcessTimeTicks.BrowserAhead_BrowserToRenderer", skew); |
+ } else { |
+ UMA_HISTOGRAM_TIMES( |
+ "InterProcessTimeTicks.BrowserBehind_BrowserToRenderer", -skew); |
+ } |
+ } |
+ UMA_HISTOGRAM_BOOLEAN( |
+ "InterProcessTimeTicks.IsSkewAdditive_BrowserToRenderer", |
+ is_skew_additive); |
} |
base::TimeTicks ResourceDispatcher::ToRendererCompletionTime( |