| 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,
|
|
|