| Index: chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h
|
| diff --git a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h
|
| index 437d5c9a6df56d6bf610f1e75ce3f6b2dfd0e894..a28d38bbedce2574008d4fe3583f063ee1e51961 100644
|
| --- a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h
|
| +++ b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.h
|
| @@ -8,6 +8,14 @@
|
| #include "base/macros.h"
|
| #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
|
|
|
| +namespace internal {
|
| +
|
| +// Name constants are exposed here so they can be referenced from tests.
|
| +extern const char kUkmPageLoadEventName[];
|
| +extern const char kUkmFirstContentfulPaintName[];
|
| +
|
| +} // namespace internal
|
| +
|
| // If URL-Keyed-Metrics (UKM) is enabled in the system, this is used to
|
| // populate it with top-level page-load metrics.
|
| class UkmPageLoadMetricsObserver
|
| @@ -18,6 +26,7 @@ class UkmPageLoadMetricsObserver
|
| CreateIfNeeded();
|
|
|
| UkmPageLoadMetricsObserver();
|
| + ~UkmPageLoadMetricsObserver() override;
|
|
|
| // page_load_metrics::PageLoadMetricsObserver implementation:
|
| ObservePolicy OnStart(content::NavigationHandle* navigation_handle,
|
| @@ -32,12 +41,25 @@ class UkmPageLoadMetricsObserver
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) override;
|
|
|
| + void OnFailedProvisionalLoad(
|
| + const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info,
|
| + const page_load_metrics::PageLoadExtraInfo& extra_info) override;
|
| +
|
| void OnComplete(const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) override;
|
|
|
| private:
|
| - void SendMetricsToUkm(const page_load_metrics::PageLoadTiming& timing,
|
| - const page_load_metrics::PageLoadExtraInfo& info);
|
| + // Records page load timing related metrics available in PageLoadTiming, such
|
| + // as first contentful paint.
|
| + void RecordTimingMetrics(const page_load_metrics::PageLoadTiming& timing);
|
| +
|
| + // Records metrics based on the PageLoadExtraInfo struct, as well as updating
|
| + // the URL.
|
| + void RecordPageLoadExtraInfoMetrics(
|
| + const page_load_metrics::PageLoadExtraInfo& info);
|
| +
|
| + // Unique UKM identifier for the page load we are recording metrics for.
|
| + const int32_t source_id_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(UkmPageLoadMetricsObserver);
|
| };
|
|
|