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..7e74ccff073730050965ccb2142aa3b543375d5d 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,26 @@ namespace prerender { |
class PrerenderManager; |
} |
-// Observer recording metrics related to NoStatePrefetch. |
+// Records First Contentful Paint metrics related to NoStatePrefetch. |
+// |
+// This observer should be attached to all WebContents instances that are not |
+// being prerendered. This is because the metrics it records include the boolean |
+// bit to tell whether the page was recently eligible for prefetching with |
+// NoStatePrefetch prior to the FCP. A prefetched (with NoStatePrefetch) page |
+// would load just like a normal new WebContents without knowledge of previous |
+// prefetches. The fact that it was prefetched can only be discovered by asking |
+// the PrerenderManager at the FCP time. |
+// |
+// Attaching to all non-prerendered WebContents allows to collect these metrics |
+// in other experimental groups (for Prerender and for the simple load) to |
+// record how these groups perform on web pages that would otherwise have been |
+// prefetched with NostatePrefetch. |
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); |