| Index: components/page_load_metrics/browser/metrics_web_contents_observer.h
|
| diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.h b/components/page_load_metrics/browser/metrics_web_contents_observer.h
|
| index 0d017295d4dcecbcef1e061f5f0ab2b7541535bb..474a4530895f9c39ee22ec7ed8f1fa793f3593d5 100644
|
| --- a/components/page_load_metrics/browser/metrics_web_contents_observer.h
|
| +++ b/components/page_load_metrics/browser/metrics_web_contents_observer.h
|
| @@ -145,8 +145,10 @@ class PageLoadTracker {
|
| bool UpdateTiming(const PageLoadTiming& timing,
|
| const PageLoadMetadata& metadata);
|
|
|
| - void set_renderer_tracked(bool renderer_tracked);
|
| - bool renderer_tracked() const { return renderer_tracked_; }
|
| + // Signals that we should stop tracking metrics for the associated page load.
|
| + // We may stop tracking a page load if it doesn't meet the criteria for
|
| + // tracking metrics in DidFinishNavigation.
|
| + void StopTracking();
|
|
|
| int aborted_chain_size() const { return aborted_chain_size_; }
|
| int aborted_chain_size_same_url() const {
|
| @@ -209,8 +211,10 @@ class PageLoadTracker {
|
| // committed load.
|
| void LogAbortChainHistograms(content::NavigationHandle* final_navigation);
|
|
|
| - // Whether the renderer should be sending timing IPCs to this page load.
|
| - bool renderer_tracked_;
|
| + // Whether we stopped tracking this navigation after it was initiated. We may
|
| + // stop tracking a navigation if it doesn't meet the criteria for tracking
|
| + // metrics in DidFinishNavigation.
|
| + bool did_stop_tracking_;
|
|
|
| // The navigation start in TimeTicks, not the wall time reported by Blink.
|
| const base::TimeTicks navigation_start_;
|
| @@ -298,6 +302,14 @@ class MetricsWebContentsObserver
|
| private:
|
| friend class content::WebContentsUserData<MetricsWebContentsObserver>;
|
|
|
| + void HandleFailedNavigationForTrackedLoad(
|
| + content::NavigationHandle* navigation_handle,
|
| + std::unique_ptr<PageLoadTracker> tracker);
|
| +
|
| + void HandleCommittedNavigationForTrackedLoad(
|
| + content::NavigationHandle* navigation_handle,
|
| + std::unique_ptr<PageLoadTracker> tracker);
|
| +
|
| // Notify all loads, provisional and committed, that we performed an action
|
| // that might abort them.
|
| void NotifyAbortAllLoads(UserAbortType abort_type);
|
| @@ -320,6 +332,9 @@ class MetricsWebContentsObserver
|
| const PageLoadTiming& timing,
|
| const PageLoadMetadata& metadata);
|
|
|
| + bool ShouldTrackNavigation(
|
| + content::NavigationHandle* navigation_handle) const;
|
| +
|
| // True if the web contents is currently in the foreground.
|
| bool in_foreground_;
|
|
|
|
|