Index: chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h |
diff --git a/chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h |
index bcebe45350d7db4e8fccecd50f75c8c8ce2d463e..0fdd2573edf17ba32d76abd8380c8da33c1b533f 100644 |
--- a/chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h |
+++ b/chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h |
@@ -17,12 +17,24 @@ namespace prerender { |
class PrerenderManager; |
} |
-// Observer recording metrics related to NoStatePrefetch. |
+// Observer responsible for recording First Contentful Paint metrics related to |
+// NoStatePrefetch. |
+// |
+// This observer should be attached to all WebContents instances that are _not_ |
+// being prerendered. For prerendered page loads, analagous metrics are recorded |
+// via |PrerenderPageLoadMetricsObserver|. This allows to compare FCP metrics |
+// between three mechanisms: Prerender, NoStatePrefetch, Noop. |
+// |
+// To record the histograms the knowledge of this class is combined with |
+// information from |PrerenderManager|: |
+// * the kind of prefetch, i.e.: prerender::Origin |
+// * whether the load was eligible for prefetch/prerender (also how long ago) |
class NoStatePrefetchPageLoadMetricsObserver |
: public page_load_metrics::PageLoadMetricsObserver { |
public: |
// Returns a NoStatePrefetchPageLoadMetricsObserver, or nullptr if it is not |
- // needed. |
+ // needed. Note: can return nullptr at startup, which is believed to be |
+ // happening rarely. |
static std::unique_ptr<NoStatePrefetchPageLoadMetricsObserver> CreateIfNeeded( |
content::WebContents* web_contents); |