Chromium Code Reviews| Index: chrome/browser/page_load_metrics/experiments/delay_navigation_throttle.cc |
| diff --git a/chrome/browser/page_load_metrics/experiments/delay_navigation_throttle.cc b/chrome/browser/page_load_metrics/experiments/delay_navigation_throttle.cc |
| index 503641accdcb8e77444713f3069cf4450be5a4a5..bc32e8f18d5907286025bdc6205b580ab1bb48a5 100644 |
| --- a/chrome/browser/page_load_metrics/experiments/delay_navigation_throttle.cc |
| +++ b/chrome/browser/page_load_metrics/experiments/delay_navigation_throttle.cc |
| @@ -6,6 +6,7 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/metrics/field_trial_params.h" |
| +#include "base/metrics/histogram_macros.h" |
| #include "base/rand_util.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -15,6 +16,13 @@ |
| namespace { |
| +const char kHistogramNavigationDelaySpecified[] = |
| + "DelayNavigationThrottle.Delay.Specified"; |
| +const char kHistogramNavigationDelayActual[] = |
| + "DelayNavigationThrottle.Delay.Actual"; |
| +const char kHistogramNavigationDelayDelta[] = |
| + "DelayNavigationThrottle.Delay.Delta"; |
| + |
| base::TimeDelta GetNavigationDelayFromParams() { |
| double delay_probability = base::GetFieldTrialParamByFeatureAsDouble( |
| kDelayNavigationFeature, |
| @@ -100,6 +108,8 @@ DelayNavigationThrottle::~DelayNavigationThrottle() {} |
| content::NavigationThrottle::ThrottleCheckResult |
| DelayNavigationThrottle::WillStartRequest() { |
| + UMA_HISTOGRAM_TIMES(kHistogramNavigationDelaySpecified, navigation_delay_); |
| + delay_start_time_ = base::TimeTicks::Now(); |
| task_runner_->PostDelayedTask( |
| FROM_HERE, |
| base::Bind(&DelayNavigationThrottle::OnDelayComplete, |
| @@ -109,5 +119,9 @@ DelayNavigationThrottle::WillStartRequest() { |
| } |
| void DelayNavigationThrottle::OnDelayComplete() { |
| + base::TimeDelta actual_delay = base::TimeTicks::Now() - delay_start_time_; |
| + base::TimeDelta delay_delta = actual_delay - navigation_delay_; |
| + UMA_HISTOGRAM_TIMES(kHistogramNavigationDelayActual, actual_delay); |
| + UMA_HISTOGRAM_TIMES(kHistogramNavigationDelayDelta, delay_delta.magnitude()); |
|
Charlie Harrison
2017/04/05 16:54:37
if actual_delay < navigation_delay_ this could be
Bryan McQuade
2017/04/05 20:11:05
copying the relevant part of my general reply here
|
| navigation_handle()->Resume(); |
| } |