Index: chrome/browser/metrics/first_web_contents_profiler.h |
diff --git a/chrome/browser/metrics/first_web_contents_profiler.h b/chrome/browser/metrics/first_web_contents_profiler.h |
index 376e4f6f9cbe40c48a2211897facff95e442caaa..96e58bd1aa6b019d2ccd402090ac2e7ac8096c48 100644 |
--- a/chrome/browser/metrics/first_web_contents_profiler.h |
+++ b/chrome/browser/metrics/first_web_contents_profiler.h |
@@ -37,7 +37,9 @@ class FirstWebContentsProfiler : public content::WebContentsObserver { |
// Abandon if the content is destroyed. |
ABANDON_CONTENT_DESTROYED = 3, |
// Abandon if the WebContents navigates away from its initial page. |
- ABANDON_NAVIGATION = 4, |
+ ABANDON_NEW_NAVIGATION = 4, |
+ // Abandon if the WebContents fails to load (e.g. network error, etc.). |
+ ABANDON_NAVIGATION_ERROR = 5, |
ENUM_MAX |
}; |
@@ -47,12 +49,18 @@ class FirstWebContentsProfiler : public content::WebContentsObserver { |
// content::WebContentsObserver: |
void DidFirstVisuallyNonEmptyPaint() override; |
void DocumentOnLoadCompletedInMainFrame() override; |
+ void DidStartNavigation( |
+ content::NavigationHandle* navigation_handle) override; |
+ void DidFinishNavigation( |
+ content::NavigationHandle* navigation_handle) override; |
void NavigationEntryCommitted( |
const content::LoadCommittedDetails& load_details) override; |
void WasHidden() override; |
void WebContentsDestroyed() override; |
- // Whether this instance has finished collecting all of its metrics. |
+ // Whether this instance has finished collecting first-paint and main-frame- |
+ // load metrics (navigation metrics are recorded on a best effort but don't |
+ // prevent the FirstWebContentsProfiler from calling it). |
bool IsFinishedCollectingMetrics(); |
// Logs |finish_reason| to UMA and deletes this FirstWebContentsProfiler. |
@@ -72,6 +80,12 @@ class FirstWebContentsProfiler : public content::WebContentsObserver { |
// Whether an attempt was made to collect the "MainFrameLoad" metric. |
bool collected_load_metric_; |
+ // Whether an attempt was made to collect the "MainNavigationStart" metric. |
+ bool collected_main_navigation_start_metric_; |
+ |
+ // Whether an attempt was made to collect the "MainNavigationFinished" metric. |
+ bool collected_main_navigation_finished_metric_; |
+ |
// Histogram that keeps track of response times for the watched thread. |
base::HistogramBase* responsiveness_histogram_; |