Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1647)

Unified Diff: chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc

Issue 2699933003: Generalize abort tracking to page end state tracking (Closed)
Patch Set: fix comment Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698