<!--
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 Navigation 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="FrameTypes">
<variant name="MainFrame"/>
<variant name="Subframe"/>
</variants>
<variants name="NavigationMode">
<variant name="" summary="both gesture nav mode and 3 button mode"/>
<variant name=".3ButtonMode" summary="only 3-button mode"/>
<variant name=".GestureMode" summary="only gesture nav mode"/>
</variants>
<variants name="NavigationStage">
<variant name="Commit"/>
<variant name="SwapRFH"/>
</variants>
<variants name="NavigationThrottleConditions">
<variant name="" summary="any kinds of events"/>
<variant name=".Request" summary="start or redirect request events"/>
</variants>
<variants name="NavigationThrottleEvents">
<variant name="WillFailRequest"/>
<variant name="WillProcessResponse"/>
<variant name="WillRedirectRequest"/>
<variant name="WillStartRequest"/>
</variants>
<!-- LINT.IfChange(PagePreloadingTriggerType) -->
<variants name="PreloadingTriggerType">
<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/page/histograms.xml:PagePreloadingTriggerType) -->
<variants name="RegularOrMHTMLType">
<variant name="MHTML"/>
<variant name="Regular"/>
</variants>
<variants name="SiteRelation">
<variant name="CrossSite"/>
<variant name="SameSite"/>
</variants>
<histogram name="BackForwardCache.AllSites.EvictedAfterDocumentRestoredReason"
enum="BackForwardCacheEvictedAfterDocumentRestoredReason"
expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the page is evicted from the back-forward cache but
after the document is restored. This happens when there is a race between
eviction and restoring. This also records when the page is restored to
calculate how often this eviction happens.
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram name="BackForwardCache.AllSites.HistoryNavigationOutcome"
enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, this records whether
the page was restored from the BackForwardCache or not.
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.BlocklistedFeature"
enum="WebSchedulerTrackedFeature" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, this records what
blocklisted features were used when the page was loaded and prevented this
page from being stored in the back-forward cache. Multiple blocklisted
features can be recorded for the same page.
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.BrowsingInstanceNotSwappedReason"
enum="BackForwardCacheBrowsingInstanceNotSwappedReason"
expires_after="2024-11-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of the other active WebContents objects
in the BrowsingInstance, this records the reason why the browsing instance
wasn't swapped.
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.DisabledForRenderFrameHostReason2"
enum="BackForwardCacheDisabledForRenderFrameHostReason2"
expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For history navigations, records the reason passed to
BackForwardCache::DisableForRenderFrameHost calls.
The metric is recorded when a history navigation commits and emits a sample
for each reason. Compare this with
BackForwardCache.HistoryNavigationOutcome, which contains the total number
of navigations which where not cached
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.AllSites.HistoryNavigationOutcome.NotRestoredReason"
enum="BackForwardCacheNotRestoredReason" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, record why it wasn't
restored from the cache. The page might not have entered the back-forward in
the first place based on the features used, or it might have been evicted
while being in the cache.
This is recorded for all websites regardless of whether back-forward cache
is enabled or not.
</summary>
</histogram>
<histogram name="BackForwardCache.EvictedAfterDocumentRestoredReason"
enum="BackForwardCacheEvictedAfterDocumentRestoredReason"
expires_after="2024-09-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why the page is evicted from the back-forward cache but
after the document is restored. This happens when there is a race between
eviction and restoring. This also records when the page is restored to
calculate how often this eviction happens.
This is recorded when back-forward cache is enabled for this navigation
(back-forward cache feature is enabled and the domain is in the scope of the
experiment).
</summary>
</histogram>
<histogram name="BackForwardCache.Eviction.Renderer"
enum="BackForwardCacheRendererEvictionReason" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason of renderer-initiated back-forward cache eviction.
Emitted when renderer evicts the page from back-forward cache.
</summary>
</histogram>
<histogram name="BackForwardCache.Eviction.TimeUntilProcessKilled" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration between the last time when the entry goes to the
back-forward cache and the time when the process is killed.
</summary>
</histogram>
<histogram
name="BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame.MethodHash"
enum="MojoInterfaceName" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Track number of times an unexpected IPC message is posted to frames in the
renderer process while they are frozen in the back-forward cache. IPC tasks
are denoted by md5 hash of the mojo bindings method name or message hash for
legacy IPCs.
Recorded when an IPC task is posted to frames that have already been stored
in the back-forward cache, after a 15 second delay to account for completion
of all freezing-related operations.
</summary>
</histogram>
<histogram
name="BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame.TimeUntilIPCReceived"
units="ms" expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration between start of page being stored in the back-forward cache and
when the unexpected IPC call is received by a frame while in the cache.
Recorded when an IPC task is posted to frames that have already been stored
in the back-forward cache, after a 15 second delay to account for completion
of all freezing-related operations.
</summary>
</histogram>
<histogram name="BackForwardCache.HistoryNavigationOutcome"
enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, this records whether
the page was restored from the BackForwardCache or not.
This is recorded when back-forward cache is enabled for this navigation
(back-forward cache feature is enabled and the domain is in the scope of the
experiment).
</summary>
</histogram>
<histogram name="BackForwardCache.HistoryNavigationOutcome.BlocklistedFeature"
enum="WebSchedulerTrackedFeature" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, this records what
blocklisted features were used when the page was loaded and prevented this
page from being stored in the back-forward cache. Multiple blocklisted
features can be recorded for the same page.
This is recorded when back-forward cache is enabled for this navigation
(back-forward cache feature is enabled and the domain is in the scope of the
experiment).
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.BrowsingInstanceNotSwappedReason"
enum="BackForwardCacheBrowsingInstanceNotSwappedReason"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of the other active WebContents objects
in the BrowsingInstance, this records the reason why the browsing instance
wasn't swapped.
This is recorded when back-forward cache is enabled for this navigation
(back-forward cache feature is enabled and the domain is in the scope of the
experiment).
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.DisabledForRenderFrameHostReason2"
enum="BackForwardCacheDisabledForRenderFrameHostReason2"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For history navigations, records the reason passed to
BackForwardCache::DisableForRenderFrameHost calls.
The metric is recorded when a history navigation commits and emits a sample
for each reason. Compare this with
BackForwardCache.HistoryNavigationOutcome, which contains the total number
of navigations which where not cached
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.DisallowActivationReason"
enum="InactiveFrameDisallowActivationReason" expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For history navigations, records the reason passed to
RenderFrameHost::IsInactiveAndDisallowActivation calls.
The metric is recorded when a history navigation commits and emits a sample
for each reason. Compare this with
BackForwardCache.HistoryNavigationOutcome, which contains the total number
of navigations which where not cached
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.NotRestoredDueToAccessibility.AXEventType"
enum="AXEventType" expires_after="2022-10-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For history navigations, records the AX event type that caused
RenderFrameHost::IsInactiveAndDisallowActivation calls. The value refers to
AX enum in ui/accessibility/ax_enums.mojom.
The metric is recorded when a history navigation commits and emits the
breakdown of a specific bucket in HistoryNavigationOutcome.NotRestoredReason
(AXEvent). Compare this with BackForwardCache.HistoryNavigationOutcome,
which contains the total number of navigations which were not cached.
This is recorded for all websites regardless whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram name="BackForwardCache.HistoryNavigationOutcome.NotRestoredReason"
enum="BackForwardCacheNotRestoredReason" expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history, record why it wasn't
restored from the cache. The page might not have entered the back-forward in
the first place based on the features used, or it might have been evicted
while being in the cache.
This is recorded when back-forward cache is enabled for this navigation
(back-forward cache feature is enabled and the domain is in the scope of the
experiment).
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.RelatedActiveContents.Count2"
units="count" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of other active WebContents objects in
the BrowsingInstance, this records the number of other active pages/related
active contents using the same BrowsingInstance.
</summary>
</histogram>
<histogram
name="BackForwardCache.HistoryNavigationOutcome.RelatedActiveContents.IsPotentiallySyncAccessible2"
enum="RelatedActiveContentsSyncAccessInfo" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of other active WebContents objects in
the BrowsingInstance, this Records whether the page was potentially
synchronously accessible by other pages/related active contents using the
same BrowsingInstance, at the time the page was navigated away from.
</summary>
</histogram>
<histogram name="BackForwardCache.MainFrameHasPageshowListenersOnRestore"
enum="BooleanPresent" expires_after="M82">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a page restored from the back-forward cache has pageshow
handlers installed in its main frame. Recorded when the renderer resumes
page when restoring it from the back-forward cache.
</summary>
</histogram>
<histogram name="BackForwardCache.PageWithForm.RestoreResult"
enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record for a page that has form attached is about to restored from the back
forward cache, to understand the success rate for bfcaching a page that has
form / input entry attached. This is recorded for page with form attached
only.
Recorded during a cross-page history navigation. If a page with form is
restored from the cache, "PageRestored" will be recorded; if the
page is not egligible to be restored due to any reason,
"PageNotRestored" will be recorded.
</summary>
</histogram>
<histogram name="BackForwardCache.PageWithForm.Storable"
enum="BackForwardCachePageWithFormStorable" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record for a page that has form attached is egligible to be stored in back
forwad cache, to understand the success rate for bfcaching a page that has
form / input entry attached. This is recorded for page with form attached
only.
Recorded when a navigation is committed. If a page has form attached
"PageSeen" will be recorded; if the page is egligible to be stored
in the back forward cache, "PageStored" will be recorded.
</summary>
</histogram>
<histogram name="BackForwardCache.ProcessReuse.{SiteRelation}" units="count"
expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a back/forward cached page shares the same process as the page that
we're navigating to (i.e. whether the new active page reuses the process of
the back/forward cached page).
Recorded when navigating away from a page, after the navigation commits and
we're about to put the previous page into the back/forward cache.
</summary>
<token key="SiteRelation" variants="SiteRelation"/>
</histogram>
<histogram name="BackForwardCache.Restore.NavigationToFirstPaint" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration between start of navigation restoring a document from back-forward
cache and the first paint.
This is recorded when a history navigation is served from back-forward cache
but in a foreground tab.
</summary>
</histogram>
<histogram
name="BackForwardCache.UnexpectedRendererToBrowserMessage.InterfaceName"
enum="MojoInterfaceName" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Hash (base::HashMetricName) of a mojo interface name.
A sample is recorded for every message the browser receives from a renderer
for a page that is in the back-forward cache. Logging can be disabled via
the back-forward cache feature parameter
"message_handling_when_cached".
Renderers should not be sending messages back to the browser for pages that
are in the back-forward cache. Eventually we will be killing such renderers
(as we could assume that it is misbehaving because it got compromised). But
first we must make sure that we are not sending messages by mistake (i.e.
bugs in the renderer).
</summary>
</histogram>
<histogram name="LinkPreview.Experimental.ZoomUsage"
enum="LinkPreviewZoomUsage" expires_after="2024-03-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether zoom was used for link preview.
It is recorded when a preview window is (shown and) closed, regardless
preview is activated or not.
It will be used to determine we should implement persistency for zoom levels
for preview.
</summary>
</histogram>
<histogram name="Navigation.AnonymousIframeIsSandboxed" enum="Boolean"
expires_after="2023-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record whether iframe with the anonymous attribute contains sandboxed
document or not.
</summary>
</histogram>
<histogram name="Navigation.AutomaticBeaconOutcome"
enum="AutomaticBeaconOutcome" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record if a 'reserved.top_navigation' automatic beacon was sent out, or the
reason for not sending the beacon if it was not sent out.
</summary>
</histogram>
<histogram name="Navigation.BackForward.CacheFlags" enum="NavigationCacheEnum"
expires_after="M85">
<owner>[email protected]</owner>
<summary>The cache flags set on back-forward navigations.</summary>
</histogram>
<histogram
name="Navigation.BackForward.TimeFromOpenBackNavigationMenuToActivateItem"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time spent between the back navigation menu model's opening and the
activation of a menu item. This is recorded when the back navigation menu
model receives signal that indicates the item from the menu is activated.
See `BackForwardMenuModel::MenuWillShow()` and
`BackForwardMenuModel::ActivatedAt()` for more details.
</summary>
</histogram>
<histogram
name="Navigation.BackForward.TimeFromOpenBackNavigationMenuToCloseMenu"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time spent between the back navigation menu model's opening and the
closing. There might or might not be a menu item activation in between. This
is recorded when the back navigation menu model receives signal that
indicates it will be closed. See `BackForwardMenuModel::MenuWillShow()` and
`BackForwardMenuModel::MenuWillClose()` for details.
</summary>
</histogram>
<histogram name="Navigation.BackForward.WasCached"
enum="NavigationWasServedFromCache" expires_after="M85">
<owner>[email protected]</owner>
<summary>Whether the back-forward navigation was served from cache.</summary>
</histogram>
<histogram name="Navigation.BrowserInitiatedSessionHistoryCount"
enum="HistoryNavType" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the different types of browser-initiated session history navigations.
The counts are recorded when the respective NavigationRequests are first
created, and before the requests are owned by their respective
RenderFrameHost. The metric is recorded once per browser-initiated history
navigation.
</summary>
</histogram>
<histogram name="Navigation.BrowserMappedUrnUuidInIframeOrFencedFrame"
enum="NavigationBrowserMappedUrnUuidInIframeOrFencedFrame"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For navigation requests with FLEDGE or SharedStorage generated urn:uuid,
record whether it is rendered in a fenced frame or iframe. Recorded when
navigation requests begin (i.e. during
NavigationRequest::BeginNavigation()).
</summary>
</histogram>
<histogram name="Navigation.CodeCacheTime.{CodeCacheType}" units="ms"
expires_after="2023-06-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long it takes to fetch from the code cache. Logged every time
the code cache is fetched for the navigation body or a resource.
</summary>
<token key="CodeCacheType">
<variant name="MainFrame"/>
<variant name="Resource"/>
<variant name="Subframe"/>
</token>
</histogram>
<histogram
name="Navigation.CommitNavigationWithParams.Time.IsStandardLoadType.IsHTTPOrHTTPS"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent processing RenderFrameImpl::CommitNavigationWithParams() in the
renderer process. This is recorded on each WebFrameLoadType::kStandard
navigation for http or https URLs.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Navigation.CommitRenderFrame" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameImpl::CommitNavigation() to run.
Recorded on every RenderFrameImpl::CommitNavigation() call.
</summary>
</histogram>
<histogram
name="Navigation.CommitRenderFrame.OutermostMainFrame.NewNavigation.IsHTTPOrHTTPS"
units="ms" expires_after="2024-12-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameImpl::CommitNavigation() to run on the
outermost main frame. Recorded on RenderFrameImpl::CommitNavigation() call,
when it's a new non-(reload/history/restore) navigation for the URL with
HTTP or HTTPS scheme.
</summary>
</histogram>
<histogram name="Navigation.CommitRenderFrame.{FrameType}" units="ms"
expires_after="2024-12-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameImpl::CommitNavigation() to run on
{FrameType}. Recorded on every RenderFrameImpl::CommitNavigation() call.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.CompositorCreationTo{Stage}2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration between the creation of CompositorFrameSink for a
new RenderWidgetHost to when the navigation that uses that RenderWidgetHost
reaches {Stage}. Logged when the navigation that uses a new RenderFrameHost
and RenderWidgetHost reaches both the commit and swap RFH stages and the
creation of CompositorFrameSink had already been requested at that time.
</summary>
<token key="Stage" variants="NavigationStage"/>
</histogram>
<histogram name="Navigation.CompositorRequestedBefore{Stage}2" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the creation of CompositorFrameSink for a new
RenderWidgetHost is already requested when the navigation that uses it
reaches {Stage}. Logged when the navigation that uses the new
RenderFrameHost and RenderWidgetHost has reached both the commit and swap
RFH stages.
</summary>
<token key="Stage" variants="NavigationStage"/>
</histogram>
<histogram name="Navigation.CreateSpeculativeRFH" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for
RenderFrameHostManager::CreateSpeculativeRenderFrameHost() to run. Recorded
on every RenderFrameHostManager::CreateSpeculativeRenderFrameHost() call.
</summary>
</histogram>
<histogram name="Navigation.DeferSpeculativeRFHAction"
enum="DeferSpeculativeRFHAction" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the speculative RFH is deferred when the navigation starts
and whether a spare render process is warmed up.
</summary>
</histogram>
<histogram name="Navigation.DidCommitSameDocumentNavigation.Duration"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time it takes to call
RenderFrameHostImpl::DidCommitSameDocumentNavigation(). Logged once per call
to RenderFrameHostImpl::DidCommitSameDocumentNavigation().
</summary>
</histogram>
<histogram name="Navigation.DuringGesture.NavStarted{NavigationMode}"
enum="Boolean" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record if there is navigation started during a gesture is in progress. This
records for {NavigationMode} when a gesture is finished. Android only.
</summary>
<token key="NavigationMode" variants="NavigationMode"/>
</histogram>
<histogram name="Navigation.Earlyhints.EarlyHintsToResponseStartTime"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from a navigation request received the first early hints to the
response started. Recorded per navigation when both early hints and the
final response are received.
</summary>
</histogram>
<histogram name="Navigation.Earlyhints.WillStartRequestToEarlyHintsTime"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time from a navigation request will start to the first early hints is
received. Recorded per navigation when both early hints and the final
response are received.
</summary>
</histogram>
<histogram name="Navigation.EarlyRenderFrameHostSwap.HasCommitted"
enum="Boolean" expires_after="2025-08-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a navigation swaps to the destination RenderFrameHost early, this records
whether or not the navigation actually ended up committing a document. This
will be true for most navigations, but false for downloads and 204
responses. Recorded once for every navigation that performs an early
RenderFrameHost swap.
</summary>
</histogram>
<histogram name="Navigation.EarlyRenderFrameHostSwap.IsInOutermostMainFrame"
enum="BooleanMainFrame" expires_after="2025-08-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If a navigation swaps to the destination RenderFrameHost early, this records
whether the navigation was in an outermost main frame. Recorded once per
early RenderFrameHost swap.
</summary>
</histogram>
<histogram name="Navigation.EarlyRenderFrameHostSwapType"
enum="EarlyRFHSwapType" expires_after="2025-08-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records whether a navigation swapped to the destination RenderFrameHost
early (prior to commit), as well as the reason for this swap. Recorded once
at the end of every navigation, when NavigationRequest is destroyed.
</summary>
</histogram>
<histogram name="Navigation.EngagementTime.HTTP" units="ms"
expires_after="never">
<!-- expires-never: Underlies a public transparency report graph https://transparencyreport.google.com/https/overview?hl=en -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time that an HTTP page was in the foreground. Recorded on
every page close/transition. This metric is exposed publicly on the HTTPS
Transparency Report at
https://transparencyreport.google.com/https/overview?hl=en.
</summary>
</histogram>
<histogram name="Navigation.EngagementTime.HTTPS" units="ms"
expires_after="never">
<!-- expires-never: Underlies a public transparency report graph https://transparencyreport.google.com/https/overview?hl=en -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time that an HTTPS page was in the foreground. Recorded on
every page close/transition. This metric is exposed publicly on the HTTPS
Transparency Report at
https://transparencyreport.google.com/https/overview?hl=en.
</summary>
</histogram>
<histogram name="Navigation.EngagementTime.Ratio" units="%"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of time that HTTPS pages were in the foreground, as compared
to total foreground time. Recorded whenever user metrics are uploaded.
</summary>
</histogram>
<histogram name="Navigation.FCPFrameSubmissionToSurfaceEmbed" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time between when the first contentful paint frame for a new
document is received by Viz to when the surface used for the new document
gets embedded by the browser process. Logged after the first contentful
frame has been displayed on screen.
</summary>
</histogram>
<histogram name="Navigation.FCPFrameSubmittedBeforeSurfaceEmbed" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the first contentful paint frame for a new document was
received by Viz before the surface used for the document gets embedded by
the browser process. Logged after the first contentful frame has been
displayed on screen.
</summary>
</histogram>
<histogram name="Navigation.FencedFrameAutomaticBeaconEventType"
enum="FencedFrameAutomaticBeaconEventType" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded what event type is used when automatic beacon data is set using
setReportEventDataForAutomaticBeacons().
</summary>
</histogram>
<histogram name="Navigation.FencedFrameBeaconReportingCountCrossOrigin"
units="beacons" expires_after="2025-03-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many beacons were sent through window.fence.reportEvent() from a
document that is cross-origin to the mapped URL of the FencedFrameConfig
during the lifetime of the FencedFrameConfig object. This is recorded when
the FencedFrameConfig object is destroyed and is recorded once per
FencedFrameConfig instance.
</summary>
</histogram>
<histogram name="Navigation.FencedFrameBeaconReportingCountSameOrigin"
units="beacons" expires_after="2025-03-13">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many beacons were sent through window.fence.reportEvent() from a
document that is same-origin to the mapped URL of the FencedFrameConfig
during the lifetime of the FencedFrameConfig object. This is recorded when
the FencedFrameConfig object is destroyed and is recorded once per
FencedFrameConfig instance.
</summary>
</histogram>
<histogram name="Navigation.FencedFrameTopNavigation"
enum="FencedFrameNavigationState" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This records top-level navigations that originated from a fenced frame or
URN iframe. At navigation start, a 'Begin' is logged. If the navigation
commits (i.e. doesn't fail at some point in the navigation process), a
'Commit' is logged. To get the percentage of top-level navigations
originating from a fenced frame or URN iframe that successfully commit,
divide the number of 'Commit' logs by the number of 'Begin' logs.
</summary>
</histogram>
<histogram name="Navigation.GestureTransition.CacheHitOrMissReason"
enum="NavigationTransitionCacheHitOrMissReason" expires_after="M140">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the occurrence of cache hit or cache miss reasons when the user
starts a back/forward navigation gesture. This is recorded once per user
gesture.
</summary>
</histogram>
<histogram name="Navigation.GestureTransition.ScreenshotCacheSize" units="MB"
expires_after="M140">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="LOWER_IS_BETTER"/>
<summary>
The amount of memory usage by the screenshots captured for predictive back.
Recorded at Poisson sampled time intervals continuously, regardless of user
gesture, with a mean of 5 minutes on Android and 30 minutes on other
platforms.
</summary>
</histogram>
<histogram name="Navigation.GetFrameHostForNavigation" units="ms"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for RenderFrameHostManager::GetFrameHostForNavigation() to
run. Recorded on every RenderFrameHostManager::GetFrameHostForNavigation()
call.
</summary>
</histogram>
<histogram
name="Navigation.GetFrameHostForNavigationTime.InDidCreateNavigationRequest.IsHTTPOrHTTPS"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time spent processing GetFrameHostForNavigation() in
RenderFrameHostManager::DidCreateNavigationRequest() that can prepare a
SpeculativeRenderFrameHost. SpeculativeRenderFrameHost might not be created
in some cases, but this UMA records such cases as well. This is recorded on
each navigation if the navigation requires GetFrameHostForNavigation() to be
called for http or https URLs. Calling GetFrameHostForNavigation() is not
required for the same document navigations or back/forward cache
navigations.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Navigation.Guest.IsHTTPOrHTTPS"
enum="BooleanHttpBasedOrOtherScheme" expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the committing guest navigation targets an HTTP(S) URL. Logged at
ready-to-commit time for navigations in a webview tag (also known as
"guest" in process model terminology), excluding same-document
navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.Guest.IsMainFrame" enum="BooleanMainFrame"
expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the committing guest navigation is in a main frame. Logged at
ready-to-commit time for navigations in a webview tag (also known as
"guest" in process model terminology), excluding same-document
navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.Home.IsChromeInternal" enum="Boolean"
expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted every time a user uses a Home button to go to their home page.
Records whether the page is chrome-internal (most likely the New Tab Page or
about:blank) or not (most likely an actual web site). For the purpose of
this histogram, about:, chrome: and chrome-native: are considered
chrome-internal; everything else is not.
The user action Navigation.Home.NotChromeInternal is also logged in the case
that false is logged to this histogram.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
</histogram>
<histogram name="Navigation.HostnameHasDeviationCharacters" units="count"
expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of typed and pasted main frame navigations to hostnames
that contain characters that are treated differently between IDNA 2003 and
IDNA 2008, aka deviation characters. Ignores reload navigations.
</summary>
</histogram>
<histogram name="Navigation.IsGuest" enum="NavigationIsGuest"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the committing navigation is for a webview tag (also known as
"guest" in process model terminology). Logged at ready-to-commit
time for every navigation, excluding same-document navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.IsLockedProcess" enum="NavigationIsLockedProcess"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the navigation commits in a process that is locked to an origin.
Logged at ready-to-commit time for every navigation excluding same-document
navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.IsLockedProcess.HTTPOrHTTPS"
enum="NavigationIsLockedProcess" expires_after="2024-11-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the navigation commits in a process that is locked to an origin.
Logged at ready-to-commit time for every navigation that commits with a HTTP
or HTTPS URL scheme, excluding same-document navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.IsProcessBackgrounded.{Timing}" enum="Boolean"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records true if the RenderProcess is backgrounded, otherwise records false.
This is recorded on {Timing} when the URL is HTTP or HTTPS and only when the
navigation happens in OutermostMainFrame.
</summary>
<token key="Timing">
<variant name="OnCommit" summary="CommitNavigation"/>
<variant name="OnDOMContentLoaded" summary="DOMContentLoaded"/>
</token>
</histogram>
<histogram name="Navigation.IsSameBrowsingInstance"
enum="NavigationIsSameBrowsingInstance" expires_after="2025-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether a main frame navigation led to a change of BrowsingInstance or not.
</summary>
</histogram>
<histogram name="Navigation.IsSameSiteInstance"
enum="NavigationIsSameSiteInstance" expires_after="2025-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the navigation led to a change of SiteInstance or not.
</summary>
</histogram>
<histogram name="Navigation.LatencyAblation.ExcessWaitTime" units="ms"
expires_after="2023-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time the user waits beyond what is configured for the latency ablation
study. The enabled arms of the latency ablation study prescribe an amount of
time to delay the navigation, and this histogram records the amount of time
that was waited beyond that prescription. Recorded upon resuming the
navigation after the ablation occurs. This ablation occurs for most
navigations, but does not occur for subframes, prerenders, fenced frames,
bf/restore style navigations, and client redirects. The experiment can be
configured to only affect default search (or only affect non default
search).
</summary>
</histogram>
<histogram name="Navigation.LoadIfNecessaryType"
enum="NavigationNeedsReloadType" expires_after="never">
<!-- expires-never: Generally useful metric on Android that tracks number of automatic tab reloads and their cause. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/base/android/OWNERS</owner>
<summary>
The type of the source of a load from LoadIfNecessary. Recorded when
LoadIfNecessary starts a page load. For example, on Android,
kRequestedByClient is recorded when user switch back to a tab with a dead
renderer, which causes the tab to reload.
</summary>
</histogram>
<histogram name="Navigation.MainFrame.FrameCount" units="frames"
expires_after="2023-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of frames that are present in a WebContents. Recorded once when
the main frame finishes loading.
</summary>
</histogram>
<histogram name="Navigation.MainFrame.FromAdClick" enum="Boolean"
expires_after="2025-02-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a True boolean value when clicking on an Ad triggers a main frame
navigation. Recorded when the (renderer-initiated) navigation IPC is
received by the browser process.
</summary>
</histogram>
<histogram name="Navigation.MainFrame.MaxFrameCount" units="frames"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The maximum number of loaded frames that are present in a WebContents.
Recorded once when the main frame is moving away from current page. This can
be when the WebContents is being destroyed or when it starts loading new
content.
</summary>
</histogram>
<histogram
name="Navigation.MainFrame.NewNavigation.IgnoreRestore.IsHTTPOrHTTPS.{DurationFromTo}.Time2"
units="ms" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record when (a) the navigation happened in MainFrame, (b) it was a new
navigation, (c) it was not a session restore, (d) the URL was http or https,
and (e) the navigation was successfully committed. Measures the duration
between {DurationFromTo}. This is also included in the trace log.
</summary>
<token key="DurationFromTo">
<variant name="BeginNavigationToLoaderStart"
summary="when the BeginNavigation starts, to when the
NavigationURLLoader starts"/>
<variant name="FetchStart"
summary="when the browser is ready to fetch the document using an
HTTP(S) request (which is called as fetchStart), to when the
first HTTP(S) request is sent"/>
<variant name="LoaderStartToFetchStart"
summary="when the NavigationURLLoader starts, to when the browser is
ready to fetch the document using an HTTP(S) request (which
is called as fetchStart)"/>
<variant name="LoaderStartToReceiveResponse"
summary="when the NavigationURLLoader starts, to when the browser
process receives the response (HTTP header)"/>
<variant name="NavigationStartToBeginNavigation"
summary="when the navigation starts, to when the BeginNavigation
starts"/>
<variant name="ReceiveHeaders"
summary="when the first HTTP(S) request is sent, to when the final
headers are received in the network service. This duration
can involve multiple redirects"/>
<variant name="ReceiveHeadersToReceiveResponse"
summary="when the final headers are received in the network service,
to when the browser process receives the response (HTTP
header)"/>
<variant name="ReceiveResponseToCommitNavigation"
summary="when the browser process receives the response (HTTP
header), to when the CommitNavigation mojo API is called in
the browser process"/>
</token>
</histogram>
<histogram
name="Navigation.MainFrame.RendererInitiated.InitiatorFramePresentAtStart"
enum="BooleanPresent" expires_after="2023-10-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the initiator frame is present when a renderer-initiated primary
main frame navigation has started. Recorded for each renderer-initiated
primary main frame navigation when the navigation has started (i.e. during
WebContentsObserver::DidStartNavigation()).
</summary>
</histogram>
<histogram name="Navigation.MainFrame.SiteEngagementLevel"
enum="SiteEngagementLevel" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Site engagement level of the URL of the top frame of a navigation. Only
counts HTTP or HTTPS URLs and ignores downloads.
</summary>
</histogram>
<histogram name="Navigation.MainFrame.ThirdPartyCookieBlockingEnabled"
enum="ThirdPartyCookieBlockState" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether third party cookie blocking was enabled for a site. Recorded
for each main-frame navigation when that navigation commits. Only counts
HTTP or HTTPS URLs and ignores downloads.
</summary>
</histogram>
<histogram name="Navigation.MainFrameHasRTLDomain2" enum="Boolean"
expires_after="2024-11-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the main-frame navigation was to a URL with an RTL domain name. This
is only recorded for finished navigations and not attempts. Warning: this
histogram was expired from M92 through M95; data may be missing.
</summary>
</histogram>
<histogram name="Navigation.MainFrameHasRTLDomainDifferentPage2" enum="Boolean"
expires_after="2024-11-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the main-frame navigation was to a URL with an RTL domain name,
recorded for each main-frame avigation that replaces a document object. This
is not reported for reference fragment navigations, pushState/replaceState
or same page history navigation. This is only recorded for finished
navigations and not attempts.
</summary>
</histogram>
<histogram name="Navigation.MainFrameProfileType2" enum="BrowserProfileType"
expires_after="2025-02-09">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The browser profile type for each main-frame navigation, recorded after
navigation completion, including NTP.
</summary>
</histogram>
<histogram
name="Navigation.MainframeSameDocumentNavigationCommitToPresentFirstFrame"
units="ms" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time to present the first frame since the same-document
navigation has finished in the mainframe's renderer.
</summary>
</histogram>
<histogram name="Navigation.MainFrameScheme2" enum="NavigationScheme"
expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The scheme of the URL for each main-frame navigation. This is only recorded
for finished navigations and not attempts. Warning: this histogram was
expired from 2021-06-01 through M95; data may be missing.
</summary>
</histogram>
<histogram name="Navigation.MainFrameSchemeDifferentPage2"
enum="NavigationScheme" expires_after="never">
<!-- expires-never: Underlies a public transparency report graph https://transparencyreport.google.com/https/overview?hl=en -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The scheme of the URL for each main-frame navigation that replaces a
document object. This is not reported for reference fragment navigations,
pushState/replaceState or same page history navigation. This is only
recorded for finished navigations and not attempts.
</summary>
</histogram>
<histogram name="Navigation.MainFrameSchemeDifferentPage2NonUniqueHostname"
enum="NavigationScheme" expires_after="2024-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
A subset of MainFrameSchemeDifferentPage2 only recorded for non-unique
hostnames. The scheme of the URL for each main-frame navigation that
replaces a document object. This is not reported for reference fragment
navigations, pushState/replaceState or same page history navigation. This is
only recorded for finished navigations and not attempts.
</summary>
</histogram>
<histogram name="Navigation.MainFrameSchemeDifferentPageOTR2"
enum="NavigationScheme" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The scheme of the URL for each main-frame navigation that replaces a
document object while in incognito. This is not reported for reference
fragment navigations, pushState/replaceState or same page history
navigation. This is only recorded for finished navigations and not attempts.
</summary>
</histogram>
<histogram name="Navigation.MainFrameSchemeOTR2" enum="NavigationScheme"
expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The scheme of the URL for each main-frame navigation while in incognito.
This is only recorded for finished navigations and not attempts. Warning:
this histogram was expired from 2021-06-01 through M97; data may be missing.
</summary>
</histogram>
<histogram name="Navigation.OnBeforeUnloadOverheadTime" units="ms"
expires_after="2025-01-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Overhead time spent handling the OnBeforeUnload event from the browser
standpoint. More precisely, it is the total time between dispatch and
acknowledgment of the BeforeUnload event on the browser side, minus the
actual time spent executing the BeforeUnload handlers on the renderer side.
</summary>
</histogram>
<histogram name="Navigation.OnBeforeUnloadTotalTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Milliseconds spent to process all the beforeunload events in JavaScript and
waiting time for beforeunload dialog is closed if necessary. Recorded only
when a non-reload navigation occurs.
</summary>
</histogram>
<histogram
name="Navigation.OnGestureStart.NavigationInProgress{NavigationMode}"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record if a nav is in progress when a gesture has been just started. This
records for {NavigationMode} when a gesture has been just started. This
records once per navigation gesture. Android only.
</summary>
<token key="NavigationMode" variants="NavigationMode"/>
</histogram>
<histogram name="Navigation.OriginAgentCluster.Result"
enum="OriginAgentClusterEndResult" expires_after="2025-05-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every successful cross-document commit, this logs whether or how
OriginAgentCluster was involved. It tracks whether it was requested, as well
as whether the isolation was granted, which can be affected by other
documents in the same browsing context group. If OriginAgentCluster-by-
default is not enabled, the first four enum values track this state. If
OriginAgentCluster-by-default is enabled, then the second (disjoint) set of
six enum values tracks this state, plus the two additional cases where
OriginAgentCluster was explicitly not requested, and was or wasn't granted.
</summary>
</histogram>
<histogram
name="Navigation.PendingCommit.BlockedCommitCount.{RegularOrMHTMLType}"
units="count" expires_after="2023-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many attempts to assign a final RenderFrameHost for a navigation
were blocked due to a pre-existing speculative RenderFrameHost being in the
kPendingCommit state. Collected when the navigation commits in
DidCommitNavigation().
</summary>
<token key="RegularOrMHTMLType" variants="RegularOrMHTMLType"/>
</histogram>
<histogram name="Navigation.PendingCommit.BlockedCount.{RegularOrMHTMLType}"
units="count" expires_after="2023-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many attempts to assign RenderFrameHost (initial or final) for a
navigation were blocked due to a pre-existing speculative RenderFrameHost
being in the kPendingCommit state. Collected when the navigation commits in
DidCommitNavigation().
</summary>
<token key="RegularOrMHTMLType" variants="RegularOrMHTMLType"/>
</histogram>
<histogram
name="Navigation.PendingCommit.DidBlockGetFrameHostForNavigation.{RegularOrMHTMLType}"
enum="Boolean" expires_after="2023-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether any calls to `GetFrameHostForNavigation()` that failed due
to a pre-existing speculative RenderFrameHost being in the kPendingCommit
state. Collected when the navigation commits in DidCommitNavigation().
</summary>
<token key="RegularOrMHTMLType" variants="RegularOrMHTMLType"/>
</histogram>
<histogram name="Navigation.PendingCommit.Duration.{RegularOrMHTMLType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time between the browser asking a speculative
RenderFrameHost to commit a navigation in the renderer and the commit
actually being recorded in the browser process. Collected when the
navigation commits in DidCommitNavigation().
</summary>
<token key="RegularOrMHTMLType" variants="RegularOrMHTMLType"/>
</histogram>
<histogram name="Navigation.Preconnect.PreresolveJobQueueingTime" units="ms"
expires_after="2023-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time that a requested preresolve job spends queueing
before being executed (e.g., due to a max # of preconnects being in flight).
Recorded for each presolve job.
</summary>
</histogram>
<histogram name="Navigation.Preconnect.PreresolveJobQueueLength" units="count"
expires_after="2023-08-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the length of the queue of preresolve jobs at the beginning of
PreconnectManager processing this queue to execute jobs. Recorded each time
that PreconnectManager processes the queue of pending jobs.
</summary>
</histogram>
<histogram name="Navigation.Preconnect.ProxyLookupCallbackQueueingTime"
units="ms" expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time that the task corresponding to the completion
callback for a proxy lookup performed as part of navigation preconnect spent
being queued before executing. Recorded for each proxy lookup.
</summary>
</histogram>
<histogram name="Navigation.Preconnect.ProxyLookupLatency" units="ms"
expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the duration from initiation to completion for a proxy lookup
performed as part of navigation preconnect. Recorded for each proxy lookup.
Note: Does not capture any delay spent queuing *before* initiating the proxy
lookup (e.g., due to a max # of preconnects being in flight).
</summary>
</histogram>
<histogram name="Navigation.Preconnect.ResolveHostCallbackQueueingTime"
units="ms" expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time that the task corresponding to the completion
callback for a host resolution performed as part of navigation preconnect
spent being queued before executing. Recorded for each host resolution.
</summary>
</histogram>
<histogram name="Navigation.Preconnect.ResolveHostLatency" units="ms"
expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the duration from initiation to completion for a host resolution
performed as part of navigation preconnect. Recorded for each host
resolution. Note: Does not capture any delay spent queuing *before*
initiating the host resolution (e.g., due to a max # of preconnects being in
flight).
</summary>
</histogram>
<histogram name="Navigation.Prefetch.CompressedBodySize" units="KB"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the response body for prefetch responses that had a
non-trivial Content-Encoding. This is logged once per successfully completed
compressed response in PrefetchManager::OnPrefetchFinished(). A response is
considered compressed when the decoded body length is larger than the
encoded body length. Compare to Navigation.Prefetch.UncompressedBodySize.
</summary>
</histogram>
<histogram name="Navigation.Prefetch.IsHttps" enum="Boolean"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether or not a prefetch requested a URL with an https scheme.
Recorded once for each prefetch performed by PrefetchManager. This is based
on what the PrefetchManager requested and doesn't take into account
subsequent internal or external redirects to https.
</summary>
</histogram>
<histogram name="Navigation.Prefetch.PrefetchJobQueueingTime" units="ms"
expires_after="2023-03-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time that a requested prefetch job spends queueing
before being executed (e.g., due to a max # of prefetches being in flight).
Recorded for each prefetch job.
</summary>
</histogram>
<histogram name="Navigation.Prefetch.PrefetchJobQueueLength" units="count"
expires_after="2023-03-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the length of the queue of prefetch jobs at the beginning of
PrefetchManager processing this queue to execute jobs. Recorded each time
that PrefetchManager processes the queue of pending jobs.
</summary>
</histogram>
<histogram name="Navigation.Prefetch.UncompressedBodySize" units="KB"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the size of the response body for prefetch responses that did not
use HTTP Content-Encoding compression. This is logged once per successfully
completed uncompressed response in PrefetchManager::OnPrefetchFinished(). A
response is considered compressed when the decoded body length is larger
than the encoded body length. Compare to
Navigation.Prefetch.CompressedBodySize.
</summary>
</histogram>
<histogram
name="Navigation.Prerender.ActivationCommitDeferTime{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures time a PrerenderCommitDeferringCondition defers activation waiting
to commit an ongoing mainframe prerender navigation. Logged every time a
PrerenderCommitDeferringCondition defers navigation.
After 2023/05, this metric is used with PreloadingTriggerType key and
records even when PrerenderCommitDeferringCondition doesn't delay navigation
as zero delay. Previously the metric was only used without the key and
recorded only when PrerenderCommitDeferringCondition deferred navigation.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Navigation.ProcessNavigationThrottlesTime.WillStartRequest.{FrameType}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time taken to process regsitered navigation throttles in the
WillStartRequest event for a {FrameType}. Recorded for every navigation,
before dispatching the request.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.QueueTime.{Method}.{FrameType}" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time the task to run {Method} was queued before
running. Logged every time {Method} is run for a {FrameType} in
NavigationURLLoaderImpl with a valid queue time.
Warning: this histogram was expired after 2023-07-28 and brought back
2024-05-20; data may be missing.
</summary>
<token key="Method">
<variant name="OnReceiveRedirect"/>
<variant name="OnReceiveResponse"/>
</token>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.ReadyToCommitUntilCommit2" units="ms"
expires_after="2023-03-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time needed to commit a navigation once it is ready to commit. This is
the time between ReadyToCommit and DidFinishNavigation (for a navigation
that commits).
Warning: this histogram was expired after M85 and brought back 2021-04-13;
data may be missing.
</summary>
</histogram>
<histogram name="Navigation.RegisterNavigationThrottlesTime.{FrameType}"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time taken to register navigation throttles in
NavigationThrottleRunner for a {FrameType}. Recorded for every navigation,
before dispatching the request.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.Renderer.BlockedForFilterURL"
enum="RendererBlockedURLReason" expires_after="2025-02-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when RenderFrameImpl::IsValidCommitUrl detects a navigation URL
that would be blocked by RenderProcessHostImpl::FilterURL and rewrites it to
about:blank#blocked. See also BrowserRenderProcessHost.BlockedByFilterURL
for cases caught by the browser process, and https://crbug.com/40066983.
</summary>
</histogram>
<histogram name="Navigation.RendererCommitDelay.{FrameType}" units="ms"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the delay between when the navigation commit was sent by the
browser to when it is received by the renderer. Recorded for every
cross-document non-page activation navigation commit.
Warning: this histogram was expired after 2023-05-05 and brought back
2024-05-09; data may be missing.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererCommitProcessWaitTime.{FrameType}"
units="ms" expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures how long the navigation commit was waiting for the renderer process
to start before it was able to receive the commit. Recorded for every
cross-document non-page activation navigation commit which waits on a
process start.
Warning: this histogram was expired after 2023-05-05 and brought back
2024-05-09; data may be missing.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererCommitQueueTime.{FrameType}" units="ms"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures queue time for the navigation commit mojo task on the renderer
side. Recorded for every cross-document non-page activation navigation
commit.
Warning: this histogram was expired after 2023-05-05 and brought back
2024-05-09; data may be missing.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererDidNavigateTime.{FrameType}" units="ms"
expires_after="2023-07-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures time it takes to call
NavigationControllerImpl::RendererDidNavigate. Recorded for each navigation
that is not a same document navigation.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram
name="Navigation.RendererRunLoopStartToFirstCommitNavigation2.{FrameType}"
units="ms" expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the duration between a) the start timing of the renderer's RunLoop
and b) the first CommitNavigation. Recorded on the first navigation commit
in the renderer process. If the first navigation does not commit http or
https, this is not recorded.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RenderFrameDelete" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameImpl::Delete() to run. Recorded on
every RenderFrameImpl::Delete() call.
</summary>
</histogram>
<histogram name="Navigation.RenderFrameHostConstructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameHost constructor to run. Recorded on
every RenderFrameHost construction.
</summary>
</histogram>
<histogram name="Navigation.RenderFrameHostDestructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderFrameHost destructor to run. Recorded on
every RenderFrameHost destruction.
</summary>
</histogram>
<histogram name="Navigation.RenderViewHostConstructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderViewHost constructor to run. Recorded on
every RenderViewHost construction.
</summary>
</histogram>
<histogram name="Navigation.RenderViewHostDestructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderViewHost destructor to run. Recorded on
every RenderViewHost destruction.
</summary>
</histogram>
<histogram name="Navigation.RenderWidgetHostConstructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderWidgetHost constructor to run. Recorded on
every RenderWidgetHost construction.
</summary>
</histogram>
<histogram name="Navigation.RenderWidgetHostDestructor" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the RenderWidgetHost destructor to run. Recorded on
every RenderWidgetHost destruction.
</summary>
</histogram>
<histogram name="Navigation.RequiresDedicatedProcess"
enum="NavigationRequiresDedicatedProcess" expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the navigation commits in a SiteInstance that requires a dedicated
process. Logged at ready-to-commit time for every navigation excluding
same-document navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.RequiresDedicatedProcess.HTTPOrHTTPS"
enum="NavigationRequiresDedicatedProcess" expires_after="2025-03-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the navigation commits in a SiteInstance that requires a dedicated
process. Logged at ready-to-commit time for every navigation that commits
with a HTTP or HTTPS URL scheme, excluding same-document navigations and
errors.
</summary>
</histogram>
<histogram name="Navigation.SameDocumentNavigationWithScreenshot"
enum="Boolean" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the number of same-document navigations which commit in the
renderer. The metric is recorded each time the renderer commits a navigation
and tracks whether the navigation is eligible for screenshotting for
navigation transitions
</summary>
</histogram>
<histogram name="Navigation.SendCommitNavigationTime.{FrameType}" units="ms"
expires_after="2023-08-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the time RenderFrameHostImpl::SendCommitNavigation takes to run.
Recorded every time the method executes.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.StartToCommit" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time delta between the start of a navigation and the time it is
committed.
Warning: this histogram was expired after M85 and brought back 2021-04-13;
data may be missing.
</summary>
</histogram>
<histogram name="Navigation.SuddenTerminationDisabler.{Origins}"
enum="NavigationSuddenTerminationDisabler" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the combination of mainframe/subframe and what sudden termination
disablers were present. This is recorded on every cross-document navigation.
Currently only covers Unload. The SameOrigin variant only considers a frame
to be same origin as the main frame if it can be reached through a chain of
same-origin frames. So e.g. in a->b->a, the second a is not
same-origin.
</summary>
<token key="Origins">
<variant name="AllOrigins"/>
<variant name="SameOrigin"/>
</token>
</histogram>
<histogram name="Navigation.SurfaceEmbedToFCPFrameSubmission" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time between when the surface used for a new document gets
embedded by the browser process to when the first contentful paint frame for
the new document is received by Viz. Logged after the first contentful frame
has been displayed on screen.
</summary>
</histogram>
<histogram name="Navigation.ThrottleCount" units="throttles"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the total count of navigation throttles that are actually
registered for a navigation request. Recorded per navigation on destructing
NavigationThrottleRunner.
</summary>
</histogram>
<histogram name="Navigation.ThrottleDeferredEvent"
enum="NavigationThrottleEvent" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the navigation throttle event type that observes DEFER on running
NavigationThrottles. Recorded per receiving DEFER decision on each throttle
run to understand the distribution.
</summary>
</histogram>
<histogram name="Navigation.ThrottleDeferTime.{Event}" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures time a navigation throttle was deferred when on {Event}. Logged
every time a throttle defers a navigation.
Warning: this histogram was expired from 2023-02-11 to 2024-06-17; data may
be missing.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.ThrottleEventDurationTime.{Event}" units="ms"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures time a navigation throttle runner took to execute all throttles for
{Event} including suspended duration by DEFERs. Logged every time a
navigation throttle runner completes processing all throttles for {Event}
without any objection.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.ThrottleEventExecutionTime.{Event}" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures accumulated time a navigation throttle runner took to execute all
throttles for {Event}. Logged every time a navigation throttle runner
completes processing all throttles for {Event} without any objection.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.ThrottleExecutionTime.{Event}" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures time a navigation throttle took to execute {Event}. Logged every
time a throttle runs.
Warning: this histogram was expired from 2023-02-11 to 2024-06-17; data may
be missing.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.Throttles.PolicyBlocklist.DeferDurationTime"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures duration times that PolicyBlocklistNavigationThrottles asks to
defer navigation request. The time is accumulated on resuming request each
time, and recorded on destructing the throttle for the request.
</summary>
</histogram>
<histogram name="Navigation.Throttles.PolicyBlocklist.RequestThrottleAction2"
enum="PolicyBlocklistRequestThrottleAction" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Remembers the PolicyBlocklistNavigationThrottles' actions for
WillStartRequest() and WillRedirectRequest() and classify as the
PolicyBlocklistRequestThrottleAction. The classified type is recorded on
destructing the throttle for the request.
</summary>
</histogram>
<histogram name="Navigation.Throttles.PolicyBlocklist.RequestToResponseTime"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures duration times from the time PolicyBlocklistNavigationThrottles
observes the first WillStartRequest() to the time it observes the
WillProcessResponse(). Recorded when the WillProcessResponse() is handled.
</summary>
</histogram>
<histogram name="Navigation.ThrottleTotalDeferCount{Condition}"
units="throttles" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures total count of deferred requests that a throttle runner asked on
{Condition} by any throttle per navigation. Recorded per navigation on
destructing NavigationThrottleRunner.
</summary>
<token key="Condition" variants="NavigationThrottleConditions"/>
</histogram>
<histogram name="Navigation.ThrottleTotalDeferTime{Condition}" units="ms"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures total duration time that a throttle runner took to wait for
deferred requests on {Condition} from all throttles. Recorded per navigation
on destructing NavigationThrottleRunner.
</summary>
<token key="Condition" variants="NavigationThrottleConditions"/>
</histogram>
<histogram name="Navigation.TimeToActivatePrerender{PreloadingTriggerType}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time needed to commit a navigation using prerender activation. This is
the time from the beginning of NavigationStart to the end of
DidCommitPageActivation.
This metric is logged everytime prerender activation navigation commits.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram name="Navigation.TimeToReadyToCommit2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time delta between the start of a navigation and the time it is ready to
commit.
Warning: this histogram was expired after M85 and brought back 2021-04-13;
data may be missing.
</summary>
</histogram>
<histogram name="Navigation.TpcdMitigations.MetadataCohortDistribution"
enum="TpcdMetadataCohort" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
Represents the cohort related to the Stage rollback of the Third Party
Cookies Deprecation trial (TPCD) token grace period defined within the TPCD
Metadata.
This is reccorded only for a specific dummy entry within the TPCD Metadata.
This will help assess the uniformity in cohort distribution per the DTRP
(Deprecation Trial Rollout Percentage) attribute.
</summary>
</histogram>
<histogram name="Navigation.TpcdMitigations.MetadataInstallationResult"
enum="TpcdMetadataInstallationResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>src/chrome/browser/tpcd/OWNERS</owner>
<summary>
The outcome from Third Party Cookies Deprecation Metadata component
installation.
This metric is recorded at most once for every new metadata version
installed.
</summary>
</histogram>
<histogram name="Navigation.Unload" units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for RenderFrameHostImpl::Unload() to run. Recorded on
every RenderFrameHostImpl::Unload() call.
</summary>
</histogram>
<histogram name="Navigation.UserAgentStringType" enum="UserAgentStringType"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of the user agent string value sent in the User-Agent header on a
navigation request. The reduced user agent string is sent when User-Agent
reduction feature kReduceUserAgentMinorVersion is enabled. This histogram is
recorded when a NavigationRequest is constructed, prior to sending the
request to the network stack.
</summary>
</histogram>
<histogram name="Navigation.{Stage}.{FrameType}" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time the {Stage} stage takes in early navigation.
Logged for any navigation that reaches the stage.
This was not reported between 2023-05-06 and 2024-06-28.
</summary>
<token key="Stage">
<variant name="BeginNavigationImpl"
summary="NavigationRequest::BeginNavigationImpl"/>
<variant name="DidStartLoading" summary="FrameTreeNode::DidStartLoading"/>
<variant name="LoaderCreateToRequestStart"
summary="NavigationURLLoaderImpl creation to network request start"/>
<variant name="WillStartRequestToLoaderStart"
summary="NavigationRequest::WillStartRequest to
NavigationURLLoader::Start"/>
</token>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.{Stage}ToCompositorCreation" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration between when the navigation that uses a new
RenderWidgetHost reaches {Stage} and when the creation of the
CompositorFrameSink for the RenderWidgetHost is requested. Logged when the
compositor is requested and the navigation that created the RenderWidgetHost
had already reached both the commit and swap RFH stages.
</summary>
<token key="Stage" variants="NavigationStage"/>
</histogram>
<histogram name="NavigationSuggestion.Event2" enum="NavigationSuggestionEvent"
expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks events when the currently navigated domain name is a lookalike to one
of the top 10K domains or a domain that the user interacted with, resulting
in a navigation suggestion interstitial.
Before M88, NavigationSuggestion.Event recorded a separate entry for each
lookalike URL in a redirect chain. E.g. lookalike1.com -> site.com ->
lookalike2.com recorded two events. This updated histogram only records an
entry for the first or last URL in the redirect if any of those is a
lookalike.
</summary>
</histogram>
<histogram
name="NavigationSuggestion.GetDomainInfoDelayBeforeAllowingNavigation"
units="ms" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration that PerformChecks() spent in calls to
GetDomainInfo() before the navigation was ultimately allowed to proceed.
Recorded only for navigations that
LookalikeUrlNavigationThrottle::PerfomChecks() directly allows to proceed
(i.e., not those that result in showing interstitials and/or digital asset
manifest checks).
</summary>
</histogram>
<histogram
name="NavigationSuggestion.IsLookalikeUrlDelayBeforeAllowingNavigation"
units="ms" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration that PerformChecks() spent in calls to
IsLookalikeUrl() before the navigation was ultimately allowed to proceed.
Recorded only for navigations that
LookalikeUrlNavigationThrottle::PerfomChecks() directly allows to proceed
(i.e., not those that result in showing interstitials and/or digital asset
manifest checks).
</summary>
</histogram>
<histogram
name="NavigationSuggestion.PerformChecksDelayBeforeAllowingNavigation"
units="ms" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration the navigation was deferred while PerformChecks()
was executing before the navigation was ultimately allowed to proceed.
Recorded only for navigations that
LookalikeUrlNavigationThrottle::PerfomChecks() directly allows to proceed
(i.e., not those that result in showing interstitials and/or digital asset
manifest checks).
</summary>
</histogram>
<histogram name="NavigationSuggestion.UpdateEngagedSitesDeferTime" units="ms"
expires_after="2023-01-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time duration the navigation was deferred while waiting for
engaged sites data. Recorded whenever a navigation is deferred waiting for
engaged sites.
</summary>
</histogram>
<histogram
name="Prerender.CanceledForInactivePageRestriction.DisallowActivationReason{PreloadingTriggerType}"
enum="InactiveFrameDisallowActivationReason" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the prerender cancellations caused by inactive RenderFrameHosts'
restrictions, recording the reason passed to
RenderFrameHost::IsInactiveAndDisallowActivation calls.
This metric is recored when a RenderFrameHost is going to perform some
actions that are not allowed for a prerendering RenderFrameHost, such as
showing context menu. At that time, the detailed reason will be passed to
RenderFrameHost::IsInactiveAndDisallowActivation, which will cancel
prerendering and record this metric.
Note: This histogram does not track prerender activation behavior, but to
analyze PrerenderHostFinalStatus::kInactivePageRestriction.
Warning: this histogram was expired from 2023-03-01 to 2023-03-29; data may
be missing.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationHeadersMismatch{PreloadingTriggerType}"
enum="PrerenderActivationHeaderMismatchType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Breakdown metric for
PrerenderActivationNavigationParamsMatch::kHttpRequestHeader. We are
considering whether we should loosen this restriction, so this metric is
added to figure out the usage of headers during prerender navigation and
activation navigation. See https://crbug.com/1378921 for more information.
When we are attempting to activate a prerendered page, we compare the
prerendered page's NavigationRequest's headers with the incoming
NavigationRequest's (called activation navigation). If they mismatch,
PrerenderHost will post a task. The task scans the two headers, and will
report a mismatching record if it detects any differences between them. It
records the hashed number of a mismatching header, together with the
mismatching reason: Missing in prerendering navigation, missing in
activation navigation, or the values mismatch.
Warning: this histogram was expired from 2023-01-31 to 2023-03-29; data may
be missing.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationIPCDelay{PreloadingTriggerType}"
units="ms" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded by WebViewImpl::ActivatePrerenderedPage when renderer process
starts to ask the receiver end of the prerender activation IPC to process
this signal, i.e., when this method is invoked. This metric is used to
measure the delay of when renderer process receives the signal and when it
can process this signal. Recorded on the main document only.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationNavigationParamsMatch{PreloadingTriggerType}"
enum="PrerenderActivationNavigationParamsMatch" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the mismatched parameters between the prerender initial navigation
parameters and the prerender activation navigation parameters. Recorded by
PrerenderHost in the browser process when comparing these two parameters.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationTransitionMismatch{PreloadingTriggerType}"
enum="PrerenderActivationTransitionMismatchType" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Breakdown metric for PrerenderActivationNavigationParamsMatch::kTransition.
When we are attempting to activate a prerendered page, we compare the
prerendered page's NavigationRequest's ui::PageTransition with the incoming
NavigationRequest's (called activation navigation). If they mismatch, this
metric records the transition of the activation navigation in
RecordPrerenderActivationTransition().
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.CrossOriginRedirectionProtocolChange{PreloadingTriggerType}"
enum="PrerenderCrossOriginRedirectionProtocolChange"
expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Warning: this histogram was expired from 2024-06-01 to 2024-08-06; data may
be missing.
A breakdown metric for analyzing cross-origin redirection cases during
embedder-triggered prerendering, Recorded when redirections were caused due
to HTTP protocol upgrades.
Note that for now it is not used for prerendering that are triggered by
speculation rules.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram name="Prerender.Experimental.MatchableHostCountOnActivation"
units="count" expires_after="2025-02-22">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of PrerenderHosts that match the potential activation
navigation. This is recorded when the navigation chooses one of the hosts in
PrerenderHostRegistry::FindPotentialHostToActivate().
</summary>
</histogram>
<histogram
name="Prerender.Experimental.NewTabPage.TouchDuration.{ConversionResultType}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The metrics for preload NewTabPage to understand the distribution of touch
duration. It records touch duration time of a NewTabPage tile. And this
records both cases, the first being NotTaken if a navigation never happens,
the other being Taken when a NewTabPage is actually navigated per touch
event completion.
</summary>
<token key="ConversionResultType">
<variant name="NotTaken"/>
<variant name="Taken"/>
</token>
</histogram>
<histogram name="Prerender.Experimental.PredictionStatus.DefaultSearchEngine"
enum="PrerenderPredictionStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the prediction status started by omnibox. In particular, this
records whether they were used or not. It's recorded when omnibox-initiated
navigation finishes. Consider it as a success when the prediction is correct
and note that the activation of prerendering may fail.
</summary>
</histogram>
<histogram name="Prerender.Experimental.PredictionStatus.DirectUrlInput"
enum="PrerenderPredictionStatus" expires_after="2025-04-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the prediction status started by omnibox. In particular, this
records whether they were used or not. It's recorded when omnibox-initiated
navigation finishes. Consider it as a success when the prediction is correct
and note that the activation of prerendering may fail.
</summary>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderCancelledInterface{PreloadingTriggerType}"
enum="PrerenderCancelledInterface" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Mojo interfaces that cause the cancellation of prerendering. Recorded by
MojoBinderPolicyApplier in the browser process once it receives the binding
request of a kCancel Mojo interface.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderCancelledUnknownInterface{PreloadingTriggerType}"
enum="PrerenderCancelledUnknownInterface" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram tracks the interfaces that
Prerender.Experimental.PrerenderCancelledInterface fails to track. It is
needed because:
* Embedders can set their own policies, so Prerender2 cannot map all of them
to enums.
* Channel-associated interfaces' policies are set to kCancel implicitly.
It's hard to track all of them, especially the newly added
channel-associated interfaces.
This sparse histogram allows Prerender2 to record all of these interfaces
separately.
It is recored by MojoBinderPolicyApplier in the browser process once it
receives the binding request of a kCancel Mojo interface and cannot find an
accurate enum type for this interface.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderCrossOriginRedirectionMismatch{PreloadingTriggerType}"
enum="PrerenderCrossOriginRedirectionMismatch" expires_after="2024-12-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
Warning: this histogram was expired from 2024-06-01 to 2024-08-06; data may
be missing.
A breakdown metric for analyzing cross-origin redirection cases during
embedder-triggered prerendering. Recorded when the embedder-triggered
prerendering was redirected to another origin that differs from the initial
one.
The cases are encoded into 3 bits(scheme mismatch, host mismatch, port
mismatch).
Note that for now it is not used for prerendering that are triggered by
speculation rules.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderHostFinalStatus{PreloadingTriggerType}"
enum="PrerenderHostFinalStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Final status for a prerendering attempt. Recorded by PrerenderHost or
PrerenderHostRegistry in the browser process when the attempt finishes.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderLoadingFailureError{PreloadingTriggerType}"
enum="NetErrorCodes" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Net error code is recorded by PrerenderCancellationReason when a prerender
host is canceled due to kDidFailLoad.
This metric is used to monitor whether preload cache intercepting logic
causes extra page loading errors. Similar to
PageLoad.Internal.Prerender2.ActivatedPageLoaderStatus{PreloadingTriggerType},
but used to track the loading status of not activated prerendered pages.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ReceivedPrerendersPerPrimaryPageChangedCount2{PreloadingTriggerType}{EagernessCategory}"
units="count" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of received speculation rules prerender triggers with
eagerness per primary page changed, classified with their eagerness. This is
coutend per PrerendererImpl::MaybePrerender and recorded when primary page
is changed and PrerendererImpl::CancelStartedPrerenders is called.
Note that this metric only records where PreloadingTriggerType is
SpeculationRule and SpeculationRuleFromIsolatedWorld.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
<token key="EagernessCategory">
<variant name=".Conservative"/>
<variant name=".Eager"/>
<variant name=".Moderate"/>
<variant name=".NonEager"/>
<variant name=".Total"/>
</token>
</histogram>
<histogram name="Prerender.Experimental.Search.ResponseReuseCount"
units="count" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Warning: this histogram was expired from 2023-11-20 to 2024-02-27; data may
be missing.
Recorded by StreamingSearchPrefetchURLLoader in its destructor. This
instance is created per (non-duplicated) prefetch attempt. The destructor
runs upon:
- Case 1: A prefetched response is deleted upon expiration or network error.
- Case 2: A prefetched response deletes itself after finishing serving to
navigations. This will be executed asynchronously.
See comments in StreamingSearchPrefetchURLLoader for more information.
Indicates the number of prerendering DSE navigation that one prefetched
response served to. In most cases, it should record 0 (which means the
loader does not serve to any prerendering navigations) or 1 (served to one
prerender). And we will track the count that is greater than 2 to determine
whether the loader should be designed to target multiple serving
destinations.
This number should be quite small (0 or 1 in most cases), so the count is
capped at 9 and put into 10 buckets, from 0 to 9.
</summary>
</histogram>
<histogram
name="Prerender.Experimental.WaitingForHeadersFinishedReason{PreloadingTriggerType}"
enum="PrerenderWaitingForHeadersFinishedReason" expires_after="2025-02-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Finished reason of waiting for the No-Vary-Search header. Recorded by
PrerenderHost in the browser process when the header is received, the
timeout timer runs, or cancellation happens.
</summary>
<token key="PreloadingTriggerType" variants="PreloadingTriggerType"/>
</histogram>
<histogram name="Prerender.FinalStatus" enum="PrerenderFinalStatus"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Final status for prerender pages - either success, or why it was canceled.
</summary>
</histogram>
<histogram name="Prerender.PrerenderLoadComplete" enum="BooleanSuccess"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the load was completed when the pre-render was used. If the
prerender is cancelled, this is not logged. Only on iOS.
</summary>
</histogram>
<histogram name="Prerender.PrerenderTimeSaved" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is the time from when a prerendered page begins to load to when it is
swapped in as the main page load or to when the pre-loaded page is fully
loaded, whichever came first. Recorded when the swap occurs, only on iOS.
</summary>
</histogram>
</histograms>
</histogram-configuration>