| Index: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| index 28bf13da2179a54cd7c3ad70c924800e15be0dc1..03d92b10b5eb0c9e372e75b941f878cc59d56c72 100644
|
| --- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| @@ -157,6 +157,16 @@ const char kHistogramLoadTypeFirstContentfulPaintNewNavigation[] =
|
| "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
|
| "NewNavigation";
|
|
|
| +const char kHistogramPageTimingPageEnd[] =
|
| + "PageLoad.PageTiming.NavigationToPageEnd";
|
| +const char kHistogramPageTimingFirstPaintToPageEnd[] =
|
| + "PageLoad.PageTiming.FirstPaintToPageEnd";
|
| +
|
| +const char kHistogramPageTimingFirstBackground[] =
|
| + "PageLoad.PageTiming.NavigationToFirstBackground";
|
| +const char kHistogramPageTimingFirstPaintToFirstBackground[] =
|
| + "PageLoad.PageTiming.FirstPaintToFirstBackground";
|
| +
|
| const char kHistogramLoadTypeParseStartReload[] =
|
| "PageLoad.ParseTiming.NavigationToParseStart.LoadType.Reload";
|
| const char kHistogramLoadTypeParseStartForwardBack[] =
|
| @@ -169,10 +179,10 @@ const char kHistogramLoadTypeParseStartNewNavigation[] =
|
| "PageLoad.ParseTiming.NavigationToParseStart.LoadType.NewNavigation";
|
|
|
| const char kHistogramFirstForeground[] =
|
| - "PageLoad.Timing2.NavigationToFirstForeground";
|
| + "PageLoad.PageTiming.NavigationToFirstForeground";
|
|
|
| const char kHistogramFailedProvisionalLoad[] =
|
| - "PageLoad.Timing2.NavigationToFailedProvisionalLoad";
|
| + "PageLoad.PageTiming.NavigationToFailedProvisionalLoad";
|
|
|
| const char kHistogramForegroundToFirstPaint[] =
|
| "PageLoad.PaintTiming.ForegroundToFirstPaint";
|
| @@ -632,10 +642,9 @@ void CorePageLoadMetricsObserver::RecordTimingHistograms(
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| // Log time to first foreground / time to first background. Log counts that we
|
| // started a relevant page load in the foreground / background.
|
| - if (!info.started_in_foreground) {
|
| - if (info.first_foreground_time)
|
| - PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstForeground,
|
| - info.first_foreground_time.value());
|
| + if (!info.started_in_foreground && info.first_foreground_time) {
|
| + PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstForeground,
|
| + info.first_foreground_time.value());
|
| }
|
|
|
| if (timing.first_paint && !timing.first_meaningful_paint) {
|
| @@ -668,6 +677,28 @@ void CorePageLoadMetricsObserver::RecordTimingHistograms(
|
| timing.first_meaningful_paint.value());
|
| }
|
| }
|
| +
|
| + if (!info.started_in_foreground)
|
| + return;
|
| +
|
| + if (info.first_background_time) {
|
| + PAGE_LOAD_HISTOGRAM(internal::kHistogramPageTimingFirstBackground,
|
| + info.first_background_time.value());
|
| + if (timing.first_paint &&
|
| + timing.first_paint <= info.first_background_time) {
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kHistogramPageTimingFirstPaintToFirstBackground,
|
| + info.first_background_time.value() - timing.first_paint.value());
|
| + }
|
| + } else if (info.page_end_time) {
|
| + PAGE_LOAD_HISTOGRAM(internal::kHistogramPageTimingPageEnd,
|
| + info.page_end_time.value());
|
| + if (timing.first_paint && timing.first_paint <= info.page_end_time) {
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kHistogramPageTimingFirstPaintToPageEnd,
|
| + info.page_end_time.value() - timing.first_paint.value());
|
| + }
|
| + }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::RecordByteAndResourceHistograms(
|
|
|