<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of Page histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="BackgroundSuffix">
<variant name="" summary="never backgrounded during the navigation"/>
<variant name=".WasBackgrounded"
summary="backgrounded at least once during the navigation"/>
</variants>
<variants name="BrowserInitializationStatus">
<variant name="" summary="any"/>
<variant name=".IsBrowserStarting"
summary="browser initilization in progress"/>
</variants>
<variants name="Gap">
<variant name="1000ms"/>
</variants>
<variants name="HiddenSuffix">
<variant name="" summary="never hidden during the navigation"/>
<variant name=".WasHidden"
summary="hidden at least once during the navigation"/>
</variants>
<variants name="LoadedIdleVisibility">
<variant name="" summary="all pages"/>
<variant name=".Background"
summary="pages that were hidden during the navigation"/>
<variant name=".Foreground"
summary="pages that were visible during the navigation"/>
<variant name=".MixedBGFG"
summary="pages that were hidden for only part of the navigation"/>
</variants>
<variants name="MaxWindowSize">
<variant name="5000ms"/>
</variants>
<variants name="NavigationAbandonReason">
<variant name="" summary="any reason"/>
<variant name=".AppBackgrounded" summary="AppBackgrounded"/>
<variant name=".ErrorPage" summary="ErrorPage"/>
<variant name=".ExplicitCancellation" summary="ExplicitCancellation"/>
<variant name=".FailedSecurityCheck" summary="FailedSecurityCheck"/>
<variant name=".FrameRemoved" summary="FrameRemoved"/>
<variant name=".Hidden" summary="Hidden"/>
<variant name=".InternalCancellation" summary="InternalCancellation"/>
<variant name=".NeverStarted" summary="NeverStarted"/>
<variant name=".NewHistoryNavigation" summary="NewHistoryNavigation"/>
<variant name=".NewOtherNavigationBrowserInitiated"
summary="NewOtherNavigationBrowserInitiated"/>
<variant name=".NewOtherNavigationRendererInitiated"
summary="NewOtherNavigationRendererInitiated"/>
<variant name=".NewReloadNavigation" summary="NewReloadNavigation"/>
<variant name=".Other" summary="Other"/>
<variant name=".RenderProcessGone" summary="RenderProcessGone"/>
</variants>
<variants name="NavigationCountType">
<variant name="IsFirstNavigation"
summary="first navigation after browser started"/>
<variant name="IsSubsequentNavigation"
summary="subsequent navigation after browser started"/>
</variants>
<!-- LINT.IfChange(NavigationMilestone) -->
<variants name="NavigationMilestone">
<variant name="AFTEnd"/>
<variant name="AFTStart"/>
<variant name="BodyChunkEnd" summary="BodyChunkEnd (added in M129)"/>
<variant name="BodyChunkStart" summary="BodyChunkStart (added inM129)"/>
<variant name="CommitReceived"/>
<variant name="CommitSent"/>
<variant name="DidCommit"/>
<variant name="DOMContentLoaded"/>
<variant name="FirstContentfulPaint"/>
<variant name="FirstRedirectedRequestStart"/>
<variant name="FirstRedirectResponseLoaderCallback"/>
<variant name="FirstRedirectResponseStart"/>
<variant name="HeaderChunkEnd" summary="HeaderChunkEnd (added in M129)"/>
<variant name="HeaderChunkStart" summary="HeaderChunkStart (added in M129)"/>
<variant name="LargestContentfulPaint"
summary="LargestContentfulPaint (Warning: There were some duplicated
records in M128-129, crrev.com/c/5802697 for more details)"/>
<variant name="LoaderStart"/>
<variant name="LoadEventStarted"/>
<variant name="NavigationStart"/>
<variant name="NonRedirectedRequestStart"/>
<variant name="NonRedirectResponseLoaderCallback"/>
<variant name="NonRedirectResponseStart"/>
<variant name="ParseStart"/>
</variants>
<!-- LINT.ThenChange(//components/page_load_metrics/browser/observers/abandoned_page_load_metrics_observer.h:NavigationMilestone) -->
<variants name="NonSRPSuffix">
<variant name="" summary="the navigation never targeted non-SRP URL"/>
<variant name=".WasNonSRP"
summary="the navigation previously targeted non-SRP URL"/>
</variants>
<variants name="ObservedNavigation">
<variant name="" summary="all navigations"/>
<variant name=".GoogleSearch" summary="SRP navigations"/>
</variants>
<variants name="PageLoadType">
<variant name="" summary="regular"/>
<variant name=".AfterBackForwardCacheRestore" summary="bfcache restoration"/>
<variant name=".Prerender" summary="prerendered"/>
</variants>
<!-- LINT.IfChange(PagePreloadingTriggerType) -->
<variants name="PagePreloadingTriggerType">
<variant name=".Embedder_BookmarkBar"/>
<variant name=".Embedder_DefaultSearchEngine"/>
<variant name=".Embedder_DirectURLInput"/>
<variant name=".Embedder_NewTabPage"/>
<variant name=".SpeculationRule"/>
<variant name=".SpeculationRuleFromAutoSpeculationRules"/>
<variant name=".SpeculationRuleFromIsolatedWorld"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/navigation/histograms.xml:PagePreloadingTriggerType) -->
<variants name="PrivacySandboxAdsApi">
<variant name="AttributionReporting"/>
<variant name="FencedFrames"/>
<variant name="PrivateAggregation"/>
<variant name="ProtectedAudienceJoinAdInterestGroup"/>
<variant name="ProtectedAudienceRunAdAuction"/>
<variant name="SharedStorage"/>
<variant name="Topics"/>
</variants>
<!-- LINT.IfChange(BlinkRequestDestination) -->
<variants name="RequestDestination">
<variant name="audio"/>
<variant name="audioworklet"/>
<variant name="document"/>
<variant name="embed"/>
<variant name="empty"/>
<variant name="fencedframe"/>
<variant name="font"/>
<variant name="frame"/>
<variant name="iframe"/>
<variant name="image"/>
<variant name="manifest"/>
<variant name="object"/>
<variant name="paintworklet"/>
<variant name="report"/>
<variant name="script"/>
<variant name="serviceworker"/>
<variant name="sharedworker"/>
<variant name="style"/>
<variant name="track"/>
<variant name="video"/>
<variant name="webbundle"/>
<variant name="worker"/>
<variant name="xslt"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/blink/histograms.xml:BlinkRequestDestination) -->
<variants name="RTTBucketSuffix">
<variant name="" summary="any"/>
<variant name=".RTT200To450" summary="RTT between 200 to 450ms"/>
<variant name=".RTTAbove450" summary="RTT greater than 450ms"/>
<variant name=".RTTBelow200" summary="RTT less than 200ms"/>
<variant name=".RTTUnkown" summary="RTT unkown"/>
</variants>
<variants name="TabInitializationStatus">
<variant name="" summary="any"/>
<variant name=".IsNewTab" summary="navigation directly after a new tab"/>
</variants>
<!-- LINT.IfChange(TopChromeWebUIName) -->
<variants name="WebUIName">
<variant name=""/>
<variant name=".BookmarksSidePanel"/>
<variant name=".CompanionSidePanelUntrusted"/>
<variant name=".Compose"/>
<variant name=".CustomizeChrome"/>
<variant name=".DataSharingBubble"/>
<variant name=".Emoji"/>
<variant name=".Feed"/>
<variant name=".HistoryClustersSidePanel"/>
<variant name=".LensSearchBubble"/>
<variant name=".LensUntrusted"/>
<variant name=".MakoUntrusted"/>
<variant name=".PerformanceSidePanel"/>
<variant name=".ReadAnythingUntrusted"/>
<variant name=".ReadingList"/>
<variant name=".ShoppingInsightsSidePanel"/>
<variant name=".TabSearch"/>
<variant name=".UserNotesSidePanel"/>
</variants>
<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/others/histograms.xml:TopChromeWebUIName) -->
<variants name="Window">
<variant name="SessionWindow"/>
</variants>
<histogram name="PageActionController.ActionTypeShown2"
enum="PageActionIconType" expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of Page Action currently shown. Logged once per ephemeral page
action the first time it becomes visible on a given page. Tab switches will
only trigger logging for any page actions that have not already been logged
as visible on this page.
</summary>
</histogram>
<histogram name="PageActionController.ExtensionsWithPageActions" units="units"
expires_after="2023-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Extensions that have Page Actions. Measured once per profile
open.
Histogram is in the process of being removed in in favor of
Extensions.ExtensionsWithPageActions that emits only on profile open for
"user" profiles (profiles where people can install extensions,
specifically profiles that can have non-component extensions installed).
</summary>
</histogram>
<histogram name="PageActionController.Icon.CTR2" enum="PageActionCTREvent"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records events related to overall ephemeral page action icon click through
rate (CTR) calculation.
The CTR can be calculated by computing "Clicked" /
"Shown". "Clicked" means the page action icon was
clicked. "Shown" means that the page action icon was displayed.
"Shown" is logged once per page action the first time it becomes
visible on a given page, and "Clicked" is logged once per click.
</summary>
</histogram>
<histogram name="PageActionController.Icon.NumberActionsShownWhenClicked"
units="actions" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of ephemeral Page Actions currently shown. Measured each time a
page action icon is clicked.
</summary>
</histogram>
<histogram name="PageActionController.NumberActionsShown2" units="actions"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of ephemeral Page Actions currently shown. Measured each time a
new page is loaded, and then again when each new page action appears on the
same page.
</summary>
</histogram>
<histogram name="PageActionController.PagesWithActionsShown2"
enum="PageActionPageEvent" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records events related to percentage of pages with actions calculation.
The percentage of pages with at least one ephemeral action shown can be
calculated by computing "Action Shown" / "Page Shown".
The percentage of pages with multiple ephemeral actions shown can be
calculated by computing "Multiple Actions Shown" / "Page
Shown". "Page Shown" is logged once when a given page is
first loaded, "Action Shown" is logged when the first page action
is displayed on a given page, and "Multiple Actions Shown" is
logged the first time a page action appears on a given page alongside a
second page action.
</summary>
</histogram>
<histogram name="PageActionController.{PageActionType}.Icon.CTR2"
enum="PageActionCTREvent" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records events related to {PageActionType} page action icon click through
rate (CTR) calculation.
The CTR can be calculated by computing "Clicked" /
"Shown". "Clicked" means the page action icon was
clicked. "Shown" means that the page action icon was displayed.
"Shown" is logged once per page action the first time it becomes
visible on a given page, and "Clicked" is logged once per click.
</summary>
<token key="PageActionType">
<variant name="BookmarksStar"/>
<variant name="ClickToCall"/>
<variant name="CookieControls"/>
<variant name="FileSystemAccess"/>
<variant name="Find"/>
<variant name="IntentPicker"/>
<variant name="LensOverlay"/>
<variant name="LocalCardMigration"/>
<variant name="ManagePasswords"/>
<variant name="MandatoryReauth"/>
<variant name="MemorySaver"/>
<variant name="PaymentsOfferNotification"/>
<variant name="PriceInsights"/>
<variant name="PriceTracking"/>
<variant name="ProductSpecifications"/>
<variant name="PWAInstall"/>
<variant name="QRCodeGenerator"/>
<variant name="ReadAnything"/>
<variant name="ReaderMode"/>
<variant name="SaveAutofillAddress"/>
<variant name="SaveCard"/>
<variant name="SaveIban"/>
<variant name="SendTabToSelf"/>
<variant name="SharingHub"/>
<variant name="SideSearch"/>
<variant name="SMSRemoteFetcher"/>
<variant name="Translate"/>
<variant name="VirtualCardEnroll"/>
<variant name="VirtualCardManualFeedback"/>
<variant name="Zoom"/>
</token>
</histogram>
<histogram base="true"
name="PageLoad.AdPaintTiming.NavigationToFirstContentfulPaint3" units="ms"
expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from frame navigation start to FirstContentfulPaint of each
ad frame that receives a FirstContentfulPaint. The time could be quite
large, as some ads don't paint until they're scrolled into view. But the
metric is still useful in aggregate.
Recorded for all ad frames with non-zero bytes or cpu usage that receive a
FirstContentfulPaint. Recorded when the ad frame or page is destroyed.
Changes to how cross-origin content is loaded (e.g., security policies,
network prioritization) or to iframes can certainly affect this metric.
Do not modify this metric in any way without contacting
[email protected].
</summary>
</histogram>
<histogram base="true"
name="PageLoad.AdPaintTiming.TopFrameNavigationToFirstContentfulPaint"
units="ms" expires_after="2024-10-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from top frame navigation start to FirstContentfulPaint of
each ad frame that receives a FirstContentfulPaint. The time could be quite
large, as some ads don't paint until they're scrolled into view. But the
metric is still useful in aggregate.
Recorded for all ad frames with non-zero bytes or cpu usage that receive a
FirstContentfulPaint. Recorded when the ad frame or page is destroyed.
Changes to how cross-origin content is loaded (e.g., security policies,
network prioritization) or to iframes can certainly affect this metric.
</summary>
</histogram>
<histogram name="PageLoad.BackForwardCache.Event"
enum="PageLoadBackForwardCacheEvent" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the events related to the back-forward cache, like when the page is
put into the back-forward cache.
</summary>
</histogram>
<histogram name="PageLoad.BeforeSoftNavigation.CumulativeLayoutShift"
units="ms" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a session window before any soft navigation happens. The gap
between two consecutive shifts in a window is not bigger than 1000ms and the
maximum window size is 5000ms. This metric's integral value is 100x the
fractional cumulative layout shift score described in the explainer.
</summary>
</histogram>
<histogram name="PageLoad.BeforeSoftNavigation.InteractionToNextPaint"
units="ms" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
An approximation of a high percentile of user interaction latency of a page
load before any soft navigation happens, in ms. For this metric, we measure
the latency of user interactions as described here: https://web.dev/inp
</summary>
</histogram>
<histogram base="true" name="PageLoad.Bytes" units="KB"
expires_after="2025-07-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Only recorded if the page has at least one identified ad frame. Recorded in
PageLoadMetrics when the page is destroyed. Bytes include all bytes used by
the network to load a resource and response body bytes for cached resources
(from both the HTTP and memory caches). An ad frame consists of the
identified ad frame and all of its children (which may also be ads, but are
counted as part of the ancestor ad frame). Includes resources that did not
finish loading.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Ads.AdPaintTiming.TopFrameNavigationToFirstAdFirstContentfulPaint"
units="ms" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from the top frame navigation until the first ad-frame on
the page reaches FirstContentfulPaint. Note that offscreen iframes don't
reach FCP until they're scrolled into view, so it can be long.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Ads.AdPaintTiming.TopFrameNavigationToFirstAdFirstContentfulPaintAfterNoAuction"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from the top frame navigation until the first ad-frame on
the page reaches FirstContentfulPaint. Only recorded if no Fledge auction
(on-device or server) was completed before the frame was painted (but an
auction could have been aborted). Note that offscreen iframes don't reach
FCP until they're scrolled into view, so it can be long.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Ads.AdPaintTiming.TopFrameNavigationToFirstAdFirstContentfulPaintAfterServerAndDeviceAuctions"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from the top frame navigation until the first ad-frame on
the page reaches FirstContentfulPaint. Only recorded if both a server and an
on-device Fledge auction completed with or without a winner (and was not
aborted). This could have been multiple auctions or a single hybrid auction.
Note that offscreen iframes don't reach FCP until they're scrolled into
view, so it can be long.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Ads.AdPaintTiming.TopFrameNavigationToFirstAdFirstContentfulPaintAfter{AuctionType}Auction"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time from the top frame navigation until the first ad-frame on
the page reaches FirstContentfulPaint. Only recorded if a Fledge
{AuctionType} auction completed with or without a winner (and was not
aborted) and no non-{AuctionType} auction was completed before the frame was
painted. Note that offscreen iframes don't reach FCP until they're scrolled
into view, so it can be long.
</summary>
<token key="AuctionType">
<variant name="Device" summary="on-device"/>
<variant name="Server" summary="server"/>
</token>
</histogram>
<histogram name="PageLoad.Clients.Ads.AllPages.NonAdNetworkBytes" units="KB"
expires_after="2024-10-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Total number of network bytes that went towards loading non-ad resources for
a single page over its entire lifetime. This includes resources that did not
finish or were canceled. Only recorded for pages with non-zero total bytes,
including those without an ad frame and pages with no ad resources. Recorded
when the page is destroyed.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.AllPages.PercentNetworkBytesAds"
units="%" expires_after="2024-10-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of network bytes loaded by the page that are attributed to ad
resources (including ad resources in the main frame) across the entire page
load. Only recorded for pages with non-zero network bytes, including those
without an ad frame and pages with no ad resources. Recorded when the page
is destroyed.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.AllPages.PercentTotalBytesAds" units="%"
expires_after="2025-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of all bytes loaded by the page that are attributed to ad
resources (including ad resources in the main frame) across the entire page
load. Only recorded for pages with non-zero total bytes, including those
without an ad frame and pages with no ad resources. Recorded when the page
is destroyed.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.AverageViewportAdDensity" units="%"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The estimated average viewport ad density. Each density sample value is
calculated as the area of (iframe and img) ads within the viewport * 100 /
viewport area, where each overlapping area is counted once. And this metric
takes the average of the densities accumulated over the page load time
rounded to the nearest integer. Recorded when the page is destroyed.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.DisallowedByBlocklist"
enum="BooleanBlocked" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the heavy ad intervention was disallowed by the blocklist on
a frame. Only recorded when the heavy ad blocklist is enabled and available
(e.g. this is not recorded in incognito mode).
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.HeavyAds.NetworkBytesAtFrameUnload"
units="bytes" expires_after="2025-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of network bytes used by a heavy ad unloaded due to
network usage by the heavy ad intervention. It is recorded at the time of
unload and the value may be larger than the heavy ads threshold due to the
delay in unloading an ad.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.Memory.MainFrame.Max" units="KiB"
expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum reported number of kilobytes of memory used by V8 by the main
frame in this pageload.
Only recorded if the page has at least one identified ad frame. Recorded in
PageLoadMetrics when the page is destroyed. An ad frame consists of the
identified ad frame and all of its children (which may also be ads, but are
counted as part of the ancestor ad frame).
Warning: This histogram has incomplete data. It expired in 03/2022 and was
unexpired in 11/2023.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.Memory.UpdateCount" units="count"
expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of V8 memory measurement updates received by
AdsPageLoadMetricsObserver per pageload. Only recorded if the page has at
least one identified ad frame. Recorded in PageLoadMetrics when the page is
destroyed.
Warning: This histogram has incomplete data. It expired in 06/2022 and was
unexpired in 11/2023.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Ads2" units="KB"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Total number of network bytes that went towards loading ad resources for a
single page over it's entire lifetime. This includes resources that did not
finish or were canceled. Only recorded for pages with non-zero ad bytes.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.Experimental.PageTiming.InputToNavigation.Subframe"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from the user input that triggers the top-level navigation for an
AMP document to the time that the navigation for the AMP document is
initiated in the AMP frame. This gives insight into how often AMP documents
are navigated to via same document navigations without being prerendered.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.Experimental.PageTiming.MainFrameToSubFrameNavigationDelta.Subframe"
units="ms" expires_after="2023-04-11">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from the main frame navigation to the subsequent subframe
navigation for the AMP document. Only recorded for non-same-page
navigations.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.InteractiveTiming.FirstInputDelay4.Subframe.FullNavigation"
units="ms" expires_after="M97">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation, in an AMP subframe document. Recorded on first page
interaction. See https://goo.gl/tr1oTZ for a detailed explanation. Excludes
scrolls. Only non-same-document navigations are included.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.InteractiveTiming.NumInteractions.Subframe"
units="Count" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of interactions of a page load, in AMP subframe. Definition of an
interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.InteractiveTiming.{NormalizedResponsivenessMetric}.{UserInteractionLatency}.Subframe{FullNavigation}"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The {NormalizedResponsivenessMetric} of a page load, in AMP subframes, in
ms. For this metric, we measure the latency of a user interaction by the
{UserInteractionLatency} within the user interaction. Full navigation means
we only include non-same-document navigations, otherwise we only include
same-document navigations.
Recorded at the end of the AMP document lifetime, such as when the document
is being navigated away from.
</summary>
<token key="FullNavigation">
<variant name=""/>
<variant name=".FullNavigation"/>
</token>
<token key="NormalizedResponsivenessMetric">
<variant name="UserInteractionLatency.HighPercentile2"/>
<variant name="WorstUserInteractionLatency"/>
</token>
<token key="UserInteractionLatency">
<variant name="MaxEventDuration"/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.AMP.LayoutInstability.MaxCumulativeShiftScore.Subframe.SessionWindow.Gap1000ms.Max5000ms2"
units="scorex10000" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in the AMP subframe. The gap between two consecutive shifts in a
window is not bigger than 1000ms and the maximum window size is 5000ms. This
metric's integral value is 10000x the fractional cumulative layout shift
score described in the explainer. If {Bfcache} is triggered, we record the
metric when the user navigates away or closes the page after the page was
restored from back-forward cache. Otherwise, we record it at the end of the
page lifetime, such as when the page is being navigated away from or when a
tab is being closed.
Recorded for non same-document AMP navigations in the main frame, at the end
of the AMP document lifetime, such as when the document is being navigated
away from.
Replaces
PageLoad.Clients.AMP.LayoutInstability.MaxCumulativeShiftScore.Subframe.SessionWindow.Gap1000ms.Max5000ms
and increases granularity in order to get more coverage for ~40% of the
values in the 0-0.1 range.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.LayoutInstability.MaxCumulativeShiftScore.Subframe.{Navigation}{Window}.Gap{Gap}.Max{MaxWindowSize}"
units="scorex10" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a {Window}, in the AMP subframe. The gap between two consecutive
shifts in a window is not bigger than {Gap} and the maximum window size is
{MaxWindowSize}. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer. If the
{Navigation} is FullNavigation, we record the metric for non same-document
AMP navigations in the main frame, at the end of the AMP document lifetime,
such as when the document is being navigated away from. Otherwise, only
same-document navigations are included.
</summary>
<token key="Navigation">
<variant name=""/>
<variant name="FullNavigation."/>
</token>
<token key="Window" variants="Window">
<variant name=""/>
</token>
<token key="Gap" variants="Gap">
<variant name=""/>
</token>
<token key="MaxWindowSize" variants="MaxWindowSize">
<variant name=""/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToFirstContentfulPaint.Subframe"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from user input to first "contentful" paint in an AMP
subframe document. Will be zero or near-zero in cases where the AMP subframe
document was prerendered. Only same-document navigations are included.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToFirstContentfulPaint.Subframe.FullNavigation"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from user input to first "contentful" paint in an AMP
subframe document. Only non-same-document navigations are included.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentfulPaint.Subframe"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from user input to largest "contentful" paint in an AMP
subframe document. Only same-document navigations are included.
Excludes any content painted after user input. The value is recorded at the
end of each page load unless there is an abort or user input before text or
image paint. See http://bit.ly/fcp_plus_plus for details.
Will be zero or near-zero in cases where the AMP subframe document was
prerendered.
This histogram has incomplete data. It expired after M78 and was re-added in
M90.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.AMP.PaintTiming.InputToLargestContentfulPaint.Subframe.FullNavigation"
units="ms" expires_after="2025-01-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from user input to largest "contentful" paint in an AMP
subframe document. Only non-same-document navigations are included.
Excludes any content painted after user input. The value is recorded at the
end of each page load unless there is an abort or user input before text or
image paint. See http://bit.ly/fcp_plus_plus for details.
This histogram has incomplete data. It expired after M78 and was re-added in
M90, also after 2022-12-11 until M111, and also after 2023-06-18 until M121.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.InteractiveTiming.FirstInputDelay4"
units="ms" expires_after="2025-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation. Recorded on first FencedFrames' page interaction. See
https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.LayoutInstability.CumulativeShiftScore"
units="scorex10" expires_after="2024-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/lsm-explainer) that has
occurred on the FencedFrames page (including all subframes). Higher values
correspond to greater instability, which is bad. Recorded at the end of the
page lifetime, such as when the page is being navigated away from or when a
tab is being closed. On Android it's done when the browser is backgrounded.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.LayoutInstability.CumulativeShiftScore.MainFrame"
units="scorex10" expires_after="2025-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/lsm-explainer) that has
occurred in the FencedFrames page's main frame. Recorded at the end of the
page lifetime, such as when the page is being navigated away from or when a
tab is being closed. On Android, it's done when the browser is backgrounded.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from navigation start to first "contentful" paint. This
metric does not include all FencedFrames' page loads. Recorded iff the page
loads and the event happens in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.PaintTiming.NavigationToFirstImagePaint"
units="ms" expires_after="2025-10-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
first image is painted, for FencedFrames' main frame documents. For images
that render progressively, this is recorded as soon as any image pixels have
been drawn iff the page loads and the event happens in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.PaintTiming.NavigationToFirstPaint"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
first paint is performed, for FencedFrames' main frame documents. Recorded
iff the page loads and the event happens in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FencedFrames.PaintTiming.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, across all frames under
the FencedFrames root. Excludes any content painted after user input.
Includes content that has been removed from the page. See web.dev/lcp for
more details.
The value is recorded at the end of each page load or the latest time when
we can reliably record: when the page is navigated away, the browser is
closed, or on Android when the browser is backgrounded, iff the page loads
and the event happens in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FromGoogleSearch.FromSidePanel.InteractiveTiming.FirstInputDelay4"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation. See https://goo.gl/tr1oTZ for a detailed explanation.
Only recorded for side search navigations from the side panel that happen
entirely in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FromGoogleSearch.FromSidePanel.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2"
units="scorex10000" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a Window. The gap between two consecutive shifts in a window is
not bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 10000x the fractional cumulative layout shift score
described in the explainer. Only recorded for side search navigations from
the side panel. The metric is emitted when the navigation is completed or
the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FromGoogleSearch.FromSidePanel.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints content, in the AMP subframe. A
contentful paint includes a paint of text, image, SVG, or canvas. Only
recorded for side search navigations from the side panel that happen
entirely in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FromGoogleSearch.FromSidePanel.PaintTiming.NavigationToFirstImagePaint"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
first image is painted, for main frame documents. For images that render
progressively, this is recorded as soon as any image pixels have been drawn.
Only recorded for side search navigations from the side panel that happen
entirely in the foreground.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.FromGoogleSearch.FromSidePanel.PaintTiming.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints the experimental largest content
(text or image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details. Differs
from SubFrame.PaintTiming.NavigationToLargestContentfulPaint in that removed
content is still considered a valid candidate. Only recorded for side search
navigations from the side panel that happen entirely in the foreground. The
metric is emitted when the navigation is completed or the app is
backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleHomepage.DomainLookupTiming.NavigationToDomainLookupEnd.{NavigationCountType}{BrowserInitializationStatus}"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time for {NavigationCountType} ({BrowserInitializationStatus})
from navigation start to the time the domain lookup ended, for Google
Homepage loads. Only recorded for Homepage navigations that start in the
foreground and stay in the foreground until domain lookup end. This metric
is recorded when the browser finished conducting DNS lookup.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleHomepage.DomainLookupTiming.NavigationToDomainLookupStart.{NavigationCountType}{BrowserInitializationStatus}"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time for {NavigationCountType} ({BrowserInitializationStatus})
from navigation start to the time the domain lookup started, for Google
Homepage loads. Only recorded for Homepage navigations that start in the
foreground and stay in the foreground until domain lookup start. This metric
is recorded when the browser started to conduct DNS lookup.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleHomepage.NavigationTiming.NavigationToConnectStart.{NavigationCountType}{BrowserInitializationStatus}"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time for {NavigationCountType} ({BrowserInitializationStatus})
from navigation start to connect start, for Google Homepage loads. Only
recorded for Homepage navigations that start in the foreground and stay in
the foreground until connect start. This metric is recorded when the browser
started to establish connection.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleHomepage.ParseTiming.NavigationToParseStart.{NavigationCountType}{BrowserInitializationStatus}"
units="ms" expires_after="2024-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time for {NavigationCountType} ({BrowserInitializationStatus})
from navigation start to parse start, for Google Homepage loads. Only
recorded for Homepage navigations that start in the foreground and stay in
the foreground until parse start. This metric is recorded when the parser
started.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FinalRequestConnectDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by connection establishment for the final HTTP request
which is sent for the main resource of a main frame navigation, for Google
Search page loads. Only recorded for Search navigations that happen entirely
in the foreground. The metric is emitted when the navigation is completed or
the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FinalRequestDomainLookupDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by domain lookup for the final HTTP request which is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FinalRequestSslDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by SSL handshake for the final HTTP request which is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FirstRequestConnectDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by connection establishment for the first HTTP request
which is sent for the main resource of a main frame navigation, for Google
Search page loads. Only recorded for Search navigations that happen entirely
in the foreground. The metric is emitted when the navigation is completed or
the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FirstRequestDomainLookupDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by domain lookup for the first HTTP request which is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ConnectTiming.FirstRequestSslDelay"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay caused by SSL handshake for the first HTTP request which is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram name="PageLoad.Clients.GoogleSearch.CSI.{Event}" units="ms"
expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time {Event}, for Google Search page loads. The recorded values
are calculated based on the metrics recorded by the JavaScript, which is
done after the naivagation commit phase in Search. The metric is emitted
when the navigation is completed or the app is backgrounded on Android. This
is onlly recorded in the outermost main frame.
Note that this event is randomly sampled based on the JavaScript in the
page, recorded at the frequency of 1%.
</summary>
<token key="Event">
<variant name="HeadChunkContentTime" summary="to process header chunk"/>
<variant name="SearchContentTime"
summary="from the server response time to receive the body chunk"/>
<variant name="TimeBetweenHCTAndSCT"
summary="between HeadChunkContentTime and SearchContentTime"/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.DomainLookupTiming.NavigationToDomainLookupEnd2.{NavigationCountType}{BrowserInitializationStatus}{TabInitializationStatus}"
units="ms" expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
domain lookup ended of {NavigationCountType} ({BrowserInitializationStatus},
{TabInitializationStatus}), for Google Search page loads. Only recorded for
Search navigations that start in the foreground and stay in the foreground
until domain lookup end.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
<token key="TabInitializationStatus" variants="TabInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.DomainLookupTiming.NavigationToDomainLookupStart2.{NavigationCountType}{BrowserInitializationStatus}{TabInitializationStatus}"
units="ms" expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
domain lookup started of {NavigationCountType}
({BrowserInitializationStatus}, {TabInitializationStatus}), for Google
Search page loads. Only recorded for Search navigations that start in the
foreground and stay in the foreground until domain lookup start.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
<token key="TabInitializationStatus" variants="TabInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFinalLoaderCallback"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a callback for the navigation
loader is last invoked for the main resource of a main frame navigation, for
Google Search page loads. Only recorded for Search navigations that happen
entirely in the foreground. The metric is emitted when the navigation is
completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFinalRequestStart"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the final HTTP request is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFinalResponseStart"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the headers of the final HTTP
response is received for the main resource of a main frame navigation, for
Google Search page loads. Only recorded for Search navigations that happen
entirely in the foreground. The metric is emitted when the navigation is
completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFirstLoaderCallback"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a callback for the navigation
loader is first invoked for the main resource of a main frame navigation,
for Google Search page loads. Only recorded for Search navigations that
happen entirely in the foreground. The metric is emitted when the navigation
is completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFirstRequestStart"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the first HTTP request is sent
for the main resource of a main frame navigation, for Google Search page
loads. Only recorded for Search navigations that happen entirely in the
foreground. The metric is emitted when the navigation is completed or the
app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToFirstResponseStart"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the headers of the first HTTP
response is received for the main resource of a main frame navigation, for
Google Search page loads. Only recorded for Search navigations that happen
entirely in the foreground. The metric is emitted when the navigation is
completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationStartToOnComplete"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the page load metrics observer is
destructed (i.e. the page is closed), for Google Search page loads. The
metric is emitted when the navigation is completed.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.NavigationTiming.NavigationToConnectStart2.{NavigationCountType}{BrowserInitializationStatus}{TabInitializationStatus}"
units="ms" expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
navigation start of {NavigationCountType} ({BrowserInitializationStatus},
{TabInitializationStatus}), for Google Search page loads. Only recorded for
Search navigations that start in the foreground and stay in the foreground
until connect start.
In cases where navigation start occurs after connect start (e.g. pre-fetch,
pre-connect), this metric will contain zero.
</summary>
<token key="NavigationCountType" variants="NavigationCountType"/>
<token key="BrowserInitializationStatus"
variants="BrowserInitializationStatus"/>
<token key="TabInitializationStatus" variants="TabInitializationStatus"/>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints content, for Google Search page
loads. A contentful paint includes a paint of text, image, SVG, or canvas.
Only recorded for Search navigations that start in the foreground and stay
in the foreground until the first contentful paint.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.PaintTiming.NavigationToLargestContentfulPaint"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints the experimental largest content
(text or image) within viewport, for Google Search page loads. See
http://bit.ly/largest_contentful_paint_explainer for more details. Differs
from SubFrame.PaintTiming.NavigationToLargestContentfulPaint in that removed
content is still considered a valid candidate. Only recorded for Search
navigations that happen entirely in the foreground. The metric is emitted
when the navigation is completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram name="PageLoad.Clients.GoogleSearch.PaintTiming.{MileStone}"
units="ms" expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation start to the time {MileStone}, for Google
Search page loads. The actual value is recorded via `startTime` in
performance.mark()'s markOptions. If `startTime` is not set, this metric is
not recorded. This is recorded by emitting `perforamnce.mark()` in
JavaScript, which is done after the naivagation commit phase in Search. This
is onlly recorded in the outermost main frame.
</summary>
<token key="MileStone">
<variant name="AFTEnd" summary="AFT end event is sent"/>
<variant name="AFTStart" summary="AFT start event is sent"/>
<variant name="BodyChunkEnd"
summary="end of the header chunk start event is sent"/>
<variant name="BodyChunkStart" summary="beginning of the body chunk"/>
<variant name="HeaderChunkEnd"
summary="end of the header chunk start event is sent"/>
<variant name="HeaderChunkStart" summary="beginning of the header chunk"/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.GoogleSearch.ParseTiming.NavigationToParseStart"
units="ms" expires_after="2025-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
parser started, for Google Search page loads. Only recorded for Search
navigations that start in the foreground and stay in the foreground until
parse start.
This metric has incomplete data. It was expired between 2023-10-01 and M121.
</summary>
</histogram>
<histogram name="PageLoad.Clients.LCPP.PaintTiming.ActualLCPIndex"
units="Index(1 origin)" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the actual index in learned element locators ordered by frequency up
to "max_lcpp_histogram_buckets" in LCP timing prediction. If
actual LCP is out of locators, that is recorded as
"max_lcpp_histogram_buckets" + 1 value. The metric is emitted only
for navigations that LCP Critical Path Predictor provided non-empty hint
data and only once when the user navigates away from the page.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.LCPP.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the time from navigation start to the first contentful paint. The
metric is emitted only for navigations that LCP Critical Path Predictor
provided non-empty hint data.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.LCPP.PaintTiming.NavigationToLargestContentfulPaint"
units="ms" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Measures the time from navigation start to the largest contentful paint. The
metric is emitted only for navigations that LCP Critical Path Predictor
provided non-empty hint data.
</summary>
</histogram>
<histogram name="PageLoad.Clients.LCPP.PaintTiming.PredictHitIndex"
units="Index(1 origin)" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the hit index in learned element locators ordered by frequency up to
"max_lcpp_histogram_buckets" when LCP timing predicor succeedded.
The metric is emitted only for navigations that LCP Critical Path Predictor
provided non-empty hint data and only once when the user navigates away from
the page.
</summary>
</histogram>
<histogram name="PageLoad.Clients.LCPP.PaintTiming.PredictLCPResult"
enum="LcppPredictResult" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>
src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS
</owner>
<summary>
Records the result of LCP timing predicor. The metric is emitted only for
navigations that LCP Critical Path Predictor provided non-empty hint data
and only once when the user navigates away from the page.
</summary>
</histogram>
<histogram name="PageLoad.Clients.LinkPreview.Usage" enum="LinkPreviewUsage"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>src/chrome/browser/preloading/preview/OWNERS</owner>
<summary>
Records the LinkPreview feature usages per page visit. The metric is emitted
on leaving a page, e.g. primary page changes, or tab closures.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.MultiTabLoading{OtherLoadingCount}.{Timing}{Background}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>{Timing} {OtherLoadingCount} {Background}</summary>
<token key="OtherLoadingCount">
<variant name=""
summary="Only recorded when there were 1 or more other loading tabs
(the same as '1OrMore')."/>
<variant name=".1OrMore"
summary="Only recorded when there were 1 or more other loading tabs."/>
<variant name=".2OrMore"
summary="Only recorded when there were 2 or more other loading tabs."/>
<variant name=".5OrMore"
summary="Only recorded when there were 5 or more other loading tabs."/>
<variant name=".With_0_OtherLoading"
summary="Only recorded when there was no other loading tab."/>
<variant name=".With_1_OtherLoading"
summary="Only recorded when there was 1 other loading tab."/>
<variant name=".With_2_OtherLoading"
summary="Only recorded when there were 2 other loading tabs."/>
<variant name=".With_3_OtherLoading"
summary="Only recorded when there were 3 other loading tabs."/>
<variant name=".With_4_OtherLoading"
summary="Only recorded when there were 4 other loading tabs."/>
<variant name=".With_5_OtherLoading"
summary="Only recorded when there were 5 other loading tabs."/>
<variant name=".WithTabCount_0"
summary="Only recorded when there was 0 tab."/>
<variant name=".WithTabCount_1"
summary="Only recorded when there was 1 tab."/>
<variant name=".WithTabCount_2_or_3"
summary="Only recorded when there were 2 or 3 tabs."/>
<variant name=".WithTabCount_4_to_7"
summary="Only recorded when there were 3 to 7 tabs."/>
<variant name=".WithTabCount_8_to_15"
summary="Only recorded when there were 8 to 15 tabs."/>
<variant name=".WithTabCount_16_to_31"
summary="Only recorded when there were 16 to 31 tabs."/>
<variant name=".WithTabCount_32_to_63"
summary="Only recorded when there were 32 to 63 tabs."/>
<variant name=".WithTabCount_64_or_more"
summary="Only recorded when there were 64 or more tabs."/>
</token>
<token key="Timing">
<variant name="DocumentTiming.NavigationToDOMContentLoadedEventFired"
summary="Measures the time from navigation timing's navigation start
to the time the DOMContentLoaded event is fired, for main
frame documents."/>
<variant name="DocumentTiming.NavigationToLoadEventFired"
summary="Measures the time from navigation timing's navigation start
to the time the load event is fired, for main frame
documents."/>
<variant name="Experimental.PaintTiming.NavigationToFirstMeaningfulPaint"
summary="Measures the time from navigation start to first meaningful
paint."/>
<variant name="PaintTiming.ForegroundToFirstContentfulPaint"
summary="Measures the time from a background tab being switched to
the foreground to the time the first contentful paint is
performed, for main frame documents."/>
<variant name="PaintTiming.NavigationToFirstContentfulPaint"
summary="Measures the time from navigation start to first contentful
paint."/>
<variant name="PaintTiming.NavigationToLargestContentfulPaint"
summary="Measures the time from navigation timing's navigation start
to the time the largest content (text or image) is first
painted, across all frames. Excludes any content painted
after user input. Includes content that has been removed
from the page."/>
</token>
<token key="Background">
<variant name="" summary=""/>
<variant name=".Background"
summary="The page was backgrounded at least once from navigation
start to this event."/>
</token>
</histogram>
<histogram name="PageLoad.Clients.NavigationToFirstContentfulPaint.Timeout"
enum="Boolean" expires_after="2025-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/page_load_metrics/OWNERS</owner>
<summary>
Determines if a navigation has not been completed due to not resulting in
painted content before the maximum timeout allowed. The histogram will be
emitted with true value once timeout expires and first contentful paint is
not reached, and it will be emitted with false value if first contentful
paint is reached before expiring the timeout.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.PerformanceManager.LCPToLoadedIdle{LoadedIdleVisibility}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded for each navigation when the LargestContentfulPaint (LCP) is
available and the navigation reaches quiescence, as tracked by the
Performance Manager PageNode::LoadingState::kLoadedIdle state. The value is
the time between LCP and quiescence, or 0 if quiescence came first. This
version of the metric is recorded for navigations in {LoadedIdleVisibility}.
</summary>
<token key="LoadedIdleVisibility" variants="LoadedIdleVisibility"/>
</histogram>
<histogram
name="PageLoad.Clients.PerformanceManager.LCPWithoutLoadedIdle{LoadedIdleVisibility}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded for each navigation when the LargestConentfulPaint (LCP) is
available and the navigation finishes without reaching quiescence (as
tracked by the Performance Manager PageNode::LoadingState::kLoadedIdle
state), such as by the page closing or a new navigation starting. The value
is the time from navigation start to LCP. If the navigation reaches
quiescense, PageLoad.Clients.PerformanceManager.LCPToLoadedIdle is recorded
instead. This version of the metric is recorded for navigations in
{LoadedIdleVisibility}.
</summary>
<token key="LoadedIdleVisibility" variants="LoadedIdleVisibility"/>
</histogram>
<histogram
name="PageLoad.Clients.PerformanceManager.LoadedIdleWithoutLCP{LoadedIdleVisibility}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded for each navigation when it reaches quiescence, as tracked by the
Performance Manager PageNode::LoadingState::kLoadedIdle state, without the
LargestContentfulPaint (LCP) being available. The value is the time from
navigation start to quiescence. If the navigation gets an LCP before
reaching quiescense, PageLoad.Clients.PerformanceManager.LCPToLoadedIdle is
recorded instead. This version of the metric is recorded for navigations in
{LoadedIdleVisibility}.
</summary>
<token key="LoadedIdleVisibility" variants="LoadedIdleVisibility"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.InteractiveTiming.FirstInputDelay4{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.InteractiveTiming.FirstInputDelay4, but for page loads that were
prerendered and were later activated. Note that prerendered page loads are
excluded from PageLoad.InteractiveTiming.FirstInputDelay4.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.LayoutInstability.CumulativeShiftScore.MainFrame{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame, but for page
loads that were prerendered and were later activated. Note that prerendered
page loads are excluded from
PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.LayoutInstability.CumulativeShiftScore{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.LayoutInstability.CumulativeShiftScore, but for page loads that
were prerendered and were later activated. Note that prerendered page loads
are excluded from PageLoad.LayoutInstability.CumulativeShiftScore.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2{PreloadingTriggerType}"
units="ms" expires_after="2024-09-03">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2,
but for page loads that were prerendered and were later activated. Note that
prerendered page loads are excluded from
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.NavigationToActivation{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Measures the time from the start of initial prerendering navigation to the
start of activation navigation. This corresponds to the activationStart
attribute of PerformanceNavigationTiming. Recorded when a prerendered page
is activated.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.PaintTiming.ActivationToFirstContentfulPaint{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.PaintTiming.NavigationToFirstContentfulPaint, but for page loads
that were prerendered and were later activated. This measures the time
relative to the activation navigation start. Note that prerendered page
loads are excluded from
PageLoad.PaintTiming.NavigationToFirstContentfulPaint.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.PaintTiming.ActivationToFirstPaint{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.PaintTiming.NavigationToFirstPaint, but for page loads that were
prerendered and were later activated. This measures the time relative to the
activation navigation start. Note that prerendered page loads are excluded
from PageLoad.PaintTiming.NavigationToFirstPaint.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.Prerender.PaintTiming.ActivationToLargestContentfulPaint2{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2, but for page loads
that were prerendered and were later activated. This measures the time
relative to the activation navigation start. Note that prerendered page
loads are excluded from
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram
name="PageLoad.Clients.PrivacySandboxAds.InteractiveTiming.FirstInputDelay4.{PrivacySandboxAdsApi}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
PageLoad.InteractiveTiming.FirstInputDelay4, but recorded iff
{PrivacySandboxAdsApi} was used in the page.
</summary>
<token key="PrivacySandboxAdsApi" variants="PrivacySandboxAdsApi"/>
</histogram>
<histogram
name="PageLoad.Clients.PrivacySandboxAds.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2.{PrivacySandboxAdsApi}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2,
but recorded iff {PrivacySandboxAdsApi} was used in the page.
</summary>
<token key="PrivacySandboxAdsApi" variants="PrivacySandboxAdsApi"/>
</histogram>
<histogram
name="PageLoad.Clients.PrivacySandboxAds.PaintTiming.NavigationToFirstContentfulPaint.{PrivacySandboxAdsApi}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
PageLoad.PaintTiming.NavigationToFirstContentfulPaint, but recorded iff
{PrivacySandboxAdsApi} was used in the page.
</summary>
<token key="PrivacySandboxAdsApi" variants="PrivacySandboxAdsApi"/>
</histogram>
<histogram
name="PageLoad.Clients.PrivacySandboxAds.PaintTiming.NavigationToLargestContentfulPaint2.{PrivacySandboxAdsApi}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2, but recorded iff
{PrivacySandboxAdsApi} was used in the page.
</summary>
<token key="PrivacySandboxAdsApi" variants="PrivacySandboxAdsApi"/>
</histogram>
<histogram
name="PageLoad.Clients.ServiceWorker2.PaintTiming.{Timing}.RaceNetworkRequestEligible"
units="ms" expires_after="2024-07-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The {Timing} time of pages with the Service Worker fetch handlers. Metrics
won't be recorded if pages are not controlled by service workers. This is
recorded only when the ServiceWorker script is eligible for the experiment.
</summary>
<token key="Timing">
<variant name="NavigationToFirstContentfulPaint"/>
<variant name="NavigationToLargestContentfulPaint2"/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.ServiceWorker2.PaintTiming.{Timing}.{HandlerType}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The {Timing} time of pages with the Service Worker fetch handlers. Metrics
won't be recorded if pages are not controlled by service workers. The
metrics are broken down by {HandlerType}. {HandlerType} only explains the
page's handler type, and it does not mean the fetch handler is actually
skipped or not.
</summary>
<token key="Timing">
<variant name="NavigationToFirstContentfulPaint"/>
<variant name="NavigationToLargestContentfulPaint2"/>
</token>
<token key="HandlerType">
<variant name="NonSkippableFetchHandler"
summary="The fetch handler is recognized as not skippable."/>
<variant name="SkippableFetchHandler"
summary="The fetch handler is recognized as skippable."/>
</token>
</histogram>
<histogram
name="PageLoad.Clients.SideSearch.SidePanel.InteractiveTiming.FirstInputDelay4"
units="ms" expires_after="2023-08-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation. See https://goo.gl/tr1oTZ for a detailed explanation.
Only recorded for side search navigations from the side panel.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.SideSearch.SidePanel.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2"
units="scorex10000" expires_after="2023-08-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a Window. The gap between two consecutive shifts in a window is
not bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 10000x the fractional cumulative layout shift score
described in the explainer. Only recorded for side search navigations from
the side panel.
This is recorded when the side search WebContents in the side panel is
navigated.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.SideSearch.SidePanel.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2024-02-25">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation start to first contentful paint. Only
recorded for side search navigations from the side panel.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.SideSearch.SidePanel.PaintTiming.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation start to largest contentful paint. Only
recorded for side search navigations from the side panel.
This is recorded when the side search WebContents in the side panel is
navigated.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.ThirdParty.Frames.NavigationToFirstContentfulPaint3"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from navigation start to the first contentful paint of third-party
(in respect to scheme://eTLD+1) frames on pages. Note that this can be
significantly delayed due to lazy loading.
Note also that all of the PageLoad.Clients.ThirdParty.Frames metrics will
only be recorded for the first kMaxRecordedFrames (50) active iframe
RenderFrameHosts (at any given time).
</summary>
</histogram>
<histogram
name="PageLoad.Clients.ThirdParty.Frames.Opaque.NavigationToFirstContentfulPaint"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from navigation start to the first contentful paint of third-party
opaque origin frames on pages. Note that this metric is only collected when
the top-level origin is not opaque. Also, this metric can be significantly
delayed due to lazy loading.
Note also that all of the PageLoad.Clients.ThirdParty.Frames metrics will
only be recorded for the first kMaxRecordedFrames (50) active iframe
RenderFrameHosts (at any given time).
</summary>
</histogram>
<histogram
name="PageLoad.Clients.ThirdParty.Frames.Opaque.NavigationToLargestContentfulPaint"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time from navigation start to the largest contentful paint of
third-party opaque origin frames on pages. Note that this metric is only
collected when the top-level origin is not opaque.
Note also that all of the PageLoad.Clients.ThirdParty.Frames metrics will
only be recorded for the first kMaxRecordedFrames (50) active iframe
RenderFrameHosts (at any given time).
</summary>
</histogram>
<histogram name="PageLoad.Clients.ThirdParty.Origins.CookieRead2" units="Count"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of third party (in respect to scheme://eTLD+1) origins on a page
that read cookies either via resource request headers or document.cookie.
This metric was expired between May and August 2023 and may be missing data.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.ThirdParty.PaintTiming.NavigationToLargestContentfulPaint.HasThirdPartyFont"
units="ms" expires_after="2021-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the largest contentful paint only for pages that load a third party
font and whose largest contentful resource type is text. See
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 for details.
</summary>
</histogram>
<histogram name="PageLoad.Clients.TPCD.AdTPCAccess.BlockedByExperiment2"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Record when a third party ad request reads cookies. True means the third
party cookie deprecation experiment blocks third party cookies access while
some mechanisms re-enable the third party cookie access. False means third
party cookie access isn't blocked.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.TPCD.CookieAccess.ThirdPartyCookieAllowMechanism3"
enum="ThirdPartyCookieAllowMechanism" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Record the different mechanisms to re-enable third party cookie access when
a third party accesses(read|change) cookies either via resource request
headers or document.cookie.
All other mechanisms are made sure to take precedence over
r`ThirdPartyCookieAllowMechanism::kAllowBy3PCDMetadata.*` mechanisms.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.TPCD.ThirdPartyCookieAccessBlockedByExperiment2"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Record when a third party accesses(read|change) cookies either via resource
request headers or document.cookie. True means the third party cookie
deprecation experiment blocks third party cookies access while some
mechanisms re-enable the third party cookie access. False means third party
cookie access isn't blocked.
</summary>
</histogram>
<histogram name="PageLoad.Clients.TPCD.TopLevelTpcd.CrossSiteTrialChange"
enum="OriginTrialStatusChange" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Record when a subresource (e.g. iframe) changes the status
(enables|disables) of the "Trial for Third Party Cookie Deprecation for
Top Level Sites" (TopLevelTpcd) for/in a cross-site context.
These trial status changes do not effect the cookie settings maintained for
the trial.
Note: in certain situations, such as when the trial token is provided in a
meta tag, this may be recorded multiple times for a given (cross-site) frame
load.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.TPCD.TPCAccess.BlockedByExperiment.IsAdOrNonAd2"
enum="Boolean" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Records whether a cookie read that would be blocked by the TPCD experiment
is for advertising purposes. Recorded only on third party cookie reads are
blocked by the TPCD experiment when some mechanisms re-enable the third
party cookie access.
</summary>
</histogram>
<histogram name="PageLoad.Clients.TPCD.TPCAccess.CookieReadStatus2"
enum="CookieReadStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
For an attempted cookie read access (document.cookie or via headers),
records the status of the access based on the TPCD experiment, including
what re-enablement mitigations were applied or skipped. Only recorded for
third party, non-partitioned cookies.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.UseCounter.Experimental.MetricsReplayAtActivationDuration"
units="ms" expires_after="2024-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration of
UseCounterPageLoadMetricsObserver::DidActivatePrerenderedPage.
Recorded iff the page is prerendered and activated. When a page is
prerendered, metrics "Blink.UseCounter.*" are buffered into
memory. When a page is activated then, buffered metrics are flushed and
recorded. This metric records the duration of this flush, in case of this
cause a performance degradation.
Warning: this histogram was expired from 2023-03-16 to 2023-03-2 9and also
between 2023-09-03 and M121; data may be missing.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Zstd.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints content, for page loads that can use
zstd. A contentful paint includes a paint of text, image, SVG, or canvas.
Only recorded for navigations that start in the foreground and stay in the
foreground until the first contentful paint.
</summary>
</histogram>
<histogram
name="PageLoad.Clients.Zstd.PaintTiming.NavigationToLargestContentfulPaint"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time in milliseconds from navigation timing's navigation start
to the time when the page first paints the experimental largest content
(text or image) within viewport, for page loads that can use zstd. See
https://github.com/w3c/largest-contentful-paint for more details. Differs
from SubFrame.PaintTiming.NavigationToLargestContentfulPaint in that removed
content is still considered a valid candidate. Only recorded for navigations
that happen entirely in the foreground. The metric is emitted when the
navigation is completed or the app is backgrounded on Android.
</summary>
</histogram>
<histogram name="PageLoad.Clients.Zstd.ParseTiming.NavigationToParseStart"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
parser started, for page loads that can use zstd. Only recorded for
navigations that start in the foreground and stay in the foreground until
parse start. This metric is emitted when the parser starts for a navigation.
</summary>
</histogram>
<histogram name="PageLoad.Clients.{Origin}.{MetricName}" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>{MetricName}, but recorded only for {Origin} navigations.</summary>
<token key="Origin">
<variant name="CrossOrigin" summary="cross-origin"/>
<variant name="SameOrigin" summary="same-origin"/>
</token>
<token key="MetricName">
<variant name="FirstContentfulPaint"
summary="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"/>
<variant name="InteractiveTiming.FirstInputDelay"
summary="PageLoad.InteractiveTiming.FirstInputDelay4"/>
<variant name="LargestContentfulPaint"
summary="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2"/>
<variant name="LayoutInstability.CumulativeShiftScore"
summary="PageLoad.LayoutInstability.CumulativeShiftScore"/>
<variant name="LayoutInstability.CumulativeShiftScore.MainFrame"
summary="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame"/>
</token>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.AbandonReasonAt.{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
enum="NavigationAbandonReasonEnum" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the navigation abandonment reason that happens when the last milestone
is {NavigationMilestone} on a main frame navigation for {ObservedNavigation}
with {RTTBucketSuffix} connection, with potentially some suffixes detaling
the navigation {BackgroundSuffix}, {HiddenSuffix}, and/or {NonSRPSuffix}.
The metric is emitted when the navigation gets abandoned.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NavigationMilestone" variants="NavigationMilestone"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.LastMilestoneBeforeAbandon{NavigationAbandonReason}{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
enum="NavigationMilestoneEnum2" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the last navigation milestone reason that was reached when a main frame
navigation for {ObservedNavigation} is abandoned due to
{NavigationAbandonReason}, with potentially some suffixes detaling the
navigation {BackgroundSuffix}, {HiddenSuffix}, and/or {NonSRPSuffix}. The
metric is emitted when the navigation gets abandoned.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NavigationAbandonReason" variants="NavigationAbandonReason"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.NavigationStartToRendererProcessInit{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
units="ms" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to the navigation start that the final renderer process is
created for a main frame navigation for {ObservedNavigation} with
potentially some suffixes detaling the navigation {BackgroundSuffix},
{HiddenSuffix}, {NonSRPSuffix}, and {RTTBucketSuffix}. The metric is emitted
when the navigation's commit IPC is just sent out, if the renderer process
is created after the navigation started.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.NavigationStartTo{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a navigation reaches the the
milestone {NavigationMilestone} on a main frame navigation for
{ObservedNavigation}, with potentially some suffixes detaling the navigation
{BackgroundSuffix}, {HiddenSuffix}, and/or {NonSRPSuffix}. Only recorded for
Search navigations that didn't get terminally abandoned at least until the
relevant milestone. Note that abandonment from backgrounding or hiding are
non-terminal, so milestones after those types of abandonments will still be
logged. The metric is emitted when the navigation finishes committing or it
gets abandoned (which can happen multiple times during the navigation if
non-terminal, so only the milestones that haven't been logged will be
logged).
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NavigationMilestone" variants="NavigationMilestone"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.NavigationStart{NonSRPSuffix}{RTTBucketSuffix}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a navigation takes to emit this
metric, on a main frame navigation for {ObservedNavigation}. The metric is
emitted when the navigation finishes committing or it gets abandoned for the
first time.
</summary>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.RendererProcessCreatedBeforeNav{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
enum="Boolean" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the renderer process for the navigation is already created before
the navigation start or not, for a main frame navigation for
{ObservedNavigation} with potentially some suffixes detaling the navigation
{BackgroundSuffix}, {HiddenSuffix}, {NonSRPSuffix}, and {RTTBucketSuffix}.
The metric is emitted when the navigation's commit IPC is just sent out.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.TimeToAbandonFromNavigationStart.{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
units="ms" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The Duration from the navigation start time to the time that a navigation
gets abandoned after the milestone {NavigationMilestone} on a main frame
navigation for {ObservedNavigation} with {RTTBucketSuffix} connection. Only
the abandonments due to backgrounding and hiding are non-terminal, and other
abandonments are terminal. This means this metric might be recorded multiple
times if the navigation is only abandoned non-terminally before, but only
once for each abandonment reason. "This is logged after non-terminal
abandonment of pages which were {BackgroundSuffix} and {HiddenSuffix}"
{NonSRPSuffix} is added if the navigation involves a non-SRP URL but then
redirected to SRP URL. The milestone recorded will be the latest milestone
(if there are multiple milestones reached before the abandonment). The
metric is emitted when the navigation gets abandoned.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NavigationMilestone" variants="NavigationMilestone"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram
name="PageLoad.Clients{ObservedNavigation}.Leakage2.{NavigationMilestone}ToAbandon{NavigationAbandonReason}{BackgroundSuffix}{HiddenSuffix}{NonSRPSuffix}{RTTBucketSuffix}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to the milestone {NavigationMilestone} that a navigation
gets abandoned due to {NavigationAbandonReason}, on a main frame navigation
for {ObservedNavigation}. Abandonment from backgrounding or hiding are
non-terminal, while other abandonment for other reasons are terminal. This
means this metric might be recorded multiple times if the navigation is only
abandoned non-terminally before, but only once for each abandonment reason.
Metrics logged after non-terminal abandonment will be marked with the
suffixes {BackgroundSuffix} and/or {HiddenSuffix}, and if the navigation
involves a non-SRP URL but then redirected to SRP URL, the logged metric
will be marked with {NonSRPSuffix}. The milestone recorded will be the
latest milestone (if there are multiple milestones reached before the
abandonment). The metric is emitted when the navigation gets abandoned.
</summary>
<token key="BackgroundSuffix" variants="BackgroundSuffix"/>
<token key="HiddenSuffix" variants="HiddenSuffix"/>
<token key="NavigationAbandonReason" variants="NavigationAbandonReason"/>
<token key="NavigationMilestone" variants="NavigationMilestone"/>
<token key="NonSRPSuffix" variants="NonSRPSuffix"/>
<token key="ObservedNavigation" variants="ObservedNavigation"/>
<token key="RTTBucketSuffix" variants="RTTBucketSuffix"/>
</histogram>
<histogram base="true" name="PageLoad.Cpu" units="units"
expires_after="2025-07-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Only recorded if the page has at least one identified ad frame. Recorded in
PageLoadMetrics when the page is destroyed. Cpu measures the wall time of
tasks attributable to a frame as reported by the MainThreadTaskScheduler as
well as time spent servicing scripted animations by each document (not
attributable by the MainThreadTaskScheduler). An ad frame consists of the
identified ad frame and all of its children (which may also be ads, but are
counted as part of the ancestor ad frame). Includes resources that did not
finish loading. Does not consider time while a page is backgrounded.
Warning: This metric expired around 04/2022 and was unexpired 07/2023. Data
may be missing.
</summary>
</histogram>
<histogram name="PageLoad.Cpu.TotalUsage" units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the page is destroyed or the app is backgrounded on mobile.
Records the total wall time of tasks attributable to the page across its
lifetime. Considers both the CPU usage while the page is in the foreground
and in the background.
</summary>
</histogram>
<histogram name="PageLoad.Cpu.TotalUsageForegrounded" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the page is destroyed or the app is backgrounded on mobile.
Records the total wall time of tasks attributable to the page across its
lifetime. Does not consider CPU usage while a page is backgrounded.
</summary>
</histogram>
<histogram
name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
DOMContentLoaded event is fired, for main frame documents.
</summary>
</histogram>
<histogram name="PageLoad.DocumentTiming.NavigationToLoadEventFired" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
Measures the time from navigation timing's navigation start to the time the
load event is fired, for main frame documents.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.ClickInputBurst" units="count"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum size click input burst for the page load. A click input burst is
a sequence of user click inputs at approximately the same screen position
where the clicks each occur soon after the previous one (e.g., within half
second). This is intended to detect possible rage clicks by the user.
Note: stat collection stopped in August 2021, and resumes in February 2023.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.InputTiming.InputToNavigationStart"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between the OS-level input event that initiated a navigation, and
the navigation actually starting.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.InputTiming.InputToNavigationStart.Background"
units="ms" expires_after="2024-02-25">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between the OS-level input event that initiated a navigation, and
the navigation actually starting, for background loads.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.InputTiming.InputToNavigationStart.FromLinkClick"
units="ms" expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between the OS-level click/tap event and navigation start, for
clicks on links in the renderer.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.InputTiming.InputToNavigationStart.FromOmnibox"
units="ms" expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between the OS-level keypress/tap event in the omnibox and
navigation start, for navigations from the omnibox.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.Memory.Core.MainFrame.Max" units="KiB"
expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum reported number of kilobytes of memory used by V8 by the main
frame in this pageload.
Only recorded if memory tracking is enabled. Recorded in PageLoadMetrics
when the page is destroyed.
Warning: This histogram has incomplete data. It expired in 03/2022 and was
unexpired in 11/2023.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.Memory.Core.Subframe.Aggregate.Max"
units="KiB" expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum reported aggregate number of kilobytes of memory used by V8 by
subframes in this pageload. The value recorded is the maximum simultaneous
usage by all subframes during this pageload, not including the main frame.
Only recorded if memory tracking is enabled. Recorded in PageLoadMetrics
when the page is destroyed.
Warning: This histogram has incomplete data. It expired in 03/2022 and was
unexpired in 11/2023.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.Memory.Core.Total.Max" units="KiB"
expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum reported aggregate number of kilobytes of memory used by V8 by
all frames in this pageload. The value recorded is the maximum simultaneous
usage by all frames during this pageload, including the main frame.
Only recorded if memory tracking is enabled. Recorded in PageLoadMetrics
when the page is destroyed.
Warning: This histogram has incomplete data. It expired in 03/2022 and was
unexpired in 11/2023.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.FinalLoaderCallbackToNavigationCommitSent"
units="ms" expires_after="2021-05-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between when a callback for the navigation loader is last
invoked and when navigation commit message is sent to a renderer process for
the main resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.FinalRequestStartToFinalResponseStart"
units="ms" expires_after="2021-05-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between when the final HTTP request is sent and when the
headers of the final HTTP response is received for the main resource of a
main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.FinalResponseStartToFinalLoaderCallback"
units="ms" expires_after="2021-05-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between when the headers of the final HTTP response is received
and when a callback for the navigation loader is last invoked for the main
resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.FirstRequestStartToFirstResponseStart"
units="ms" expires_after="2021-05-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between when the first HTTP request is sent and when the
headers of the first HTTP response is received for the main resource of a
main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.FirstResponseStartToFirstLoaderCallback"
units="ms" expires_after="2021-08-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The interval between when the headers of the first HTTP response is received
and when a callback for the navigation loader is first invoked for the main
resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFinalLoaderCallback"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a callback for the navigation
loader is last invoked for the main resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFinalRequestStart"
units="ms" expires_after="2024-09-29">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the final HTTP request is sent
for the main resource of a main frame navigation.
This metric has incomplete data. It was expired between 2023-03-12 and M121.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFinalResponseStart"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the headers of the final HTTP
response is received for the main resource of a main frame navigation.
This metric has incomplete data. It was expired between 2022-12-18 and M121.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFirstLoaderCallback"
units="ms" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that a callback for the navigation
loader is first invoked for the main resource of a main frame navigation.
This metric has incomplete data. It was expired between 2023-07-09 and M121.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFirstRequestStart"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the first HTTP request is sent
for the main resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToFirstResponseStart"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that the headers of the first HTTP
response is received for the main resource of a main frame navigation.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.NavigationTiming.NavigationStartToNavigationCommitSent"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time relative to navigation start that navigation commit message for a
main frame navigation is sent to a renderer process.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.PageTiming.CachedResourceLoadTime.{RequestDestination}"
units="ms" expires_after="2024-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from load start to when headers have been received for
resource requests which come from the cache. Logged for every
{RequestDestination} resource request from the cache.
This metric has incomplete data. It was expired between 2023-08-07 and M121.
</summary>
<token key="RequestDestination" variants="RequestDestination"/>
</histogram>
<histogram
name="PageLoad.Experimental.PageTiming.CommitSentToFirstSubresourceLoadStart"
units="ms" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when the navigation commit was sent to the renderer
to the first subresource load start. Logged for every page load which has
subresources.
This metric has incomplete data. It was expired between 2023-02-12 and M121.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.PageTiming.NavigationToFirstSubresourceLoadStart"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation start to the first subresource load start.
Logged for every page load which has subresources.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.PageTiming.ResourceLoadTime.{RequestDestination}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from load start to when headers have been received for
resource requests which do not come from the cache. Logged for every
{RequestDestination} resource request which is not from the cache.
</summary>
<token key="RequestDestination" variants="RequestDestination"/>
</histogram>
<histogram
name="PageLoad.Experimental.PageTiming.TotalSubresourceLoadTimeAtFirstContentfulPaint"
units="ms" expires_after="2024-05-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the aggregate time of subresource requests (from start to when
headers have been received) which have been completed before the first
contentful paint. Logged for every page load.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.PageVisitFinalStatus"
enum="PageVisitFinalStatus" expires_after="2024-12-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Determines the final status for this page load. That is, records whether the
page was never foregrounded, was foregrounded but did not reach FCP, or did
reach FCP. The metric is recorded at the end of each page load. As usual
with PageLoad metrics, we consider app backgrounding on Android to be the
end of page load as well as the app could be evicted by Android anytime
after that happens.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.PageVisitType2" enum="PageVisitType"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The page visit type that represents if the page follows a link navigation,
and the page is followed by another link navigation. This metrics is
recorded when the page is destructed.
</summary>
</histogram>
<histogram
name="PageLoad.Experimental.PaintTiming.FirstEligibleToPaintToFirstPaint"
units="ms" expires_after="2024-07-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when the page is first eligible to paint to when the
first paint occurs. Logged for every foreground page load.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.PaintTiming.InputToFirstContentfulPaint"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<summary>
The time between the OS-level input event that initiated a navigation, and
the first contentful paint of the page that was loaded in the navigation.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.PreviewFinalStatus"
enum="PreviewFinalStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/chrome/browser/preloading/preview/OWNERS</owner>
<summary>
This metric records the previewed page final status on each page
destruction, or on a potential last timing to run before the destruction.
This will be a hint to understand how the previewed page is used or was
useful for users.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.SoftNavigations.Count"
units="Soft navigations" expires_after="2025-07-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of soft navigations detected during a page load. Recorded
by the SoftNavigationPageLoadMetricsObserver each time the page enters the
back/forward cache, and also when the page is destroyed, with the number of
soft navigatons observed since the last recording.
</summary>
</histogram>
<histogram name="PageLoad.Experimental.TotalForegroundDuration{PageVisitType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total amount of time the page spent in the foreground on
{PageVisitType}.
Note that this metric adds all foreground durations occurring for the page.
For example: if the page starts foregrounded during 1 second, then goes to
the background for a while, then is foregrounded again for 2 seconds, and
then is unloaded, this metric reports 3 seconds. The metric is recorded at
the end of each page load. As usual with PageLoad metrics, we consider app
backgrounding on Android to be the end of page load as well as the app could
be evicted by Android anytime after that happens.
See also PageLoad.Experimental.PageVisitType for each page visit type
definition.
</summary>
<token key="PageVisitType">
<variant name=""
summary="all page visits, recorded in UkmPageLoadMetricsObserver"/>
<variant name=".AllVisit"
summary="all page visits, recorded in PreviewPageLoadMetricsObserver"/>
<variant name=".HistoryVisit" summary="history page visits"/>
<variant name=".IndependentLinkVisit"
summary="independent page visits in a new tab"/>
<variant name=".IndependentUIVisit"
summary="independent page visits from UI"/>
<variant name=".OriginLinkVisit" summary="origin page visits in a new tab"/>
<variant name=".OriginUIVisit" summary="origin page visits from UI"/>
<variant name=".PassingVisit" summary="passing page visits"/>
<variant name=".TerminalVisit" summary="terminal page visits"/>
</token>
</histogram>
<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.CreativeOriginStatus"
enum="CrossOriginCreativeStatus" expires_after="2021-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each identified ad frame, whether the origin of the ad creative frame
matches or differs from the origin of the main frame.
The ad creative frame is heuristically determined, from among an identified
ad frame and all of its children, as the first of these frames to record a
First Contentful Paint. If no FCP is recorded, the creative origin status is
marked as indeterminate.
</summary>
</histogram>
<histogram
name="PageLoad.FrameCounts.AdFrames.PerFrame.CreativeOriginStatusWithThrottling"
enum="CrossOriginCreativeStatusWithThrottling" expires_after="2021-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each identified ad frame, whether the origin of the ad creative frame
matches or differs from the origin of the main frame, further split by
whether the frame has lifecycle updates throttled. Metric is emitted on
frame deletion.
The ad creative frame is heuristically determined, from among an identified
ad frame and all of its children, as the first of these frames to record a
First Contentful Paint. If no FCP is recorded, the creative origin status is
marked as indeterminate. Frames that are render-throttled will not have an
FCP. Ad frames with indeterminate creative origin status are broken out as
throttled or not.
</summary>
</histogram>
<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.OriginStatus"
enum="CrossOriginAdStatus" expires_after="2025-07-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each identified ad frame, whether the origin of the ad matches the
origin of the main frame, differs from the origin of the main frame, or is
indeterminable.
An ad frame consists of the identified ad frame and all of its children
(which may also be ads, but are counted as part of the ancestor ad frame).
Frames of zero bytes (e.g., never had a document or their document was
doc.written and no sub-resources were loaded) are not counted.
Warning: This metric expired around 04/2022 and unexpired 07/2023. Data may
be missing.
</summary>
</histogram>
<histogram name="PageLoad.FrameCounts.AdFrames.PerFrame.UserActivation"
enum="AdUserActivationStatus" expires_after="2024-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each identified ad frame, whether the sticky user activation bit was
ever set on the frame. Recorded for each ad frame when the page is destroyed
or navigated away from, including ad frames that no longer exist.
An ad frame consists of the identified ad frame and all of its children
(which may also be ads, but are counted as part of the ancestor ad frame).
Frames of zero bytes (e.g., never had a document or their document was
doc.written and no sub-resources were loaded) are not counted.
</summary>
</histogram>
<histogram name="PageLoad.FrameCounts.AdFrames.Total" units="Ad frames"
expires_after="2025-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of frames on the page that have loaded more than 0 bytes of
content or had non-zero CPU usage.
For pages with zero ad frames, the other PageLoad.Clients.Ads metrics are
not recorded unless otherwise specified. This metric is not recorded on
sites where the subresource filter is enabled.
Child frames of an ad frame are not included in the count.
</summary>
</histogram>
<histogram base="true" name="PageLoad.HeavyAds.ComputedTypeWithThresholdNoise"
enum="HeavyAdStatus2" expires_after="2024-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records heavy ad type for each ad frame, as determined by the first
threshold hit (see FrameData::HeavyadStatus). This is recorded regardless of
feature flag or other conditions that prevent the heavy ad intervention from
occuring. This includes 1 megabyte of random additive noise on the network
threshold. As such, it is possible for this histogram to record different
values for the same frame than PageLoad.HeavyAds.ComputedType2.
Recored for all ad frames with non-zero bytes. Recorded when the ad frame
destroyed or when the page is destroyed.
It is possible for multiple thresholds to be hit at the same time, with the
higher valued enums winning those race conditions.
</summary>
</histogram>
<histogram base="true" name="PageLoad.HeavyAds.InterventionType2"
enum="HeavyAdStatus2" expires_after="2024-04-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of heavy ad unloaded by the heavy ad intervention. Heavy ad
type is determined by the first threshold hit. This is not recorded for ad
frames that are considered heavy but did not fufill other criteria for the
intervention. This includes the feature being enabled and being below the
per-origin intervention cap.
It is possible for multiple thresholds to be hit at the same time, with the
higher valued enums winning those race conditions.
</summary>
</histogram>
<histogram
name="PageLoad.InteractiveTiming.FirstInputDelay.AfterBackForwardCacheRestore"
units="ms" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per back-forward navigation. Recorded on first page interaction after
the page is restored from the back-forward cache. See https://goo.gl/tr1oTZ
for a detailed explanation. Excludes scrolls.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.InteractiveTiming.FirstInputDelay4. These two histograms will be
aggregated on the server to form the authoritative metric.
</summary>
</histogram>
<histogram
name="PageLoad.InteractiveTiming.FirstInputDelay.AfterBackForwardCacheRestore_iOSFixed"
units="ms" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
iOS only. This is the same as
PageLoad.InteractiveTiming.FirstInputDelay.AfterBackForwardCacheRestore, but
uses the same bucketing on iOS as non-iOS platforms use in that metric.
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per back-forward navigation. Recorded on first page interaction after
the page is restored from the back-forward cache. See https://goo.gl/tr1oTZ
for a detailed explanation. Excludes scrolls.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.InteractiveTiming.FirstInputDelay4_iOSFixed. These two histograms
will be aggregated on the server to form the authoritative metric.
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputDelay4" units="ms"
expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation. Recorded on first page interaction. See
https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.InteractiveTiming.FirstInputDelay.AfterBackForwardCacheRestore.
These two histograms will be aggregated on the server to form the
authoritative metric.
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputDelay4_iOSFixed"
units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
iOS only. This is the same as PageLoad.InteractiveTiming.FirstInputDelay4,
but uses the same bucketing on iOS as non-iOS platforms use in that metric.
Measures First Input Delay, the duration between the hardware timestamp and
the start of event processing on the main thread for the first meaningful
input per navigation. Recorded on first page interaction. See
https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.InteractiveTiming.FirstInputDelay.AfterBackForwardCacheRestore_iOSFixed.
These two histograms will be aggregated on the server to form the
authoritative metric.
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp4" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. Recorded on first page interaction.
See https://goo.gl/tr1oTZ for a detailed explanation. Excludes scrolls.
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.INPOffset" units="offset"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The one-based offset of the interction that is the INP
(https://web.dev/inp).
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.INPTime" units="ms"
expires_after="2024-11-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time, relative to navigation start, of the interction that is the INP
(https://web.dev/inp).
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.InputDelay3" units="ms"
expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between the hardware timestamp and the start of event
processing on the main thread for a meaningful input. Excludes scrolls.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
WARNING: The long tail of this metric is buggy on Mac (overflows for a
subset of users) which can lead to surprising false regressions or
improvements.
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.InputTimestamp3" units="ms"
expires_after="never">
<!-- expires-never: diagnostic to InputDelay3 guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between navigation start and the hardware timestamp of a
meaningful input. Excludes scrolls.
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.NumInteractions{PageLoadType}"
units="Count" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of user interactions in a {PageLoadType} page load. Definition of
interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
<token key="PageLoadType" variants="PageLoadType"/>
</histogram>
<histogram name="PageLoad.InteractiveTiming.ProcessingTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between the start of event processing and the end of event
processing on the main thread for a meaningful input. Excludes scrolls.
This metric is recorded when users interact with the page, which may trigger
input events such as pointerdown, keydown, click and mousedown.
</summary>
</histogram>
<histogram name="PageLoad.InteractiveTiming.TimeToNextPaint" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The duration between the end of event processing and the time when the first
paint was performed on the main thread for a meaningful input. Excludes
scrolls.
This metric is recorded when users interact with the page, which may trigger
input events such as pointerdown, keydown, click and mousedown.
</summary>
</histogram>
<histogram
name="PageLoad.InteractiveTiming.{NormalizedResponsivenessMetric}.{UserInteractionLatency}{PageLoadType}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The {NormalizedResponsivenessMetric} of a {PageLoadType} page load, in ms.
For this metric, we measure the latency of a user interaction by the
{UserInteractionLatency} within the user interaction.
Recorded at the end of the page load lifetime, such as when users navigate
to a new web page, except
UserInteractionLatencyAtFirstOnHidden.HighPercentile2, which is recorded
when a page is moved from the foreground to the background for the first
time. UserInteractionLatencyAtFirstOnHidden.HighPercentile2 is trying to
record the INP values which are not able to be recorded in
UserInteractionLatency.HighPercentile2 for some reasons.
</summary>
<token key="PageLoadType" variants="PageLoadType"/>
<token key="NormalizedResponsivenessMetric">
<variant name="UserInteractionLatency.HighPercentile2"/>
<variant name="UserInteractionLatencyAtFirstOnHidden.HighPercentile2"/>
<variant name="WorstUserInteractionLatency"/>
</token>
<token key="UserInteractionLatency">
<variant name="MaxEventDuration"/>
</token>
</histogram>
<histogram name="PageLoad.Internal.ErrorCode" enum="InternalErrorLoadEvent"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts of various internal error conditions in the page_load_metrics system.
</summary>
</histogram>
<histogram name="PageLoad.Internal.EventTiming.ClickInteractionEvents"
enum="EventTimingClickInteractionEvents" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records eight properties of click events in Event Timing. They are: total
number of clicks, number of clicks that are triggered by a keyboard
interaction, number of pointer clicks (that are triggered by a pointer
device) that are accompanied by both pointerdown and pointerup, number of
pointer clicks that only have their pointerdown missing, number of pointer
clicks that only have their pointerup missing, number of pointer clicks that
have both their pointerdown and pointerup missing, number of clicks that
have a pointer_id different from last_pointer_id but exist in the map,
number of clicks that have a pointer_id different from last_pointer_id and
also not exist in the map. This is recorded at most three times for each JS
trusted Click event dispatch. Once for total number of clicks; potentially
once if the pointer_id of the click is different from last_pointer_id; and
potentially once for all other types.
</summary>
</histogram>
<histogram name="PageLoad.Internal.PageLoadTimingStatus{Condition}"
enum="PageLoadTimingStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/components/page_load_metrics/OWNERS</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
The status of validity check of PageLoadTiming structs received from the
render process over IPC. Recorded when timing information is {Condition}.
Warning: this histogram was expired from 2021-01-31 to 2023-01-13; data may
be missing.
</summary>
<token key="Condition">
<variant name="" summary="received on any page load"/>
<variant name=".AtTimingCallbackDispatch"
summary="dispatched on any page load"/>
<variant name=".OnFencedFramesPage"
summary="received on fenced frames pages"/>
<variant name=".OnPrerenderPage" summary="received on prerender pages"/>
</token>
</histogram>
<histogram name="PageLoad.Internal.PageType" enum="PageLoadTrackerPageType"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records the Page type that each PageLoadTracker tracks. This metric is
recorded when a PageLoadTracker is created for a Page.
</summary>
</histogram>
<histogram
name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.ContentType"
enum="LargestContentType" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures whether the largest contentful paint, whose timestamp is measured
by PageLoad.PaintTiming.NavigationToLargestContentfulPaint2, comes from text
or image. This value is recorded whenever
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 is recorded.
</summary>
</histogram>
<histogram
name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.MainFrame.ContentType"
enum="LargestContentType" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures whether the largest contentful paint in the main frame, whose
timestamp is measured by
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.MainFrame, comes
from text or image. This value is recorded whenever
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.MainFrame is
recorded.
</summary>
</histogram>
<histogram
name="PageLoad.Internal.PaintTiming.NavigationToFirstContentfulPaint.InitiatingProcess"
enum="ProcessType2" expires_after="2020-09-05">
<owner>[email protected]</owner>
<summary>
Breakdown of NavigationToFirstContentfulPaint counts by process that
initiated the navigation (this will only be renderer or browser).
</summary>
</histogram>
<histogram
name="PageLoad.Internal.Prerender2.ActivatedPageLoaderStatus{PreloadingTriggerType}"
enum="NetErrorCodes" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records error codes for loading of a main resource of a main frame which
belongs to a prerendered and then activated page when the page received
loading completion event for the resource.
This metric is used to monitor whether preload cache intercepting logic
causes extra page loading errors.
</summary>
<token key="PreloadingTriggerType" variants="PagePreloadingTriggerType"/>
</histogram>
<histogram name="PageLoad.Internal.Prerender2.Event"
enum="PageLoadPrerenderEvent" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Counts page load events related to Prerender2, like navigation in
prerendered main frame and prerendering activation navigation. Recorded when
those events are observed in PageLoadTracker.
</summary>
</histogram>
<histogram name="PageLoad.Internal.Prerender2.ObserverEvent"
enum="PageLoadPrerenderObserverEvent" expires_after="2024-09-15">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Counts page load observer events related to Prerender2, like
FirstContentfulPaint. Recorded when those events are observed in
PrerenderPageLoaderMetricsObserver.
</summary>
</histogram>
<histogram name="PageLoad.Internal.Prerender2.VisibilityAtActivation"
enum="PageLoadPrerenderVisibilityAtActivation" expires_after="2024-02-04">
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Records the visibility of an initiator page in PageLoadTracker when a
prerendered page gets activated.
</summary>
</histogram>
<histogram name="PageLoad.Internal.SoftNavigationOutcome"
enum="SoftNavigationOutcome" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the soft navigation heuristics when the page's URL is
changed through the history API. This is recorded at most once for each URL
change. If the URL change was not attributable to a user intertaction, that
is recorded immediately. If a soft navigation is detected, then it is
recorded as soon as we detect it (when all conditions are satisfied).
Otherwise, to be sure that all tasks associated with the user interaction
have completed, we wait until all TaskAttributionInfo objects created within
the SoftNavigationHeuristics::EventScope are garbage-collected, and then
record which of the conditions was not satisfied.
</summary>
</histogram>
<histogram name="PageLoad.Internal.SuppressedEventsBeforeMissingFirstPaint"
enum="Boolean" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the first paint signal is not received within 15sec of first
event dispatch. A "true" value here is expected to be rare.
</summary>
</histogram>
<histogram name="PageLoad.Internal.SuppressedEventsCountBeforePaint3"
units="count" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of events observed before the first paint.
This metric is emitted for every committed page load, either at the first
meaningful paint or 15sec after first event dispatch, whichever comes first
(before M127, the second condition here was "15sec after
navigation"). When the DropInputEventsBeforeFirstPaint feature is
enabled, these events will be dropped as the user may not have seen the
content they are interacting with yet. Since there is a delay from the first
paint presentation to when the notification about it is received, the user
may have actually seen the first paint for some of these events. If many
events are being dropped, we may need to revisit this experiment or improve
the measurement to only those after the first paint.
</summary>
</histogram>
<histogram name="PageLoad.Internal.SuppressedEventsTimingBeforePaint3"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records time difference between first paint and last event to be dropped by
DropInputEventsBeforeFirstPaint feature in a page that has received the
first paint signal. If the signal is not received within 15sec of
navigation, it records the constant "15sec" instead.
This metric is emitted for every committed page load, either at the first
meaningful paint or 15sec after first event dispatch, whichever comes first
(before M127, the second condition here was "15sec after
navigation"). When the DropInputEventsBeforeFirstPaint feature is
enabled, these events will be dropped as the user may not have seen the
content they are interacting with yet. Since there is a delay from the first
paint presentation to when the notification about it is received, the user
may have actually seen the first paint for some of these events. If this
time difference is long enough to affect user experience, we may need to
revisit this experiment. We are logging 0 timestamp if there is no
suppressed event or the most recent suppressed event is before the first
paint time so that we have a count of the number of times the behavior was
good to compare the size of the bad cases to.
</summary>
</histogram>
<histogram name="PageLoad.Internal.SuppressedInteractionsCountBeforePaint3"
units="count" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of user-interactions observed before the first paint. The
following low-level events are counted for this purpose because they mark
the start of a user-interaction: MouseDown, RawKeyDown, KeyDown, TouchStart
and PointerDown.
This metric is emitted for every committed page load, either at the first
meaningful paint or 15sec after first event dispatch, whichever comes first
(before M127, the second condition here was "15sec after
navigation"). When the DropInputEventsBeforeFirstPaint feature is
enabled, these interactions will be dropped as the user may not have seen
the content they are interacting with yet. Since there is a delay from the
first paint presentation to when the notification about it is received, the
user may have actually seen the first paint for some of these interactions.
If it turns out that many interactions would be dropped, we will need to
revisit our plan.
</summary>
</histogram>
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore"
units="scorex10" expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes). Higher values correspond to
greater instability, which is bad. Recorded at the end of the page lifetime,
such as when the page is being navigated away from or when a tab is being
closed. Stable since M79; previous versions are expermental and subject to
fluctuation between releases.
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.LayoutInstability.CumulativeShiftScore.AfterBackForwardCacheRestore.
These two histograms will be aggregated on the server to form the
authoritative metric.
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.CumulativeShiftScore.AfterBackForwardCacheRestore"
units="scorex10" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
occurred on the page (including all subframes) after the page is restored
from the back-forward cache. Recorded when the user navigates away or closes
the page after the page was restored from back-forward cache.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.LayoutInstability.CumulativeShiftScore. These two histograms will
be aggregated on the server to form the authoritative metric.
</summary>
</histogram>
<histogram name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame"
units="scorex10" expires_after="2022-10-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/lsm-explainer) that has
occurred in the main frame. Recorded at the end of the page lifetime, such
as when the page is being navigated away from or when a tab is being closed.
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.CumulativeShiftScore.MainFrame.AfterBackForwardCacheRestore"
units="scorex10" expires_after="2022-01-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/3fQz29y) that has
occurred in the main frame after the page is restored from the back-forward
cache. Recorded when the user navigates away or closes the page after the
page was restored from back-forward cache.
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.CumulativeShiftScoreAtFirstOnHidden"
units="scorex10" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the cumulative layout shift score (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes) until the first time the page
moves from the foreground to the background. It is recorded when the tab is
first hidden after it is first shown in foreground. This metric is trying to
record the layout shift values which are not able to be recorded in
PageLoad.LayoutInstability.CumulativeShiftScore for some reasons.
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.MaxCumulativeShiftScore.AfterBackForwardCacheRestore.SessionWindow.Gap1000ms.Max5000ms2"
units="scorex10000" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in after back forward cache restore. The gap between two
consecutive shifts in a window is not bigger than 1000ms and the maximum
window size is 5000ms. This metric's integral value is 10000x the fractional
cumulative layout shift score described in the explainer. If {Bfcache} is
triggered, we record the metric when the user navigates away or closes the
page after the page was restored from back-forward cache. Otherwise, we
record it at the end of the page lifetime, such as when the page is being
navigated away from or when a tab is being closed.
Replaces
PageLoad.LayoutInstability.MaxCumulativeShiftScore.AfterBackForwardCacheRestore.SessionWindow.Gap1000ms.Max5000ms
and increases granularity in order to get more coverage for ~5% of values in
the 0-0.1 range.
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2"
units="scorex10000" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a Window. The gap between two consecutive shifts in a window is
not bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 10000x the fractional cumulative layout shift score
described in the explainer. If {Bfcache} is triggered, we record the metric
when the user navigates away or closes the page after the page was restored
from back-forward cache. Otherwise, we record it at the end of the page
lifetime, such as when the page is being navigated away from or when a tab
is being closed.
Replaces
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms
and increases granularity to get coverage for ~25% of the values in the
0-0.1 range.
</summary>
</histogram>
<histogram
name="PageLoad.LayoutInstability.MaxCumulativeShiftScoreAtFirstOnHidden.SessionWindow.Gap1000ms.Max5000ms"
units="scorex10000" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred in a Window until the first time the page moves from the foreground
to the background. The gap between two consecutive shifts in a window is not
bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 10000x the fractional cumulative layout shift score
described in the explainer. It is recorded when the tab is first hidden
after it is first shown in foreground. This metric is trying to record the
layout shift values which are not able to be recorded in
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms2
for some reasons.
Replaced
Experimental.LayoutInstability.MaxCumulativeShiftScoreAtFirstOnHidden.SessionWindow.Gap1000ms.Max5000ms
and increases granularity to get coverage for ~25% of the values in the
0-0.1 range.
</summary>
</histogram>
<histogram name="PageLoad.PageTiming.ForegroundDuration" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For page loads that start in the foreground, measures the duration of time
until one of the following events occurs: the load of the main resource
fails, the page load is stopped, the tab hosting the page is closed, the
render process hosting the page goes away, a new navigation which later
commits is initiated in the same tab, or the tab hosting the page is
backgrounded. This metric has a very long tail, for pages that spend a long
period of time in the foreground. As such, use of the mean or tail values
are not recommended.
</summary>
</histogram>
<histogram
name="PageLoad.PageTiming.ForegroundDuration.PageEndReason.ForwardBackNavigation.UserGesture"
units="ms" expires_after="M81">
<owner>[email protected]</owner>
<summary>
The time since navigation start before the user presses the back button on a
page. Only measures page loads that remained in foreground and were created
by user gesture inside the renderer (as opposed to browser UX gestures).
</summary>
</histogram>
<histogram name="PageLoad.PageTiming.NavigationToFirstForeground" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
user first foregrounds an initially backgrounded tab. Only measures
navigations that started in the background.
</summary>
</histogram>
<histogram name="PageLoad.PaintTiming.ForegroundToFirstContentfulPaint"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from a background tab being switched to the foreground to
the time the first contentful paint is performed, for main frame documents.
</summary>
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint"
units="ms" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The time from navigation start to first "contentful" paint. This
metric does not include all page loads. Specifically, it excludes:
- Page loads which have not been in the foreground during the entire loading
time. Use
PageLoad.PaintTiming.NavigationToFirstContentfulPaint.Background.HttpsOrDataOrFileScheme
histogram if you want to include those.
- Page loads for non http(s) schemes. Use
PageLoad.PaintTiming.NavigationToFirstContentfulPaint.{DataScheme,FileScheme}
histograms for data for page loads for data:// and file:// schemes.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.PaintTiming.NavigationToFirstPaint.AfterBackForwardCacheRestore.
These two histograms will be aggregated on the server to form the
authoritative metric.
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.Background.HttpsOrDataOrFileScheme"
units="ms" expires_after="2025-02-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The time from navigation start to first "contentful" paint, where
the page was backgrounded at least once from navigation start to this event.
Includes page loads with http, https, data and file schemes.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.NonTabWebUI{WebUIName}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation start to first contentful paint. This is
only recorded for non-tab webUI pages, such as side-panel content.
</summary>
<token key="WebUIName" variants="WebUIName"/>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.{Scheme}"
units="ms" expires_after="2025-02-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The time from navigation start to first "contentful" paint for
{Scheme}. This metric does not include all page loads. If you need all page
loads for http, https, data and file schemes, add
PageLoad.PaintTiming.NavigationToFirstContentfulPaint.Background.HttpsOrDataOrFileScheme.
Some popular WebView apps such as Gmail use data or file schemes to load
their content, and having page load metrics for those apps would be useful
for performance investigations.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
</summary>
<token key="Scheme">
<variant name="DataScheme"/>
<variant name="FileScheme"/>
</token>
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
first image is painted, for main frame documents. For images that render
progressively, this is recorded as soon as any image pixels have been drawn.
</summary>
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToFirstPaint" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
first paint is performed, for main frame documents.
Do not modify this metric in any way without contacting
[email protected].
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToFirstPaint.AfterBackForwardCacheRestore"
units="ms" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from back-forward navigation timing's navigation start to
the time the first paint is performed, for main frame documents. Recorded
only when the page is restored from back-forward cache.
Do not modify this metric in any way without contacting
[email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.PaintTiming.NavigationToFirstContentfulPaint.
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToFirstPaint.BFCachePolyfill{Count}"
units="ms" expires_after="never">
<!-- expires-never: used in server pipeline to derive additional metrics -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Meastures the time duration between the page restore from BFcache and the
{Count} requestAnimationFrame time.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Bucketing for this histogram should be kept in sync with bucketing for
PageLoad.PaintTiming.NavigationToFirstContentfulPaint. These two histograms
will be aggregated on the server to form the authoritative metric.
</summary>
<token key="Count">
<variant name="First"/>
<variant name="Second"/>
<variant name="Third"/>
</token>
</histogram>
<histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, across all frames.
Excludes any content painted after user input. Includes content that has
been removed from the page. See web.dev/lcp for more details.
The value is recorded at the end of each page load or the latest time when
we can reliably record: when the page is navigated away, the browser is
closed, or on Android when the browser is backgrounded.
This metric does not include all page loads. Specifically, it excludes:
- Page loads which have not been in the foreground during the entire loading
time. Use
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.Background.HttpsOrDataOrFileScheme
histogram if you want to include those.
- Page loads for non http(s) schemes. Use
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.{DataScheme,FileScheme}
histograms for data for page loads for data:// and file:// schemes.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.Background.HttpsOrDataOrFileScheme"
units="ms" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The time from navigation start to first "contentful" paint, where
the page was backgrounded at least once from navigation start to this event.
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, across all frames, where
the page was backgrounded at least once from navigation start to this event.
Excludes any content painted after user input. Includes content that has
been removed from the page. See web.dev/lcp for more details.
The value is recorded at the end of each page load or the latest time when
we can reliably record: when the page is navigated away, the browser is
closed, or on Android when the browser is backgrounded.
Includes page loads with http, https, data and file schemes.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.CrossSiteSubFrame"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Similar to PaintTiming.NavigationToLargestContentfulPaint2, this measures
the time in milliseconds from navigation timing's navigation start to the
time when the page first paints the largest content (text or image) in the
cross-site subframe which is the top candidate of largest contentful paint.
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.MainFrame"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, for main frame documents.
See PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 for more
information.
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.NonTabWebUI{WebUIName}"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, for main frame documents
of non-tab webUI pages, such as side-panel content. See
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 for more
information.
</summary>
<token key="WebUIName" variants="WebUIName"/>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.SetSpeculationRulesPrerender"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Similar to PaintTiming.NavigationToLargestContentfulPaint2, this measures
the time from navigation timing's navigation start to the time the largest
content (text or image) is first painted only for pages using Speculation
Rules API and calls Prerender2, across all frames. Excludes any content
painted after user input. Includes content that has been removed from the
page. See web.dev/lcp for more details.
</summary>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.{Scheme}"
units="ms" expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted for {Scheme}, across all
frames. Excludes any content painted after user input. Includes content that
has been removed from the page. See web.dev/lcp for more details.
The value is recorded at the end of each page load or the latest time when
we can reliably record: when the page is navigated away, the browser is
closed, or on Android when the browser is backgrounded.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
<token key="Scheme">
<variant name="DataScheme"/>
<variant name="FileScheme"/>
</token>
</histogram>
<histogram
name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2AtFirstOnHidden"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
largest content (text or image) is first painted, across all frames.
Recorded at the point when a page which has been opened in the foreground is
moved to the background for the first time. Excludes any content painted
after user input. Includes content that has been removed from the page. See
web.dev/lcp for more details.
This metric is trying to record the LCP values which are not able to be
recorded in PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 for
some reasons.
Do not modify this metric in any way without contacting
[email protected] AND [email protected].
Log of major changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
</histogram>
<histogram name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from when the HTML parser started, to when the page first
paints content.
</summary>
</histogram>
<histogram name="PageLoad.ParseTiming.NavigationToParseStart" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time from navigation timing's navigation start to the time the
parser started, for main frame documents.
</summary>
</histogram>
<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptExecution" units="ms"
expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time that the HTML parser spent blocked on the execution of
scripts, for main frame documents that finished parsing.
This histogram has incomplete data. It expired on 2022-02-01 and was
re-added on 2022-05-23.
</summary>
</histogram>
<histogram
name="PageLoad.ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite"
units="ms" expires_after="2024-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time that the HTML parser spent blocked on the execution of
scripts inserted from document.write, for main frame documents that finished
parsing.
This histogram has incomplete data. It expired on 2022-02-01 and was
re-added on 2022-05-23.
</summary>
</histogram>
<histogram name="PageLoad.ParseTiming.ParseBlockedOnScriptLoad" units="ms"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time that the HTML parser spent blocked on the load of scripts,
for main frame documents that finished parsing.
</summary>
</histogram>
<histogram name="PageLoad.SoftNavigation.CumulativeLayoutShift" units="ms"
expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
occurred from the time when the soft navigation happens to the time when the
next soft navigation happens or the page load ends in a session window. The
gap between two consecutive shifts in a window is not bigger than 1000ms and
the maximum window size is 5000ms. This metric's integral value is 100x the
fractional cumulative layout shift score described in the explainer.
</summary>
</histogram>
<histogram name="PageLoad.SoftNavigation.InteractionToNextPaint" units="ms"
expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
An approximation of a high percentile of user interaction latency from the
time when the soft navigation happens to the time when the next soft
navigation happens or the page load end, in ms. For this metric, we measure
the latency of user interactions as described here: https://web.dev/inp
</summary>
</histogram>
<histogram name="PageLoad.SoftNavigation.LargestContentfulPaint" units="ms"
expires_after="2025-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the LargestContentfulPaint in milliseconds from the start time of
the soft navigation to the LCP time.
</summary>
</histogram>
<histogram name="PageSerialization.MhtmlLoading.LoadResult"
enum="MhtmlLoadResult" expires_after="2023-04-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Reports the result of an attempt to load an MHTML archive.</summary>
</histogram>
</histograms>
</histogram-configuration>