Prerender: record CWV metrics for prerendering depending on the trigger type
Currently, Core Web Vitals (CWV) metrics
(e.g. PageLoad.Clients.Prerender.PaintTiming.
ActivationToLargestContentfulPaint2) are recorded regardless of the
trigger type. We want to divide data depending on the trigger type
for experiments.
This CL does
1. expose PrerenderTriggerType to content/public
2. add getter functions to NavigationHandle to make data available
from components/page_load_metrics/
3. plumb the trigger type and the histogram suffix, which are passed to
PrerenderAttributes -> NavigationRequest ->
PrerenderPageLoadMetricsObserver
4. record data depending on the trigger type and append histogram suffix
if necessary.
The test will be added in another CL.
Bug: 1269158
Change-Id: Iab589455fd2e984594b65d61147733efa2dbe67c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270224
Reviewed-by: Hiroki Nakagawa <[email protected]>
Reviewed-by: Egor Pasko <[email protected]>
Reviewed-by: Nasko Oskov <[email protected]>
Reviewed-by: Annie Sullivan <[email protected]>
Reviewed-by: Takashi Toyoshima <[email protected]>
Reviewed-by: Kouhei Ueno <[email protected]>
Commit-Queue: Asami Doi <[email protected]>
Cr-Commit-Position: refs/heads/main@{#945266}
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 8b7f3c9..4f2f831 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -30,6 +30,7 @@
#include "content/public/browser/page.h"
#include "content/public/browser/page_navigator.h"
#include "content/public/browser/prerender_handle.h"
+#include "content/public/browser/prerender_trigger_type.h"
#include "content/public/browser/save_page_type.h"
#include "content/public/browser/visibility.h"
#include "content/public/common/stop_find_action.h"
@@ -1334,7 +1335,9 @@
// disabled, failure happened or because this URL is already being
// prerendered), this function returns a nullptr.
virtual std::unique_ptr<PrerenderHandle> StartPrerendering(
- const GURL& prerendering_url) = 0;
+ const GURL& prerendering_url,
+ PrerenderTriggerType trigger_type,
+ const std::string& embedder_histogram_suffix) = 0;
private:
// This interface should only be implemented inside content.