Index: chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc |
diff --git a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc |
index 07d663c74dcf1e21739b712dcbb24ae7e6341f03..c83e18101db1e8f9717a05d83b8e325d5577ff55 100644 |
--- a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc |
+++ b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc |
@@ -74,6 +74,25 @@ const char kHistogramServiceWorkerLoadSearch[] = |
"PageLoad.Clients.ServiceWorker.DocumentTiming.NavigationToLoadEventFired." |
"search"; |
+const char kHistogramServiceWorkerFirstContentfulPaintSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.PaintTiming." |
+ "NavigationToFirstContentfulPaint.search_no_sw"; |
+const char kHistogramServiceWorkerParseStartToFirstContentfulPaintSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.PaintTiming." |
+ "ParseStartToFirstContentfulPaint.search_no_sw"; |
+const char kHistogramServiceWorkerFirstMeaningfulPaintSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.Experimental.PaintTiming." |
+ "NavigationToFirstMeaningfulPaint.search_no_sw"; |
+const char kHistogramServiceWorkerParseStartToFirstMeaningfulPaintSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.Experimental.PaintTiming." |
+ "ParseStartToFirstMeaningfulPaint.search_no_sw"; |
+const char kHistogramServiceWorkerDomContentLoadedSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.DocumentTiming." |
+ "NavigationToDOMContentLoadedEventFired.search_no_sw"; |
+const char kHistogramServiceWorkerLoadSearchNoSW[] = |
+ "PageLoad.Clients.ServiceWorker.DocumentTiming.NavigationToLoadEventFired." |
+ "search_no_sw"; |
+ |
} // namespace internal |
namespace { |
@@ -96,8 +115,22 @@ ServiceWorkerPageLoadMetricsObserver::ServiceWorkerPageLoadMetricsObserver() {} |
void ServiceWorkerPageLoadMetricsObserver::OnFirstContentfulPaintInPage( |
const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& info) { |
- if (!IsServiceWorkerControlled(info)) |
+ if (!IsServiceWorkerControlled(info)) { |
+ if (!WasStartedInForegroundOptionalEventInForeground( |
+ timing.paint_timing->first_contentful_paint, info) || |
+ !FromGWSPageLoadMetricsLogger::IsGoogleSearchResultUrl(info.url)) { |
+ return; |
+ } |
+ PAGE_LOAD_HISTOGRAM( |
+ internal::kHistogramServiceWorkerFirstContentfulPaintSearchNoSW, |
+ timing.paint_timing->first_contentful_paint.value()); |
+ PAGE_LOAD_HISTOGRAM( |
+ internal:: |
+ kHistogramServiceWorkerParseStartToFirstContentfulPaintSearchNoSW, |
+ timing.paint_timing->first_contentful_paint.value() - |
+ timing.parse_timing->parse_start.value()); |
return; |
+ } |
if (!WasStartedInForegroundOptionalEventInForeground( |
timing.paint_timing->first_contentful_paint, info)) { |
PAGE_LOAD_HISTOGRAM( |
@@ -135,12 +168,23 @@ void ServiceWorkerPageLoadMetricsObserver:: |
OnFirstMeaningfulPaintInMainFrameDocument( |
const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& info) { |
- if (!IsServiceWorkerControlled(info)) |
- return; |
if (!WasStartedInForegroundOptionalEventInForeground( |
timing.paint_timing->first_meaningful_paint, info)) { |
return; |
} |
+ if (!IsServiceWorkerControlled(info)) { |
+ if (!FromGWSPageLoadMetricsLogger::IsGoogleSearchResultUrl(info.url)) |
+ return; |
+ PAGE_LOAD_HISTOGRAM( |
+ internal::kHistogramServiceWorkerFirstMeaningfulPaintSearchNoSW, |
+ timing.paint_timing->first_meaningful_paint.value()); |
+ PAGE_LOAD_HISTOGRAM( |
+ internal:: |
+ kHistogramServiceWorkerParseStartToFirstMeaningfulPaintSearchNoSW, |
+ timing.paint_timing->first_meaningful_paint.value() - |
+ timing.parse_timing->parse_start.value()); |
+ return; |
+ } |
PAGE_LOAD_HISTOGRAM(internal::kHistogramServiceWorkerFirstMeaningfulPaint, |
timing.paint_timing->first_meaningful_paint.value()); |
PAGE_LOAD_HISTOGRAM( |
@@ -170,12 +214,18 @@ void ServiceWorkerPageLoadMetricsObserver:: |
void ServiceWorkerPageLoadMetricsObserver::OnDomContentLoadedEventStart( |
const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& info) { |
- if (!IsServiceWorkerControlled(info)) |
- return; |
if (!WasStartedInForegroundOptionalEventInForeground( |
timing.document_timing->dom_content_loaded_event_start, info)) { |
return; |
} |
+ if (!IsServiceWorkerControlled(info)) { |
+ if (!FromGWSPageLoadMetricsLogger::IsGoogleSearchResultUrl(info.url)) |
+ return; |
+ PAGE_LOAD_HISTOGRAM( |
+ internal::kHistogramServiceWorkerDomContentLoadedSearchNoSW, |
+ timing.document_timing->dom_content_loaded_event_start.value()); |
+ return; |
+ } |
PAGE_LOAD_HISTOGRAM( |
internal::kHistogramServiceWorkerDomContentLoaded, |
timing.document_timing->dom_content_loaded_event_start.value()); |
@@ -193,11 +243,16 @@ void ServiceWorkerPageLoadMetricsObserver::OnDomContentLoadedEventStart( |
void ServiceWorkerPageLoadMetricsObserver::OnLoadEventStart( |
const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& info) { |
- if (!IsServiceWorkerControlled(info)) |
- return; |
if (!WasStartedInForegroundOptionalEventInForeground( |
timing.document_timing->load_event_start, info)) |
return; |
+ if (!IsServiceWorkerControlled(info)) { |
+ if (!FromGWSPageLoadMetricsLogger::IsGoogleSearchResultUrl(info.url)) |
+ return; |
+ PAGE_LOAD_HISTOGRAM(internal::kHistogramServiceWorkerLoadSearchNoSW, |
+ timing.document_timing->load_event_start.value()); |
+ return; |
+ } |
PAGE_LOAD_HISTOGRAM(internal::kHistogramServiceWorkerLoad, |
timing.document_timing->load_event_start.value()); |
if (IsInboxSite(info.url)) { |