Index: content/browser/frame_host/render_frame_host_impl.cc |
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
index 832911c8a939a52ce1c050de11a8a4d2675b3586..62e5538b4eecc20d8142f72c85ee019ba09a8dd9 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.cc |
+++ b/content/browser/frame_host/render_frame_host_impl.cc |
@@ -7,6 +7,7 @@ |
#include "base/bind.h" |
#include "base/containers/hash_tables.h" |
#include "base/lazy_instance.h" |
+#include "base/metrics/histogram.h" |
#include "base/metrics/user_metrics_action.h" |
#include "base/time/time.h" |
#include "content/browser/accessibility/accessibility_mode_helper.h" |
@@ -748,6 +749,23 @@ void RenderFrameHostImpl::OnBeforeUnloadACK( |
converter.ToLocalTimeTicks( |
RemoteTimeTicks::FromTimeTicks(renderer_before_unload_end_time)); |
before_unload_end_time = browser_before_unload_end_time.ToTimeTicks(); |
+ |
+ // Collect UMA on the inter-process skew. |
+ if (converter.IsSkewAdditiveForMetrics()) { |
+ UMA_HISTOGRAM_BOOLEAN( |
+ "InterProcessTimeTicks.IsSkewAdditive_RendererToBrowser", true); |
+ base::TimeDelta skew = converter.GetSkewForMetrics(); |
+ if (skew >= base::TimeDelta()) { |
+ UMA_HISTOGRAM_TIMES( |
+ "InterProcessTimeTicks.BrowserBehind_RendererToBrowser", skew); |
+ } else { |
+ UMA_HISTOGRAM_TIMES( |
+ "InterProcessTimeTicks.BrowserAhead_RendererToBrowser", -skew); |
+ } |
+ } else { |
+ UMA_HISTOGRAM_BOOLEAN( |
+ "InterProcessTimeTicks.IsSkewAdditive_RendererToBrowser", false); |
+ } |
} |
frame_tree_node_->render_manager()->OnBeforeUnloadACK( |
render_view_host_->unload_ack_is_for_cross_site_transition_, proceed, |