Index: chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc |
diff --git a/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc |
index bee219e8ec12371564fbbc0c8967d6e7cc1c319f..aaa848f9158aa24df7908a099843a51eabd21473 100644 |
--- a/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc |
+++ b/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc |
@@ -6,12 +6,10 @@ |
#include "chrome/browser/page_load_metrics/page_load_metrics_util.h" |
-using page_load_metrics::UserAbortType; |
+using page_load_metrics::PageAbortReason; |
namespace internal { |
-const char kHistogramAbortClientRedirectBeforeCommit[] = |
- "PageLoad.Experimental.AbortTiming.ClientRedirect.BeforeCommit"; |
const char kHistogramAbortForwardBackBeforeCommit[] = |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation.BeforeCommit"; |
const char kHistogramAbortReloadBeforeCommit[] = |
@@ -27,8 +25,6 @@ const char kHistogramAbortBackgroundBeforeCommit[] = |
const char kHistogramAbortOtherBeforeCommit[] = |
"PageLoad.Experimental.AbortTiming.Other.BeforeCommit"; |
-const char kHistogramAbortClientRedirectBeforePaint[] = |
- "PageLoad.Experimental.AbortTiming.ClientRedirect.AfterCommit.BeforePaint"; |
const char kHistogramAbortForwardBackBeforePaint[] = |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation.AfterCommit." |
"BeforePaint"; |
@@ -43,8 +39,6 @@ const char kHistogramAbortCloseBeforePaint[] = |
const char kHistogramAbortBackgroundBeforePaint[] = |
"PageLoad.Experimental.AbortTiming.Background.AfterCommit.BeforePaint"; |
-const char kHistogramAbortClientRedirectDuringParse[] = |
- "PageLoad.Experimental.AbortTiming.ClientRedirect.DuringParse"; |
const char kHistogramAbortForwardBackDuringParse[] = |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation.DuringParse"; |
const char kHistogramAbortReloadDuringParse[] = |
@@ -63,98 +57,91 @@ const char kHistogramAbortBackgroundDuringParse[] = |
namespace { |
void RecordAbortBeforeCommit( |
- UserAbortType abort_type, |
- page_load_metrics::UserInitiatedInfo user_initiated_info, |
- base::TimeDelta time_to_abort) { |
- switch (abort_type) { |
- case UserAbortType::ABORT_RELOAD: |
+ const page_load_metrics::PageAbortInfo& abort_info) { |
+ switch (abort_info.reason) { |
+ case PageAbortReason::ABORT_RELOAD: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortReloadBeforeCommit, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.BeforeCommit." |
"UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.BeforeCommit." |
"UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.BeforeCommit." |
"BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_FORWARD_BACK: |
+ case PageAbortReason::ABORT_FORWARD_BACK: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortForwardBackBeforeCommit, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"BeforeCommit.UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"BeforeCommit.UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"BeforeCommit.BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_CLIENT_REDIRECT: |
- PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortClientRedirectBeforeCommit, |
- time_to_abort); |
- return; |
- case UserAbortType::ABORT_NEW_NAVIGATION: |
+ case PageAbortReason::ABORT_NEW_NAVIGATION: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortNewNavigationBeforeCommit, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit." |
"UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit." |
"UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.BeforeCommit." |
"BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_STOP: |
+ case PageAbortReason::ABORT_STOP: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortStopBeforeCommit, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_CLOSE: |
+ case PageAbortReason::ABORT_CLOSE: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortCloseBeforeCommit, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_BACKGROUND: |
+ case PageAbortReason::ABORT_BACKGROUND: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortBackgroundBeforeCommit, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_OTHER: |
+ case PageAbortReason::ABORT_OTHER: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortOtherBeforeCommit, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_NONE: |
- case UserAbortType::ABORT_LAST_ENTRY: |
+ case PageAbortReason::ABORT_NONE: |
NOTREACHED(); |
return; |
} |
@@ -162,155 +149,142 @@ void RecordAbortBeforeCommit( |
} |
void RecordAbortAfterCommitBeforePaint( |
- UserAbortType abort_type, |
- page_load_metrics::UserInitiatedInfo user_initiated_info, |
- base::TimeDelta time_to_abort) { |
- switch (abort_type) { |
- case UserAbortType::ABORT_RELOAD: |
+ const page_load_metrics::PageAbortInfo& abort_info) { |
+ switch (abort_info.reason) { |
+ case PageAbortReason::ABORT_RELOAD: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortReloadBeforePaint, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.AfterCommit.BeforePaint." |
"UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.AfterCommit.BeforePaint." |
"UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.Reload.AfterCommit.BeforePaint." |
"BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_FORWARD_BACK: |
+ case PageAbortReason::ABORT_FORWARD_BACK: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortForwardBackBeforePaint, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"AfterCommit.BeforePaint.UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"AfterCommit.BeforePaint.UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.ForwardBackNavigation." |
"AfterCommit.BeforePaint.BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_CLIENT_REDIRECT: |
- PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortClientRedirectBeforePaint, |
- time_to_abort); |
- return; |
- case UserAbortType::ABORT_NEW_NAVIGATION: |
+ case PageAbortReason::ABORT_NEW_NAVIGATION: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortNewNavigationBeforePaint, |
- time_to_abort); |
- if (user_initiated_info.user_gesture) { |
+ abort_info.time_to_abort); |
+ if (abort_info.user_initiated_info.user_gesture) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.AfterCommit." |
"BeforePaint.UserGesture", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.user_input_event) { |
+ if (abort_info.user_initiated_info.user_input_event) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.AfterCommit." |
"BeforePaint.UserInputEvent", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
- if (user_initiated_info.browser_initiated) { |
+ if (abort_info.user_initiated_info.browser_initiated) { |
PAGE_LOAD_HISTOGRAM( |
"PageLoad.Experimental.AbortTiming.NewNavigation.AfterCommit." |
"BeforePaint.BrowserInitiated", |
- time_to_abort); |
+ abort_info.time_to_abort); |
} |
return; |
- case UserAbortType::ABORT_STOP: |
+ case PageAbortReason::ABORT_STOP: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortStopBeforePaint, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_CLOSE: |
+ case PageAbortReason::ABORT_CLOSE: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortCloseBeforePaint, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_BACKGROUND: |
+ case PageAbortReason::ABORT_BACKGROUND: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortBackgroundBeforePaint, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_OTHER: |
- NOTREACHED() << "Received UserAbortType::ABORT_OTHER for committed load."; |
+ case PageAbortReason::ABORT_OTHER: |
+ NOTREACHED() |
+ << "Received PageAbortReason::ABORT_OTHER for committed load."; |
return; |
- case UserAbortType::ABORT_NONE: |
- case UserAbortType::ABORT_LAST_ENTRY: |
+ case PageAbortReason::ABORT_NONE: |
NOTREACHED(); |
return; |
} |
NOTREACHED(); |
} |
-void RecordAbortDuringParse(UserAbortType abort_type, |
- base::TimeDelta time_to_abort) { |
- switch (abort_type) { |
- case UserAbortType::ABORT_RELOAD: |
+void RecordAbortDuringParse( |
+ const page_load_metrics::PageAbortInfo& abort_info) { |
+ switch (abort_info.reason) { |
+ case PageAbortReason::ABORT_RELOAD: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortReloadDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_FORWARD_BACK: |
+ case PageAbortReason::ABORT_FORWARD_BACK: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortForwardBackDuringParse, |
- time_to_abort); |
- return; |
- case UserAbortType::ABORT_CLIENT_REDIRECT: |
- PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortClientRedirectDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_NEW_NAVIGATION: |
+ case PageAbortReason::ABORT_NEW_NAVIGATION: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortNewNavigationDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_STOP: |
+ case PageAbortReason::ABORT_STOP: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortStopDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_CLOSE: |
+ case PageAbortReason::ABORT_CLOSE: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortCloseDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_BACKGROUND: |
+ case PageAbortReason::ABORT_BACKGROUND: |
PAGE_LOAD_HISTOGRAM(internal::kHistogramAbortBackgroundDuringParse, |
- time_to_abort); |
+ abort_info.time_to_abort); |
return; |
- case UserAbortType::ABORT_OTHER: |
- NOTREACHED() << "Received UserAbortType::ABORT_OTHER for committed load."; |
+ case PageAbortReason::ABORT_OTHER: |
+ NOTREACHED() |
+ << "Received PageAbortReason::ABORT_OTHER for committed load."; |
return; |
- case UserAbortType::ABORT_NONE: |
- case UserAbortType::ABORT_LAST_ENTRY: |
+ case PageAbortReason::ABORT_NONE: |
NOTREACHED(); |
return; |
} |
NOTREACHED(); |
} |
-bool ShouldTrackMetrics( |
- const page_load_metrics::PageLoadExtraInfo& extra_info) { |
- UserAbortType abort_type = extra_info.abort_type; |
- if (abort_type == UserAbortType::ABORT_NONE) |
+bool ShouldTrackMetrics(const page_load_metrics::PageLoadExtraInfo& extra_info, |
+ const page_load_metrics::PageAbortInfo& abort_info) { |
+ if (abort_info.reason == PageAbortReason::ABORT_NONE) |
return false; |
- DCHECK(extra_info.time_to_abort); |
- |
// Don't log abort times if the page was backgrounded before the abort event. |
- if (!WasStartedInForegroundOptionalEventInForeground(extra_info.time_to_abort, |
+ if (!WasStartedInForegroundOptionalEventInForeground(abort_info.time_to_abort, |
extra_info)) |
return false; |
@@ -324,7 +298,8 @@ AbortsPageLoadMetricsObserver::AbortsPageLoadMetricsObserver() {} |
void AbortsPageLoadMetricsObserver::OnComplete( |
const page_load_metrics::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& extra_info) { |
- if (!ShouldTrackMetrics(extra_info)) |
+ page_load_metrics::PageAbortInfo abort_info = GetPageAbortInfo(extra_info); |
+ if (!ShouldTrackMetrics(extra_info, abort_info)) |
return; |
// If we did not receive any timing IPCs from the render process, we can't |
@@ -337,25 +312,21 @@ void AbortsPageLoadMetricsObserver::OnComplete( |
if (timing.IsEmpty()) |
return; |
- const base::TimeDelta& time_to_abort = extra_info.time_to_abort.value(); |
- if (timing.parse_start && time_to_abort >= timing.parse_start && |
- (!timing.parse_stop || timing.parse_stop >= time_to_abort)) { |
- RecordAbortDuringParse(extra_info.abort_type, time_to_abort); |
+ if (timing.parse_start && abort_info.time_to_abort >= timing.parse_start && |
+ (!timing.parse_stop || timing.parse_stop >= abort_info.time_to_abort)) { |
+ RecordAbortDuringParse(abort_info); |
} |
- if (!timing.first_paint || timing.first_paint >= time_to_abort) { |
- RecordAbortAfterCommitBeforePaint(extra_info.abort_type, |
- extra_info.abort_user_initiated_info, |
- time_to_abort); |
+ if (!timing.first_paint || timing.first_paint >= abort_info.time_to_abort) { |
+ RecordAbortAfterCommitBeforePaint(abort_info); |
} |
} |
void AbortsPageLoadMetricsObserver::OnFailedProvisionalLoad( |
const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info, |
const page_load_metrics::PageLoadExtraInfo& extra_info) { |
- if (!ShouldTrackMetrics(extra_info)) |
+ page_load_metrics::PageAbortInfo abort_info = GetPageAbortInfo(extra_info); |
+ if (!ShouldTrackMetrics(extra_info, abort_info)) |
return; |
- RecordAbortBeforeCommit(extra_info.abort_type, |
- extra_info.abort_user_initiated_info, |
- extra_info.time_to_abort.value()); |
+ RecordAbortBeforeCommit(abort_info); |
} |