| 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..9127f4b8ba0d54e9e2d3b89d814b5672e1ae1e20 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.
|
| + 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.BrowserBehind_RendererToBrowser", skew);
|
| + } else {
|
| + UMA_HISTOGRAM_TIMES(
|
| + "InterProcessTimeTicks.BrowserAhead_RendererToBrowser", -skew);
|
| + }
|
| + }
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "InterProcessTimeTicks.IsSkewAdditive_RendererToBrowser",
|
| + is_skew_additive);
|
| }
|
| frame_tree_node_->render_manager()->OnBeforeUnloadACK(
|
| render_view_host_->unload_ack_is_for_cross_site_transition_, proceed,
|
|
|