blob: 53b87968d1c6519ef5d889b2293dbc73aae67510 [file] [log] [blame]
<!--
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
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="FrameTypes">
<variant name="MainFrame"/>
<variant name="Subframe"/>
</variants>
<variants name="NavigationThrottleEvents">
<variant name="WillFailRequest"/>
<variant name="WillProcessResponse"/>
<variant name="WillRedirectRequest"/>
<variant name="WillStartRequest"/>
</variants>
<variants name="PrerenderTriggerType">
<!--
Also used in tools/metrics/histograms/metadata/page/histograms.xml.
-->
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead. Non-suffix name
was removed in Feb 2022.
</obsolete>
</variant>
<variant name=".Embedder_BookmarkBar"/>
<variant name=".Embedder_DefaultSearchEngine"/>
<variant name=".Embedder_DirectURLInput"/>
<variant name=".SpeculationRule"/>
<variant name=".SpeculationRuleFromIsolatedWorld"/>
</variants>
<histogram name="BackForwardCache.AllSites.EvictedAfterDocumentRestoredReason"
enum="BackForwardCacheEvictedAfterDocumentRestoredReason"
expires_after="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of the related browsing instances, 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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>rakina@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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 whether back-forward cache is
enabled or not.
</summary>
</histogram>
<histogram name="BackForwardCache.CountEntriesWithoutRendererAck" units="count"
expires_after="2021-10-01">
<owner>yuzus@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
This metric is emitted when we try to enforce the cache size limit, which is
1) when a page enters BackForwardCache and 2) when a page entering
BackForwardCache receives an acknowledgement from the renderer.
This reports the number of the entries that have not received an
acknowledgement from the renderer.
</summary>
</histogram>
<histogram name="BackForwardCache.EvictedAfterDocumentRestoredReason"
enum="BackForwardCacheEvictedAfterDocumentRestoredReason"
expires_after="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>rakina@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
When navigating back to a page in the session history and the
BackForwardCache wasn't used because of the related browsing instances, 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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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>yuzus@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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.MainFrameHasPageshowListenersOnRestore"
enum="BooleanPresent" expires_after="M82">
<owner>altimin@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-09-17">
<owner>wenyufu@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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, &quot;PageRestored&quot; will be recorded; if the
page is not egligible to be restored due to any reason,
&quot;PageNotRestored&quot; will be recorded.
</summary>
</histogram>
<histogram name="BackForwardCache.PageWithForm.Storable"
enum="BackForwardCachePageWithFormStorable" expires_after="2023-09-17">
<owner>wenyufu@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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
&quot;PageSeen&quot; will be recorded; if the page is egligible to be stored
in the back forward cache, &quot;PageStored&quot; will be recorded.
</summary>
</histogram>
<histogram name="BackForwardCache.ReloadsAfterHistoryNavigation"
enum="BackForwardCacheReloadsAfterHistoryNavigation"
expires_after="2022-06-26">
<owner>sreejakshetty@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
Records the number of reloads after a history navigation both for the cases
when page is served and not served from back-forward cache.
This is recorded when navigation is committed, only for the domains which
are in the scope of back-forward cache experiment and they are of same
NavigationEntry (e.g. back and reload in different tab do not count).
</summary>
</histogram>
<histogram name="BackForwardCache.ReloadsAndHistoryNavigations"
enum="BackForwardCacheReloadsAndHistoryNavigations"
expires_after="2022-06-26">
<owner>sreejakshetty@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<owner>bfcache-dev@chromium.org</owner>
<summary>
Records the total number of history navigations along with the number of
reloads if the previous navigation was a history one.
This is recorded when navigation is committed, only for the domains which
are in the scope of back-forward cache experiment.
</summary>
</histogram>
<histogram name="BackForwardCache.Restore.NavigationToFirstPaint" units="ms"
expires_after="2023-09-03">
<owner>sreejakshetty@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-12-31">
<owner>fergal@google.com</owner>
<owner>bfcache-dev@chromium.org</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
&quot;message_handling_when_cached&quot;.
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="Navigation.AnonymousIframeIsSandboxed" enum="Boolean"
expires_after="2023-10-01">
<owner>arthursonzogni@chromium.org</owner>
<owner>chrome-security-owp-team@google.com</owner>
<summary>
Record whether iframe with the anonymous attribute contains sandboxed
document or not.
</summary>
</histogram>
<histogram name="Navigation.BackForward.CacheFlags" enum="NavigationCacheEnum"
expires_after="M85">
<owner>clamy@chromium.org</owner>
<summary>The cache flags set on back-forward navigations.</summary>
</histogram>
<histogram name="Navigation.BackForward.NavigatingToEntryMarkedToBeSkipped"
enum="Boolean" expires_after="2019-12-31">
<owner>shivanisha@chromium.org</owner>
<owner>csharrison@chromium.org</owner>
<summary>
This metric logs true if the existing entry being navigated to is marked to
be skipped on back/forward UI. This is logged at the start of navigation
initiated using long-press back/forward button.
</summary>
</histogram>
<histogram
name="Navigation.BackForward.TimeFromOpenBackNavigationMenuToActivateItem"
units="ms" expires_after="2023-10-20">
<owner>leimy@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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="2023-10-20">
<owner>leimy@chromium.org</owner>
<owner>bfcache-dev@chromium.org</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>clamy@chromium.org</owner>
<summary>Whether the back-forward navigation was served from cache.</summary>
</histogram>
<histogram name="Navigation.BlobUrl" enum="Boolean" expires_after="2023-10-15">
<owner>jkokatsu@google.com</owner>
<owner>chrome-security-owp-team@google.com</owner>
<summary>
Record if navigation has occured to Blob URL, to better understand the usage
of Blob URL in active document (i.e. both main frame and iframes). This
record is taken in Navigator::DidNavigate.
</summary>
</histogram>
<histogram name="Navigation.BlobUrl.MainFrame" enum="Boolean"
expires_after="2023-10-15">
<owner>jkokatsu@google.com</owner>
<owner>chrome-security-owp-team@google.com</owner>
<summary>
Record if navigation has occured to Blob URL in main frame or iframe, to
better understand the usage of Blob URL in active document.
</summary>
</histogram>
<histogram name="Navigation.BlobUrl.Sandboxed" enum="Boolean"
expires_after="2023-10-15">
<owner>jkokatsu@google.com</owner>
<owner>chrome-security-owp-team@google.com</owner>
<summary>
Record if navigation has occured to opaque Blob URL, to better understand
the usage of Blob URL in active document.
</summary>
</histogram>
<histogram name="Navigation.BrowserMappedUrnUuidInIframeOrFencedFrame"
enum="NavigationBrowserMappedUrnUuidInIframeOrFencedFrame"
expires_after="2023-09-03">
<owner>xiaochenzh@chromium.org</owner>
<owner>shivanisha@chromium.org</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>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.DidCommitSameDocumentNavigation.Duration"
units="ms" expires_after="2023-10-15">
<owner>peilinwang@google.com</owner>
<owner>woa-performance-bugs+jank@google.com</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.DownloadPolicy.LogArbitraryPolicyPerDownload"
enum="NavigationDownloadPolicy" expires_after="2020-11-01">
<owner>csharrison@chromium.org</owner>
<owner>yaoxia@chromium.org</owner>
<summary>
When a navigation results in a download, logs the download policy applied to
that navigation. This is logged once per download and when multiple policies
exist, an arbitrary one will be chosen.
</summary>
</histogram>
<histogram name="Navigation.DownloadPolicy.LogPerPolicyApplied"
enum="NavigationDownloadPolicy" expires_after="2020-11-01">
<owner>csharrison@chromium.org</owner>
<owner>yaoxia@chromium.org</owner>
<summary>
When a navigation results in a download, for each download policy applied to
that navigation, logs the policy.
</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>estark@chromium.org</owner>
<owner>security-enamel@chromium.org</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>estark@chromium.org</owner>
<owner>security-enamel@chromium.org</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="2023-10-15">
<owner>estark@chromium.org</owner>
<owner>security-enamel@chromium.org</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.GetFrameHostForNavigation.Duration" units="ms"
expires_after="2023-10-15">
<owner>peilinwang@google.com</owner>
<owner>woa-performance-bugs+jank@google.com</owner>
<summary>
Measures the amount of time it takes to call
RenderFrameHostManager::GetFrameHostForNavigation(). Logged once per call to
RenderFrameHostManager::GetFrameHostForNavigation(), most often two times
per navigation.
</summary>
</histogram>
<histogram name="Navigation.Guest.IsHTTPOrHTTPS"
enum="BooleanHttpBasedOrOtherScheme" expires_after="2023-09-17">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>wjmaclean@chromium.org</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
&quot;guest&quot; in process model terminology), excluding same-document
navigations and errors.
</summary>
</histogram>
<histogram name="Navigation.Guest.IsMainFrame" enum="BooleanMainFrame"
expires_after="2023-09-17">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>wjmaclean@chromium.org</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
&quot;guest&quot; 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>mpearson@chromium.org</owner>
<owner>amaralp@chromium.org</owner>
<owner>chrome-analysis-team@google.com</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="2023-10-08">
<owner>meacer@chromium.org</owner>
<owner>chrome-trusty-transport@google.com</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="2023-09-17">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>wjmaclean@chromium.org</owner>
<summary>
Whether the committing navigation is for a webview tag (also known as
&quot;guest&quot; 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="2023-11-10">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</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="2023-11-10">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</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.IsSameBrowsingInstance"
enum="NavigationIsSameBrowsingInstance" expires_after="2025-01-01">
<owner>arthursonzogni@chromium.org</owner>
<owner>clamy@chromium.org</owner>
<owner>nasko@chromium.org</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>arthursonzogni@chromium.org</owner>
<owner>clamy@chromium.org</owner>
<owner>nasko@chromium.org</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>ryansturm@chromium.org</owner>
<owner>spelchat@chromium.org</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>boliu@chromium.org</owner>
<owner>alexmos@chromium.org</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>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
<owner>cros-families-eng@google.com</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.MaxFrameCount" units="frames"
expires_after="2023-09-17">
<owner>michaelpg@chromium.org</owner>
<owner>yilkal@chromium.org</owner>
<owner>cros-families-eng@google.com</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.RendererInitiated.InitiatorFramePresentAtStart"
enum="BooleanPresent" expires_after="2023-10-01">
<owner>yaoxia@chromium.org</owner>
<owner>cammie@chromium.org</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="2023-10-22">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</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="2023-10-22">
<owner>dullweber@chromium.org</owner>
<owner>feuunk@chromium.org</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.MainFrameFormSubmission.SiteEngagementLevel"
enum="SiteEngagementLevel" expires_after="2021-04-04">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</owner>
<summary>
Site engagement level of the URL of the top frame of a form submission. This
is a subset of Navigation.MainFrame.SiteEngagementLevel.
</summary>
</histogram>
<histogram name="Navigation.MainFrameHasRTLDomain2" enum="Boolean"
expires_after="2023-08-27">
<owner>cthomp@chromium.org</owner>
<owner>trusty-transport@chromium.org</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="2023-08-27">
<owner>cthomp@chromium.org</owner>
<owner>trusty-transport@chromium.org</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="2023-08-27">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
The browser profile type for each main-frame navigation, recorded after
navigation completion, including NTP.
</summary>
</histogram>
<histogram name="Navigation.MainFrameScheme2" enum="NavigationScheme"
expires_after="2023-09-05">
<owner>estark@chromium.org</owner>
<owner>elawrence@chromium.org</owner>
<owner>trusty-transport@chromium.org</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>estark@chromium.org</owner>
<owner>elawrence@chromium.org</owner>
<owner>trusty-transport@chromium.org</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.MainFrameSchemeDifferentPageOTR2"
enum="NavigationScheme" expires_after="2023-05-07">
<owner>estark@chromium.org</owner>
<owner>elawrence@chromium.org</owner>
<owner>trusty-transport@chromium.org</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="2023-05-07">
<owner>elawrence@chromium.org</owner>
<owner>estark@chromium.org</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.NavigationRequestCreation.SpeculativeRFHExisted"
enum="SpeculativeRenderFrameHostType" expires_after="2022-06-30">
<obsolete>
Obsolete after 2022-06-30.
</obsolete>
<owner>rakina@chromium.org</owner>
<owner>dcheng@chromium.org</owner>
<summary>
Records whether a speculative RenderFrameHost for an older navigation
existed when a new NavigationRequest is created, causing the speculative
RenderFrameHost to be deleted.
</summary>
</histogram>
<histogram name="Navigation.NavigationStartToBeforeUnloadForLegacy" units="ms"
expires_after="2023-10-08">
<owner>sky@chromium.org</owner>
<owner>swarm-team@chromium.org</owner>
<summary>
Time from navigation start to before task is posted to continue with
navigation. This is only logged if there are no before-unload handlers and a
post task is used rather than synchronously continuing (referred to as
for_legacy in code).
</summary>
</histogram>
<histogram
name="Navigation.NavigationStartToBeginWithAvoidUnnecessaryBeforeUnloadSync"
units="ms" expires_after="2023-10-08">
<owner>sky@chromium.org</owner>
<owner>swarm-team@chromium.org</owner>
<summary>
Time from navigation start to calling NavigationRequest::BeginNavigation().
This is only logged if before-unload handlers are skipped because the
feature AvoidUnnecessaryBeforeUnloadCheckSync is enabled.
</summary>
</histogram>
<histogram name="Navigation.OnBeforeUnloadBrowserToRendererIpcTime" units="ms"
expires_after="2023-09-17">
<owner>sky@chromium.org</owner>
<owner>jam@chromium.org</owner>
<summary>
Time it takes for the renderer to receive the request to process
before-unload handlers.
</summary>
</histogram>
<histogram name="Navigation.OnBeforeUnloadLegacyPostTaskTime" units="ms"
expires_after="2023-09-17">
<owner>sky@chromium.org</owner>
<owner>jam@chromium.org</owner>
<summary>
Time it takes for navigation to start when a PostTask() is used for legacy
before-unload handlers. Only logged if the feature
AvoidUnnecessaryBeforeUnloadCheck is enabled.
</summary>
</histogram>
<histogram name="Navigation.OnBeforeUnloadOverheadTime" units="ms"
expires_after="2023-11-05">
<owner>clamy@chromium.org</owner>
<owner>nasko@chromium.org</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="2023-10-08">
<owner>chikamune@chromium.org</owner>
<owner>chrome-loading@google.com</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.OriginAgentCluster.Result"
enum="OriginAgentClusterEndResult" expires_after="2023-09-09">
<owner>alexmos@chromium.org</owner>
<owner>creis@chromium.org</owner>
<owner>wjmaclean@chromium.org</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.Preconnect.PreresolveJobQueueingTime" units="ms"
expires_after="2023-08-08">
<owner>alexilin@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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>alexilin@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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>alexilin@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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>alexilin@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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>alexilin@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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>alexilin@chromium.org</owner>
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</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.PrefetchJobQueueingTime" units="ms"
expires_after="2023-03-19">
<owner>blundell@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<owner>sophiechang@chromium.org</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>blundell@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<owner>sophiechang@chromium.org</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.Prerender.ActivationCommitDeferTime" units="ms"
expires_after="2023-06-04">
<owner>sreejakshetty@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
Measures time a PrerenderCommitDeferringCondition defers activation waiting
to commit an ongoing mainframe prerender navigation. Logged every time a
PrerenderCommitDeferringCondition defers navigation.
</summary>
</histogram>
<histogram name="Navigation.QueueTime.{Method}.{FrameType}" units="ms"
expires_after="2023-07-28">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.
</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>clamy@chromium.org</owner>
<owner>nasko@chromium.org</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.RendererCommitDelay.{FrameType}" units="ms"
expires_after="2023-05-05">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererCommitProcessWaitTime.{FrameType}"
units="ms" expires_after="2023-05-05">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererCommitQueueTime.{FrameType}" units="ms"
expires_after="2023-05-05">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.
</summary>
<token key="FrameType" variants="FrameTypes"/>
</histogram>
<histogram name="Navigation.RendererDidNavigateTime.{FrameType}" units="ms"
expires_after="2023-07-28">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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.RendererInitiatedCancellation.DeferStartToCancellationWindowEnd"
units="ms" expires_after="2022-10-21">
<obsolete>
Obsolete after 2022-10-21. All cancellation window ends within 10000ms. See
UMA result:
https://docs.google.com/document/d/1VNmvEVuaiNH3ypt6YfrYPsJJp8okCTYjooekarOiWN8/edit#heading=h.tlh3g7tofz2
</obsolete>
<owner>rakina@chromium.org</owner>
<owner>dcheng@chromium.org</owner>
<summary>
Measures the amount of time it takes from
RendererCancellationThrottle::WillProcessResponse() to
RendererCancellationThrottle::NavigationCancellationWindowEnded. Recorded
for each navigation that gets deferred by RendererCancellationThrottle.
</summary>
</histogram>
<histogram name="Navigation.RequiresDedicatedProcess"
enum="NavigationRequiresDedicatedProcess" expires_after="2023-10-22">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</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="2024-03-19">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</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.SendCommitNavigationTime.{FrameType}" units="ms"
expires_after="2023-08-15">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</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="2023-09-10">
<owner>nasko@chromium.org</owner>
<owner>csharrison@chromium.org</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="2023-10-11">
<owner>fergal@chromium.org</owner>
<owner>rakina@chromium.org</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-&gt;b-&gt;a, the second a is not
same-origin.
</summary>
<token key="Origins">
<variant name="AllOrigins"/>
<variant name="SameOrigin"/>
</token>
</histogram>
<histogram name="Navigation.ThrottleDeferTime.{Event}" units="ms"
expires_after="2023-02-11">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</owner>
<summary>
Measures time a navigation throttle was deferred when on {Event}. Logged
every time a throttle defers a navigation.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.ThrottleExecutionTime.{Event}" units="ms"
expires_after="2023-02-11">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</owner>
<summary>
Measures time a navigation throttle took to execute {Event}. Logged every
time a throttle runs.
</summary>
<token key="Event" variants="NavigationThrottleEvents"/>
</histogram>
<histogram name="Navigation.TimeToActivatePrerender{PrerenderTriggerType}"
units="ms" expires_after="2024-04-27">
<owner>nhiroki@chromium.org</owner>
<owner>sreejakshetty@chromium.org</owner>
<owner>chrome-prerendering@chromium.org</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram name="Navigation.TimeToReadyToCommit2" units="ms"
expires_after="2023-09-10">
<owner>clamy@chromium.org</owner>
<owner>nasko@chromium.org</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.UndoCommit.IsSpeculativeRenderFrameLive"
enum="BooleanPresent" expires_after="2022-06-30">
<obsolete>
Obsolete after 2022-06-30.
</obsolete>
<owner>rakina@chromium.org</owner>
<owner>dcheng@chromium.org</owner>
<summary>
Records whether a speculative RenderFrame is live when UndoCommitNavigation
is called.
</summary>
</histogram>
<histogram name="Navigation.UserAgentStringType" enum="UserAgentStringType"
expires_after="2023-11-05">
<owner>miketaylr@chromium.org</owner>
<owner>potassium-katabolism@google.com</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 only sent in the
presence of a valid UserAgentReduction origin trial token. This histogram is
recorded when a NavigationRequest is constructed, prior to sending the
request to the network stack.
</summary>
</histogram>
<histogram name="Navigation.VerifyDidCommitParams"
enum="VerifyDidCommitParamsDifference" expires_after="2021-12-26">
<owner>rakina@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
Logs inconsistencies between browser- vs renderer-calculated values of
DidCommitProvisionalLoadParams which are detected in RenderFrameHostImpl's
VerifyThatBrowserAndRendererCalculatedDidCommitParamsMatch(). This is used
to trigger traces to be uploaded to analyze what happened in these
navigations.
</summary>
</histogram>
<histogram name="Navigation.{Stage}.{FrameType}" units="ms"
expires_after="2023-05-06">
<owner>cduvall@chromium.org</owner>
<owner>jam@chromium.org</owner>
<summary>
Measures the amount of time the {Stage} stage takes in early navigation.
Logged for any navigation that reaches the stage.
</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="NavigationSuggestion.Event2" enum="NavigationSuggestionEvent"
expires_after="2023-06-04">
<owner>meacer@chromium.org</owner>
<owner>security-enamel@chromium.org</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 -&gt; site.com -&gt;
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="2023-10-22">
<owner>meacer@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>security-enamel@chromium.org</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="2023-10-22">
<owner>meacer@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>security-enamel@chromium.org</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="2023-10-22">
<owner>meacer@chromium.org</owner>
<owner>blundell@chromium.org</owner>
<owner>security-enamel@chromium.org</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>meacer@chromium.org</owner>
<owner>cduvall@chromium.org</owner>
<owner>security-enamel@chromium.org</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{PrerenderTriggerType}"
enum="InactiveFrameDisallowActivationReason" expires_after="2023-09-03">
<owner>lingqi@chromium.org</owner>
<owner>chrome-prerendering@chromium.org</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationHeadersMismatch{PrerenderTriggerType}"
enum="PrerenderActivationHeaderMismatchType" expires_after="2023-09-03">
<owner>lingqi@chromium.org</owner>
<owner>chrome-prerendering@google.com</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationNavigationParamsMatch{PrerenderTriggerType}"
enum="PrerenderActivationNavigationParamsMatch" expires_after="2023-09-03">
<owner>nhiroki@chromium.org</owner>
<owner>chrome-prerendering@google.com</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.ActivationTransitionMismatch{PrerenderTriggerType}"
enum="PrerenderActivationTransitionMismatchType" expires_after="2023-10-26">
<owner>nhiroki@chromium.org</owner>
<owner>chrome-prerendering@google.com</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.BookmarkBar.EnterToPressDuration{ButtonType}"
units="ms" expires_after="2023-09-24">
<owner>robertlin@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
The metrics for preload bookmark to understand the distribution of delay to
press {ButtonType}. Recorded when the mouse {ButtonType} is pressed.
</summary>
<token key="ButtonType">
<variant name="" summary="any button"/>
<variant name=".LeftButton" summary="the left button"/>
</token>
</histogram>
<histogram
name="Prerender.Experimental.BookmarkBar.HoverDuration{OriginType}.{ConversionResultType}"
units="ms" expires_after="2023-09-24">
<owner>robertlin@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
The metrics for preload boomark to understand the distribution of mouse
hovering duration from {OriginType}. It records mouse hovering duration time
when mouse leaves the bookmark button areas without using it as NotTaken, or
when the bookmark is actually clicked as Taken.
</summary>
<token key="OriginType">
<variant name="" summary="the time mouse entering to the button"/>
<variant name=".FromLastMouseMove" summary="the last time mouse move"/>
</token>
<token key="ConversionResultType">
<variant name="NotTaken"/>
<variant name="Taken"/>
</token>
</histogram>
<histogram name="Prerender.Experimental.BookmarkBar.PredictionResult"
enum="PrerenderPredictionResult" expires_after="2023-09-24">
<owner>robertlin@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
This metric is to count the combination of bookmark bar triggering
prerender's predictor's decision and result. Recorded on mouse leaving a
bookmark button in the bookmark bar.
</summary>
</histogram>
<histogram name="Prerender.Experimental.BookmarkUrlButtonEvent"
enum="PreloadBookmarkMetricsEvent" expires_after="2023-09-24">
<owner>robertlin@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
The metrics for preload bookmark to evaluate the ratio of mouseover and
mousedown translating into full mouse click.
</summary>
</histogram>
<histogram
name="Prerender.Experimental.CrossOriginRedirectionProtocolChange{PrerenderTriggerType}"
enum="PrerenderCrossOriginRedirectionProtocolChange"
expires_after="2023-09-03">
<owner>lingqi@chromium.org</owner>
<owner>nhiroki@chromium.org</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.DefaultSearchEngine.SearchTermExtractorCorrectness"
enum="Boolean" expires_after="2023-08-13">
<owner>lingqi@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
Records whether the search terms obtained via the search_terms_args are the
same as the search terms extracted from the URLs. This is recorded when
PrerenderManager attempts to start a new prerender.
</summary>
</histogram>
<histogram name="Prerender.Experimental.PredictionStatus.DefaultSearchEngine"
enum="PrerenderPredictionStatus" expires_after="2023-10-22">
<owner>asamidoi@chromium.org</owner>
<owner>chrome-prerendering@google.com</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="2023-10-22">
<owner>asamidoi@chromium.org</owner>
<owner>chrome-prerendering@google.com</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{PrerenderTriggerType}"
enum="PrerenderCancelledInterface" expires_after="2023-12-05">
<owner>nhiroki@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>lingqi@chromium.org</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderCancelledUnknownInterface{PrerenderTriggerType}"
enum="PrerenderCancelledUnknownInterface" expires_after="2023-12-05">
<owner>nhiroki@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>lingqi@chromium.org</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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderCrossOriginRedirectionMismatch{PrerenderTriggerType}"
enum="PrerenderCrossOriginRedirectionMismatch" expires_after="2023-09-03">
<owner>lingqi@chromium.org</owner>
<owner>nhiroki@chromium.org</owner>
<owner>src/content/browser/preloading/prerender/OWNERS</owner>
<summary>
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="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderHostFinalStatus{PrerenderTriggerType}"
enum="PrerenderHostFinalStatus" expires_after="2023-12-05">
<owner>nhiroki@chromium.org</owner>
<owner>toyoshim@chromium.org</owner>
<owner>lingqi@chromium.org</owner>
<owner>asamidoi@chromium.org</owner>
<summary>
Final status for a prerendering attempt. Recorded by PrerenderHost or
PrerenderHostRegistry in the browser process when the attempt finishes.
</summary>
<token key="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderLoadingFailureError{PrerenderTriggerType}"
enum="NetErrorCodes" expires_after="2023-08-27">
<owner>lingqi@chromium.org</owner>
<owner>chrome-prerendering@google.com</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{PrerenderTriggerType},
but used to track the loading status of not activated prerendered pages.
</summary>
<token key="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.PrerenderNavigationRequestNetworkErrorCode{PrerenderTriggerType}"
enum="NetErrorCodes" expires_after="2023-08-27">
<owner>lingqi@chromium.org</owner>
<owner>nhiroki@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
Recorded by PrerenderHost::DidFinishNavigation when a failure navigation is
committed to a prerendering pages's main frame.
This metric is used to monitor the detailed reasons of
PrerenderHostFinalStatus::kNavigationRequestNetworkError.
</summary>
<token key="PrerenderTriggerType" variants="PrerenderTriggerType"/>
</histogram>
<histogram
name="Prerender.Experimental.Search.FirstCorrectPrerenderHintReceivedToRealSearchNavigationStartedDuration"
units="ms" expires_after="2023-08-20">
<owner>lingqi@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
PrerenderManager records the duration period from the time to start
prerendering with the search hints to the time to navigate the search hints.
This duration is recorded when it finds the search hints predicts correctly,
e.g. users do search and results in activating the prerendered page, or
users do saerch the prerender hints but the prerendered page has been
destroyed due to expiration.
|====== HitFinishedSearchResultLifeTime=======|
@ Timestamp X ------------------------------- @ Timestamp Y
or
|====== HitFinishedSearchResultLifeTime=============|
@ Timestamp X ------------------------------------- @ Timestamp Z
Where:
* Timestamp X: Chrome receives the first prerender hints for a search term
A.
* Timestamp Y: User selects the search term A.
* Timestamp Z: Timestamp X + Fixed period T.
HitFinishedSearchResultLifeTime = min(Timestamp Y, Timestamp Z) - Timestamp
X = min(Timestamp Y - Timestamp X, T).
It aims to:
1. Track the prerenders which were canceled due to expiration(Fixed period
T).
2. Gain the understanding of the duration between the moment when browser
receives the first prerender hint and the moment when the hint is selected.
This data will be used to determine the threshold of deciding whether to
reuse a prefetched response or to resend a prefetch request.
</summary>
</histogram>
<histogram name="Prerender.FinalStatus" enum="PrerenderFinalStatus"
expires_after="2023-10-22">
<owner>ryansturm@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Final status for prerender pages - either success, or why it was canceled.
</summary>
</histogram>
<histogram name="Prerender.NetworkBytesTotalForProfile" units="bytes"
expires_after="M77">
<owner>hajimehoshi@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<owner>kouhei@chromium.org</owner>
<summary>
Number of bytes transferred on the network for URLRequests (not including
HTTP/TLS/TCP/IP overhead). Reported on event of a PrerenderContents
deletion. Includes prerender bytes. Bytes are only counted when prerendering
is enabled and not in a control group. The sum of the distribution for a
single user represents all of that user's network transfers for resource for
that time period while prerendering was enabled.
</summary>
</histogram>
<histogram name="Prerender.NetworkBytesWasted" units="bytes"
expires_after="M77">
<owner>hajimehoshi@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<owner>kouhei@chromium.org</owner>
<summary>
Number of bytes transferred on the network for URLRequests (not including
HTTP/TLS/TCP/IP overhead) for a prerender that was not used. All
nostate-prefetch bytes are currently counted as wasted because it is hard to
track byte use in HTTP cache.
</summary>
</histogram>
<histogram name="Prerender.NoStatePrefetchMainResourceRedirects"
units="redirects" expires_after="M85">
<owner>droger@chromium.org</owner>
<owner>mattcary@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Length of the redirect chain for main resources loaded by NoStatePrefetch.
Recorded when the final response in the chain is received.
</summary>
</histogram>
<histogram name="Prerender.NoStatePrefetchResponseTypes"
enum="NoStatePrefetchResponseType" expires_after="M85">
<owner>droger@chromium.org</owner>
<owner>mattcary@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Type of responses received by NoStatePrefetch, distinguishing cacheable
resources from no-store resources, and main resources from sub-resources.
Recorded when a response is received, including on each redirect.
</summary>
</histogram>
<histogram name="Prerender.NoStatePrefetchSubResourceRedirects"
units="redirects" expires_after="M85">
<owner>droger@chromium.org</owner>
<owner>mattcary@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Length of the redirect chain for sub-resources loaded by NoStatePrefetch.
Recorded when the final response in the chain is received.
</summary>
</histogram>
<histogram name="Prerender.PrerenderLoadComplete" enum="BooleanSuccess"
expires_after="2024-02-26">
<owner>gambard@chromium.org</owner>
<owner>justincohen@chromium.org</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.PrerenderLoadedOnFirstNTP" enum="Boolean"
expires_after="M81">
<owner>justincohen@chromium.org</owner>
<summary>
Whether or not a successful prerender happens on a NTP with no history.
</summary>
</histogram>
<histogram name="Prerender.PrerenderLoadedOnIndex" units="units"
expires_after="M81">
<owner>justincohen@chromium.org</owner>
<summary>
The last comitted index before a successful preload is committed. Recorded
only on iOS.
</summary>
</histogram>
<histogram name="Prerender.PrerendersPerSessionCount" units="units"
expires_after="2021-04-22">
<owner>ryansturm@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
The number of sessions that have at least X successful prerenders. Recorded
only on iOS since 2017-09.
</summary>
</histogram>
<histogram name="Prerender.PrerenderTimeSaved" units="ms"
expires_after="2024-02-26">
<owner>gambard@chromium.org</owner>
<owner>justincohen@chromium.org</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>
<histogram name="Prerender.TabContentsDeleterTimeout"
enum="BooleanCloseTimeout" expires_after="M85">
<owner>pasko@chromium.org</owner>
<summary>
A boolean that indicates how often we fail to delete an old prerendered tab
before the timeout.
</summary>
</histogram>
</histograms>
</histogram-configuration>