| Index: chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
|
| index e29a4dddf80d95527689e1b14a8d5676605d2e4f..073b9569b9f310f89d8bff94ffc4f2cf5cd078a4 100644
|
| --- a/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
|
| @@ -11,30 +11,50 @@ CssScanningMetricsObserver::CssScanningMetricsObserver() {}
|
|
|
| CssScanningMetricsObserver::~CssScanningMetricsObserver() {}
|
|
|
| +void CssScanningMetricsObserver::OnLoadingBehaviorObserved(
|
| + const page_load_metrics::PageLoadExtraInfo& info) {
|
| + if (css_preload_found_)
|
| + return;
|
| +
|
| + css_preload_found_ = page_load_metrics::DidObserveLoadingBehaviorInAnyFrame(
|
| + info, blink::WebLoadingBehaviorFlag::WebLoadingBehaviorCSSPreloadFound);
|
| +}
|
| +
|
| +page_load_metrics::PageLoadMetricsObserver::ObservePolicy
|
| +CssScanningMetricsObserver::OnStart(
|
| + content::NavigationHandle* navigation_handle,
|
| + const GURL& currently_committed_url,
|
| + bool started_in_foreground) {
|
| + return started_in_foreground ? CONTINUE_OBSERVING : STOP_OBSERVING;
|
| +}
|
| +
|
| +page_load_metrics::PageLoadMetricsObserver::ObservePolicy
|
| +CssScanningMetricsObserver::OnHidden(
|
| + const page_load_metrics::PageLoadTiming&,
|
| + const page_load_metrics::PageLoadExtraInfo&) {
|
| + return STOP_OBSERVING;
|
| +}
|
| +
|
| void CssScanningMetricsObserver::OnFirstContentfulPaint(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - if (info.metadata.behavior_flags &
|
| - blink::WebLoadingBehaviorFlag::WebLoadingBehaviorCSSPreloadFound &&
|
| - WasStartedInForegroundOptionalEventInForeground(
|
| - timing.first_contentful_paint, info)) {
|
| - PAGE_LOAD_HISTOGRAM(
|
| - "PageLoad.Clients.CssScanner.PaintTiming."
|
| - "ParseStartToFirstContentfulPaint",
|
| - timing.first_contentful_paint.value() - timing.parse_start.value());
|
| - }
|
| + if (!css_preload_found_)
|
| + return;
|
| +
|
| + PAGE_LOAD_HISTOGRAM(
|
| + "PageLoad.Clients.CssScanner.PaintTiming."
|
| + "ParseStartToFirstContentfulPaint",
|
| + timing.first_contentful_paint.value() - timing.parse_start.value());
|
| }
|
|
|
| void CssScanningMetricsObserver::OnFirstMeaningfulPaint(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - if (info.metadata.behavior_flags &
|
| - blink::WebLoadingBehaviorFlag::WebLoadingBehaviorCSSPreloadFound &&
|
| - WasStartedInForegroundOptionalEventInForeground(
|
| - timing.first_meaningful_paint, info)) {
|
| - PAGE_LOAD_HISTOGRAM(
|
| - "PageLoad.Clients.CssScanner.Experimental.PaintTiming."
|
| - "ParseStartToFirstMeaningfulPaint",
|
| - timing.first_meaningful_paint.value() - timing.parse_start.value());
|
| - }
|
| + if (!css_preload_found_)
|
| + return;
|
| +
|
| + PAGE_LOAD_HISTOGRAM(
|
| + "PageLoad.Clients.CssScanner.Experimental.PaintTiming."
|
| + "ParseStartToFirstMeaningfulPaint",
|
| + timing.first_meaningful_paint.value() - timing.parse_start.value());
|
| }
|
|
|