| 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);
|
| }
|
|
|