blob: e1ce4a0998f9bb67adc2d1a78b9d5fda9f43d023 [file] [log] [blame]
<!--
Copyright 2017 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 Chrome UKM metrics
along with a detailed description for each metric.
See the following doc for details on how to add entries to this file:
https://chromium.googlesource.com/chromium/src.git/+/main/services/metrics/ukm_api.md
Events may be marked with the attribute singular="True" to indicate that
the event will only occur once per source, and multiple entries will just
be describing additional metrics about the same event.
-->
<ukm-configuration>
<event name="AboutThisSiteStatus">
<owner>olesiamarukhnno@google.com</owner>
<summary>
Recorded on each page info bubble open when &quot;About this site&quot; data
is fetched.
</summary>
<metric name="Status" enum="AboutThisSiteStatus">
<summary>
The status of the &quot;About this site&quot; info, including if the data
is available and whether the proto is valid. See
|page_info::about_this_site_validation::AboutThisSiteStatus| for enum
elements.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="AbusiveExperienceHeuristic">
<owner>csharrison@chromium.org</owner>
<owner>yaoxia@chromium.org</owner>
<summary>
Obsolete. Various metrics recording experiences which are commonly used for
abusive purposes.
</summary>
<metric name="DidTabUnder">
<summary>
True if the page attempted a tab-under navigation.
</summary>
</metric>
<metric name="DidWindowOpenFromAdScript">
<summary>
True if the page called window.open with an ad script in the stack.
</summary>
</metric>
<metric name="DidWindowOpenFromAdSubframe">
<summary>
True if the page called window.open() from an ad subframe.
</summary>
</metric>
</event>
<event name="AbusiveExperienceHeuristic.JavaScriptDialog">
<owner>yaoxia@chromium.org</owner>
<metric name="DismissalCause">
<summary>
An enum that specifies the dismissal reason for JavaScript popup dialog
that can be triggered by window.alert(), window.confirm() or
window.prompt(). See JavaScriptDialogTabHelper::DismissalCause for the
enum elements.
</summary>
</metric>
</event>
<event name="AbusiveExperienceHeuristic.TabUnder">
<owner>csharrison@chromium.org</owner>
<metric name="DidTabUnder">
<summary>
True if the page attempted a tab-under navigation.
</summary>
</metric>
</event>
<event name="AbusiveExperienceHeuristic.WindowOpen">
<owner>yaoxia@chromium.org</owner>
<summary>
Recorded whenever window.open() is called when AdTagging is enabled.
</summary>
<metric name="FromAdScript">
<summary>
True if the page called window.open() with an ad script in the stack.
</summary>
</metric>
<metric name="FromAdSubframe">
<summary>
True if the page called window.open() from an ad subframe.
</summary>
</metric>
</event>
<event name="Accessibility.ImageDescriptions">
<owner>dtseng@chromium.org</owner>
<owner>nektar@chromium.org</owner>
<summary>
Tracks automatic image descriptions provided to blind users.
</summary>
<metric name="Description" enum="Boolean">
<summary>
Whether the image description included a description.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ImageAlreadyHasLabel" enum="Boolean">
<summary>
Whether the image already had label text before it was augmented with an
additional description.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="OCR" enum="Boolean">
<summary>
Whether the image description included OCR text.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Accessibility.PageZoom">
<owner>aldietz@google.com</owner>
<owner>mschillaci@google.com</owner>
<owner>chrome-a11y-core@google.com</owner>
<summary>
Tracks usage of Page Zoom on Chrome for Android. Recorded each time the
slider is dismissed if the user changed the zoom level on this page before
dismissal.
</summary>
<metric name="SliderZoomValue">
<summary>
For users who changed the individual zoom level on this page, tracks what
zoom level has been set on the page at slider dismissal. There may be
multiple instances where the slider is opened on the same page, so there
may be multiple values logged per page. The value will be an integer
between 25 and 500, inclusive, bucketed in intervals of 5.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Accessibility.Renderer">
<owner>aleventhal@chromium.org</owner>
<owner>nektar@chromium.org</owner>
<summary>
Tracks the amount of time sending accessibility events from web renderers.
</summary>
<metric name="CpuTime.SendPendingAccessibilityEvents">
<summary>
The amount of time spent in
RenderAccessibilityImpl.SendPendingAccessibilityEvents
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Accessibility.ScreenAI">
<owner>abigailbklein@google.com</owner>
<owner>rhalavati@google.com</owner>
<owner>kyungjunlee@google.com</owner>
<summary>
Records the time taken to distill a web page.
</summary>
<metric name="Screen2xDistillationTime.Failure">
<summary>
The amount of time (ms) required to distill a web page if distillation
failed.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Screen2xDistillationTime.Success">
<summary>
The amount of time (ms) required to distill a web page if distillation
succeeded.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="AccuracyTipDialog">
<obsolete>
Deprecated as of 12/2022.
</obsolete>
<owner>dullweber@chromium.org</owner>
<owner>eokoyomon@chromium.org</owner>
<summary>
Recorded when an action on the accuracy tip dialog is taken.
</summary>
<metric name="Interaction" enum="AccuracyTipInteraction">
<summary>
Records an enum value representing which action in the accuracy tip was
taken.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TimeSpent">
<summary>
The amount of time spent on the dialog until it was closed. In seconds.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="AccuracyTipStatus">
<obsolete>
Deprecated as of 12/2022.
</obsolete>
<owner>dullweber@chromium.org</owner>
<owner>eokoyomon@chromium.org</owner>
<summary>
Recorded on each page load when the AccuracyService determines whether an
accuracy tip should be shown or the reason why it was not shown.
</summary>
<metric name="Status" enum="AccuracyTipStatus">
<summary>
The accuracy tip status that was determined for a pageload.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="AdFrameLoad">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Records metrics associated with a single ad frame for a page load. An ad
frame includes itself and all of its child frames. Only recorded for frames
with non-zero bytes. Recorded when a page is destroyed or when the app is
backgrounded on mobile.
</summary>
<metric name="CpuTime.PeakWindowedPercent">
<summary>
The peak percentage of CPU utilization attributed to the frame in any 30
second window prior to user activation. Frames that exist for less than 30
seconds still use 30 seconds as the denominator for the calculation.
</summary>
</metric>
<metric name="CpuTime.PreActivation">
<summary>
Wall time of tasks attributed to the frame after the frame received user
activation. Measured in millseconds.
</summary>
</metric>
<metric name="CpuTime.Total">
<summary>
Total wall time of tasks attributed to the frame. Measured in
milliseconds.
</summary>
</metric>
<metric name="FrameDepth">
<summary>
The depth of this frame's frame tree. There is no set limit on a frame's
maximum depth.
</summary>
</metric>
<metric name="Loading.CacheBytes">
<obsolete>
Deprecated 09/2019. Replaced with Loading.CacheBytes2.
</obsolete>
<summary>
Bytes loaded from the cache for all resources loaded within the frame.
This is rounded down to the nearest exponential bucket (with a bucket
ratio of 1.3).
</summary>
</metric>
<metric name="Loading.CacheBytes2">
<summary>
Bytes loaded from the cache for all resources loaded within the frame.
This includes bytes loaded from both the HTTP cache and memory cache. This
is rounded down to the nearest exponential bucket (with a bucket ratio of
1.3).
</summary>
</metric>
<metric name="Loading.ImageBytes">
<summary>
Network bytes loaded for resources with an image mime type within the
frame. Includes header bytes. This is rounded down to the nearest
exponential bucket (with a bucket ratio of 1.3).
</summary>
</metric>
<metric name="Loading.JavascriptBytes">
<summary>
Network bytes loaded for resources with a javascript mime type within the
frame. Includes header bytes. This is rounded down to the nearest
exponential bucket (with a bucket ratio of 1.3).
</summary>
</metric>
<metric name="Loading.NetworkBytes">
<summary>
Network bytes loaded for all resources within the frame. Includes header
bytes. This is rounded down to the nearest exponential bucket (with a
bucket ratio of 1.3).
</summary>
</metric>
<metric name="Loading.NumResources">
<summary>
Total number of resources loaded by the frame, including incomplete
resources.
</summary>
</metric>
<metric name="Loading.VideoBytes">
<summary>
Network bytes loaded for resources with a video/ mime type within the
frame. Includes header bytes. This is rounded down to the nearest
exponential bucket (with a bucket ratio of 1.3).
</summary>
</metric>
<metric name="Status.CrossOrigin">
<summary>
An enum representing whether the frame was Cross-Origin or Same-Origin to
its parent frame. See FrameData::OriginStatus.
</summary>
</metric>
<metric name="Status.Media">
<summary>
An enum representing whether media was played in the frame. See
FrameData::MediaStatus.
</summary>
</metric>
<metric name="Status.UserActivation">
<summary>
An enum representing whether the frame received user activation. See
FrameData::UserActivationStatus.
</summary>
</metric>
<metric name="Timing.FirstContentfulPaint">
<summary>
Number of milliseconds before FirstContentfulpaint was reached in the
frame. This is relative to subframe navigation start.
</summary>
</metric>
<metric name="Timing.Interactive">
<summary>
Number of millseconds before Time-To-Interactive was reached in the frame.
This is relative to subframe navigation start.
</summary>
</metric>
<metric name="Timing.PreActivationForegroundDuration">
<obsolete>
Deprecated 07/2020.
</obsolete>
<summary>
Number of millseconds that the current web contents spent in the
foreground prior to the frame receiving user activation.
</summary>
</metric>
<metric name="Visibility.FrameHeight">
<summary>
Last known height of the iframe in pixels. Not reported accurately when
&quot;Visibility.Hidden&quot; is true. This is rounded down to the nearest
exponential bucket (with a bucket ratio of 1.15).
</summary>
</metric>
<metric name="Visibility.FrameWidth">
<summary>
Last known width of the iframe in pixels. Not reported accurately when
&quot;Visibility.Hidden&quot; is true. This is rounded down to the nearest
exponential bucket (with a bucket ratio of 1.15).
</summary>
</metric>
<metric name="Visibility.Hidden">
<summary>
A 0 or 1 values representing whether the frame had a display=none styling
set. Records the last known value.
</summary>
</metric>
</event>
<event name="AdPageLoad" singular="True">
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Recorded when a page has loaded non-zero ad bytes, and the page is being
destroyed/navigated.
</summary>
<metric name="AdBytes">
<summary>
Amount of network bytes used to load ad resource on the page. Includes
resources that did not finish, and top-level ads. Measured in kilobytes.
</summary>
</metric>
<metric name="AdBytesPerSecond">
<obsolete>
Deprecated 01/2020.
</obsolete>
<summary>
Amount of network bytes used to load ad resources on the page, per second
the page was alive after commit. Measured in kilobytes per second.
</summary>
</metric>
<metric name="AdBytesPerSecondAfterInteractive">
<obsolete>
Deprecated 01/2020.
</obsolete>
<summary>
Amount of network bytes used to load ad resources on the page per second
after the page was interactive. Measured in kilobytes.
</summary>
</metric>
<metric name="AdCpuTime">
<summary>
Amount of CPU wall time inside of ad iframes over the duration of a page
load, while the page is in the foreground. Measured in milliseconds.
</summary>
</metric>
<metric name="AdJavascriptBytes">
<summary>
Amount of network bytes used to load ad resources with a supported
javascript mime type on the page. Measured in kilobytes.
</summary>
</metric>
<metric name="AdVideoBytes">
<summary>
Amount of network bytes used to load ad resources with a video mime type
on the page. Measured in kilobytes.
</summary>
</metric>
<metric name="MainframeAdBytes">
<summary>
Amount of network bytes used to load ad resources in the main frame.
Includes resources that did not finish but does not include resources in
subframes. Measured in bytes. This is rounded to the nearest exponential
bucket (with a bucket ratio of 1.3).
</summary>
</metric>
<metric name="MaxAdDensityByArea">
<summary>
The estimated maximum density of ads on a page by area. Calculated as the
area of ads on the page * 100 / page area. This counts each overlapping
area once, it may be inaccurate due to updates and calculations being
throttled.
</summary>
</metric>
<metric name="MaxAdDensityByHeight">
<summary>
The estimated maximum density of ads on a page by height. Calculated as
the combined height of ads on the page * 100 / page height. This counts
each overlapping area once, it may be inaccurate due to updates and
calculations being throttled.
</summary>
</metric>
<metric name="TotalBytes">
<summary>
Amount of network bytes used to load resources on the page. Includes
resources that did not finish. Measured in kilobytes.
</summary>
</metric>
</event>
<event name="AdPageLoadCustomSampling" singular="True">
<obsolete>
Removed 2022/10 in favor of AdPageLoadCustomSampling2
</obsolete>
<owner>yaoxia@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Recorded when a page has loaded non-zero ad bytes, and the page is being
destroyed/navigated away or when the app enters the background on mobile.
This is separate from the `AdPageLoad` event to allow a potentially
different sampling.
</summary>
<metric name="AverageViewportAdDensity">
<summary>
The estimated average viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the average
of the densities accumulated over the page load time rounded to the
nearest integer.
</summary>
</metric>
<metric name="KurtosisViewportAdDensity">
<summary>
The estimated kurtosis of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the kurtosis
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="SkewnessViewportAdDensity">
<summary>
The estimated skewness of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the skewness
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="VarianceViewportAdDensity">
<summary>
The estimated variance of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the variance
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
</event>
<event name="AdPageLoadCustomSampling2" singular="True">
<obsolete>
Removed 2022/12 in favor of AdPageLoadCustomSampling3
</obsolete>
<owner>yaoxia@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Recorded when the page is being destroyed/navigated away or when the app
enters the background on mobile. This is separate from the `AdPageLoad`
event to allow it to be recorded on all pages (i.e. not only pages that have
loaded non-zero ad byte), and to allow a potentially different sampling.
</summary>
<metric name="AverageViewportAdDensity">
<summary>
The estimated average viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the average
of the densities accumulated over the page load time rounded to the
nearest integer.
</summary>
</metric>
<metric name="KurtosisViewportAdDensity">
<summary>
The estimated kurtosis of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the kurtosis
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="SkewnessViewportAdDensity">
<summary>
The estimated skewness of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the skewness
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="VarianceViewportAdDensity">
<summary>
The estimated variance of the viewport ad density. Each density value is
calculated as the area of ads within the viewport * 100 / viewport area,
where each overlapping area is counted once. And this returns the variance
of the densities accumulated over the page load time rounded to the
nearest exponential bucket integer with bucket spacing 1.3. For negative
values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
</event>
<event name="AdPageLoadCustomSampling3" singular="True">
<owner>yaoxia@chromium.org</owner>
<owner>johnidel@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Recorded when the page is being destroyed/navigated away or when the app
enters the background on mobile. This is separate from the `AdPageLoad`
event to allow it to be recorded on all pages (i.e. not only pages that have
loaded non-zero ad byte), and to allow a potentially different sampling.
Both iframe and img ads are covered.
</summary>
<metric name="AverageViewportAdDensity">
<summary>
The estimated average viewport ad density. Each density value is
calculated as the area of (iframe and img) ads within the viewport * 100 /
viewport area, where each overlapping area is counted once. And this
returns the average of the densities accumulated over the page load time
rounded to the nearest integer.
</summary>
</metric>
<metric name="KurtosisViewportAdDensity">
<summary>
The estimated kurtosis of the viewport ad density. Each density value is
calculated as the area of (iframe and img) ads within the viewport * 100 /
viewport area, where each overlapping area is counted once. And this
returns the kurtosis of the densities accumulated over the page load time
rounded to the nearest exponential bucket integer with bucket spacing 1.3.
For negative values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="SkewnessViewportAdDensity">
<summary>
The estimated skewness of the viewport ad density. Each density value is
calculated as the area of (iframe and img) ads within the viewport * 100 /
viewport area, where each overlapping area is counted once. And this
returns the skewness of the densities accumulated over the page load time
rounded to the nearest exponential bucket integer with bucket spacing 1.3.
For negative values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
<metric name="VarianceViewportAdDensity">
<summary>
The estimated variance of the viewport ad density. Each density value is
calculated as the area of (iframe and img) ads within the viewport * 100 /
viewport area, where each overlapping area is counted once. And this
returns the variance of the densities accumulated over the page load time
rounded to the nearest exponential bucket integer with bucket spacing 1.3.
For negative values, the bucketing will be taken on its magnitude part.
</summary>
</metric>
</event>
<event name="AdsInterestGroup.AuctionLatency">
<owner>orrb@google.com</owner>
<owner>chrome-ads-core@google.com</owner>
<summary>
Captures latency-relevant metrics associated with a single FLEDGE auction.
Many of these metrics are latency measurements, aggregated (mean/max) for
parts of the auction flow that happen multiple times in an auction, e.g.
calls to GenerateBid. Others are potentially latency-impacting measures of
the auction, e.g. the number of InterestGroups, buyers, component auctions,
bids that were scored either together or separately for the enforced and
non-enforced KAnon modes. Finally, some of these metrics look at points in
the auction flow where multiple inputs come together to assess which of
these inputs most frequently appears on the latency critical path.
</summary>
<metric name="EndToEndLatencyInMillis">
<summary>
Time in ms between AdAuctionServiceImpl::RunAdAuction and
AdAuctionServiceImpl::OnAuctionComplete. Roughly equivalent to UMA metric,
Ads.InterestGroup.Auction.AuctionWithWinnerTime.
</summary>
</metric>
<metric name="KAnonymityBidMode" enum="KAnonymityBidMode">
<summary>
Indicates the KAnonymityBidMode used for this auction.
</summary>
</metric>
<metric name="LoadInterestGroupPhaseLatencyInMillis">
<summary>
The latency in milliseconds between the initial call to
InterestGroupAuction::StartLoadInterestGroupsPhase (not the recursive
calls issued for component auctions in a multi-seller auction), and the
call to AuctionRunner::OnLoadInterestGroupsComplete. This is related to
UMA metric, Ads.InterestGroup.Auction.LoadGroupsTime, except that, in a
multi-seller auction, the UMA metric is recorded once per component
auction and then again for the top-level auction, whereas this metric is
recorded only once, for the top-level auction. This metric also isn't
limited to those cases where there were InterestGroups to load, Since we
can independently filter this based on the value of NumInterestGroups.
</summary>
</metric>
<metric name="MaxBidForOneInterestGroupLatencyInMillis">
<summary>
Aggregated across all components for a multi-seller auctions, this records
the max latency in millis between BuyerHelper::StartGeneratingBids and
BuyerHelper::OnGenerateBidComplete, counting each BidState once. As such,
this includes starting the BidderWorklet in that latency. This latency
window is intentionally terminated in OnGenerateBidComplete, and not in
OnGenerateBidCompleteInternal, so that this *excludes* bids filtered
during reprioritization, as well as those that failed because of some
fatal error, except that we explicitly *include* those that timed out.
</summary>
</metric>
<metric name="MaxComponentAuctionLatencyInMillis">
<summary>
Only for multi-seller auctions, this is the highest latency of the bidding
and scoring phase, observed across all of the component auctions. This
latency is measured as the time between the call to
StartBiddingAndScoringPhase and the call to OnComponentAuctionComplete.
This metric only has a value for entries that represent multi-seller
auctions, as indicated by a value for the NumSellersWithBidders metric of
two or greater.
</summary>
</metric>
<metric name="MaxGenerateSingleBidLatencyInMillis">
<summary>
Aggregated across all components for a multi-seller auctions, this records
the max latency in millis of calls to GenerateSingleBid. This is related
to UMA metric, Ads.InterestGroup.Auction.GenerateBidTime, except that it's
already aggregated across all GenerateSingleBid calls for this auction.
Like the UMA metric, this measures each distinct call to
GenerateSingleBid, for which there could be two for a given InterestGroup,
one that satisfies the kAnon threshold, and one that doesn't.
</summary>
</metric>
<metric name="MeanBidForOneInterestGroupLatencyInMillis">
<summary>
Aggregated across all components for a multi-seller auctions, this records
the mean latency in millis between BuyerHelper::StartGeneratingBids and
BuyerHelper::OnGenerateBidComplete, counting each BidState once. As such,
this includes starting the BidderWorklet in that latency. This latency
window is intentionally terminated in OnGenerateBidComplete, and not in
OnGenerateBidCompleteInternal, so that this *excludes* bids filtered
during reprioritization, as well as those that failed because of some
fatal error, except that we explicitly *include* those that timed out.
</summary>
</metric>
<metric name="MeanComponentAuctionLatencyInMillis">
<summary>
Only for multi-seller auctions, this is the mean latency of the bidding
and scoring phase, aggregated across each of the component auctions. This
latency is measured as the time between the call to
StartBiddingAndScoringPhase and the call to OnComponentAuctionComplete.
This metric only has a value for entries that represent multi-seller
auctions, as indicated by a value for the NumSellersWithBidders metric of
two or greater.
</summary>
</metric>
<metric name="MeanGenerateSingleBidLatencyInMillis">
<summary>
Aggregated across all components for a multi-seller auctions, this records
the mean latency in millis of calls to GenerateSingleBid. This is related
to UMA metric, Ads.InterestGroup.Auction.GenerateBidTime, except that it's
already aggregated across all GenerateSingleBid calls for this auction.
Like the UMA metric, this measures each distinct call to
GenerateSingleBid, for which there could be two for a given InterestGroup,
one that satisfies the kAnon threshold, and one that doesn't.
</summary>
</metric>
<metric name="NumBidderWorklets">
<summary>
The number of distinct BidderWorklets. Interest groups with the same owner
can only share worklets if they have the same bidding script URL and KV
server URL. As such, we might observe a non-standard setup in which, for
example, a buyer has used a different bidding script URL for each
InterestGroup, causing performance issues because of the fragmentation of
BidderWorklets. BidderWorklets are shared across component auctions, and
this measure counts the number of distinct BidderWorklets used within the
scope of the scope of an entire auction, either single- or multi-seller.
This may imply that the number of BidderWorklets created in the context of
this auction is actually less than this number, because of reuse. However,
it also means that this metric can be compared against the
NumDistinctOwnersWithInterestGroups metric, which (unlike
NumOwnersWithInterestGroups) counts each buyer involved in a multi-seller
auction once, even if that buyer participates in multiple components.
</summary>
</metric>
<metric name="NumBidsAbortedByBidderWorkletFatalError">
<summary>
Total number of bids aborted because the BidderWorklet encountered a fatal
error, such as a crash, a JS fetch error, or any other fatal error -
excluding timeouts, which are counted by the metric below - aggregated
across all Owners and component auctions.
</summary>
</metric>
<metric name="NumBidsAbortedByBuyerCumulativeTimeout">
<summary>
Total number of InterestGroups aborted because the per-buyer cumulative
timeout was reached, aggregated across all Owners and component auctions.
</summary>
</metric>
<metric name="NumBidsFilteredByPerBuyerLimits">
<summary>
Total number of InterestGroups filtered as per-buyer limits are applied,
aggregated across all Owners and component auctions.
</summary>
</metric>
<metric name="NumBidsFilteredDuringInterestGroupLoad">
<summary>
Total number of InterestGroups filtered based on priority during the
loading of InterestGroups, aggregated across all Owners and component
auctions. This specifically excludes InterestGroups filtered during load
for other reasons, such as failing to satisfy requested seller
capabilities.
</summary>
</metric>
<metric name="NumBidsFilteredDuringReprioritization">
<summary>
Total number of InterestGroups filtered during bid reprioritization, which
happens once bidding signals are available, aggregated across all Owners
and component auctions. Related to UMA metric,
Ads.InterestGroup.Auction.BidFiltered, except that it's aggregated. To
determine the fraction of bids filtered, compare this against the
NumInterestGroups metric.
</summary>
</metric>
<metric name="NumDistinctOwnersWithInterestGroups">
<summary>
The number of buyers with InterestGroups participating in an auction,
aggregated across all component auctions. This number excludes buyers with
no ads or no script URL, and also those filtered because the priority for
all InterestGroups calculated in the BuyerHelper constructor was negative.
Unlike NumOwnersWithInterestGroups, it only counts each buyer once, even
if it appears in multiple component auctions of a multi-seller auction.
Also unlike NumOwnersWithInterestGroups, this metric has a value even if
there are no bidders eligible to participate in this auction, though, in
this case, that value is likely to be zero.
</summary>
</metric>
<metric name="NumInterestGroups">
<summary>
Total number of InterestGroups aggregated across all owners and component
auctions, equivalent to UMA metric,
Ads.InterestGroup.Auction.NumInterestGroups. This is the number of
InterestGroups loaded, before per-buyer limits are applied. Excluded from
this (and all other metrics counting InterestGroups) are InterestGroups
that are incapable of participating in an auction, e.g. those with no
bidding logic URLs, or with no ads. No value is defined for this metric if
there are no bidders eligible to participate in this auction.
</summary>
</metric>
<metric name="NumInterestGroupsWithNoBids">
<summary>
Number of instances in which the BidderWorklet doesn't bid, maybe because
it failed to load or crashed. Because there's no bid, ScoreAd won't be
called for these.
</summary>
</metric>
<metric name="NumInterestGroupsWithOnlyNonKAnonBid">
<summary>
Number of instances in which the BidderWorklet only generates one bid. If
the KAnonymityBidMode is Simulate or Enforce, this means that the
InterestGroup's top generated bid didn't satisfy the kAnonymity threshold,
and no separate bid could be generated that did satisfy the kAnonymity
threshold. If the KAnonymityBidMode is None, this just means that a bid
was successfully generated. For each of these, ScoreAd will be called
once.
</summary>
</metric>
<metric name="NumInterestGroupsWithSameBidForKAnonAndNonKAnon">
<summary>
Number of instances in which an InterestGroup's top generated bid did
satisfy the kAnonymity threshold, and so no separate bid was needed. For
each of these, ScoreAd will be called once. If the KAnonymityBidMode is
None, this metric will be 0, because there won't be a separate kAnon bid.
</summary>
</metric>
<metric name="NumInterestGroupsWithSeparateBidsForKAnonAndNonKAnon">
<summary>
Number of instances in which an InterestGroup's top generated bid didn't
satisfy the kAnonymity threshold, and a separate bid was generated that
did satisfy the kAnonymity threshold. For each of these, ScoreAd will be
called twice, once for each of these bids, which has latency and
performance implications. If the KAnonymityBidMode is None, this metric
will be 0, because there won't be a separate kAnon bid.
</summary>
</metric>
<metric name="NumOwnersWithInterestGroups">
<summary>
The number of buyers with InterestGroups participating in an auction,
aggregated across all component auctions. Equivalent to UMA metric,
Ads.InterestGroup.Auction.NumInterestGroups. This number excludes buyers
with no ads or no script URL, and also those filtered because the priority
for all InterestGroups calculated in the BuyerHelper constructor was
negative. However, it counts a buyer repeatedly for each component auction
that buyer participates in. No value is defined for this metric if there
are no bidders eligible to participate in this auction.
</summary>
</metric>
<metric name="NumSellersWithBidders">
<summary>
This is either the number of component auctions *plus one* for a
multi-seller auction, or 1 for a single-seller auction. Equivalent to UMA
metric, Ads.InterestGroup.Auction.NumSellersWithBidders. No value is
defined for this metric if there are no bidders eligible to participate in
this auction.
</summary>
</metric>
<metric name="Result" enum="AuctionResult">
<summary>
How the auction concluded, whether that's successfully selecting an ad to
be shown, or finding no InterestGroups to load, or getting no bids that
outbid the contextual bid, or any other outcome.
</summary>
</metric>
</event>
<event name="AdsIntervention.LastIntervention" singular="True">
<owner>yaoxia@google.com</owner>
<owner>chrome-ads-core@google.com</owner>
<summary>
Recorded after computing the subresource filter activation for a page at
process response time during navigation. This is only recorded when there
has previously been an ads intervention triggered on the page within the
site data's lifetime (currently 7 days). Clearing site data will reset
intervention information.
</summary>
<metric name="InterventionStatus" enum="AdsInterventionStatus">
<summary>
Records the status of the ads intervention, whether the intervention lead
to subresource filter activation, measured during page load.
</summary>
</metric>
<metric name="InterventionType" enum="AdsViolations">
<summary>
Records the last measured intervention recorded for the page, measured
during page load.
</summary>
</metric>
</event>
<event name="AmpPageLoad" singular="True">
<owner>sullivan@chromium.org</owner>
<metric name="MainFrameAmpPageLoad">
<summary>
True if the page loaded in the main frame is an AMP document (has an amp
attribute in the html element). Will not be recorded for non-AMP frames.
Note that most AMP documents are loaded in a subframe from a reader like
Google Search; this metric measures sites that are using AMP as a
site-wide framework and not a reader experience.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.AverageUserInteractionLatencyOverBudget.MaxEventDuration2">
<summary>
The average value of user interaction latency above budget of a page load
in AMP subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.AverageUserInteractionLatencyOverBudget.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The average value of user interaction latency above budget of a page load
in AMP subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.TotalEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric name="SubFrame.InteractiveTiming.FirstInputDelay3">
<obsolete>
Removed July 2019 in favor of FirstInputDelay4.
</obsolete>
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation, in the AMP subframe. See
https://goo.gl/tr1oTZ for a detailed explanation. In milliseconds.
</summary>
</metric>
<metric name="SubFrame.InteractiveTiming.FirstInputDelay4">
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation, in the AMP subframe. See
https://goo.gl/tr1oTZ for a detailed explanation. In milliseconds.
</summary>
</metric>
<metric name="SubFrame.InteractiveTiming.NumInteractions">
<summary>
The number of distinct user interactions in an AMP subframe. See
definition of user interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile.MaxEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile2.MaxEventDuration2">
<summary>
An approximation of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile2.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SumOfUserInteractionLatencyOverBudget.MaxEventDuration2">
<summary>
The sum of user interaction latency above budget of a page load in AMP
subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.SumOfUserInteractionLatencyOverBudget.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The sum of user interaction latency above budget of a page load in AMP
subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.TotalEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.UserInteractionLatency.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency of an
AMP subframe, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.WorstUserInteractionLatency.MaxEventDuration2">
<summary>
The maximum value of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.WorstUserInteractionLatency.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of high percentile of user interaction latency above
budget of a page load in AMP subframes, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.WorstUserInteractionLatencyOverBudget.MaxEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page load
in AMP subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric
name="SubFrame.InteractiveTiming.WorstUserInteractionLatencyOverBudget.TotalEventDuration2">
<obsolete>
Removed March 2022 in favor of
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page load
in AMP subframes, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.TotalEventDuration and we
deduct a budget from the original value. If the latency value is below the
budget, it will be treated as 0 ms. Each type of interaction has its own
budget.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.AverageCumulativeShiftScore.SessionWindow.Gap5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the average cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, in the AMP subframe. The gap between two
consecutive shifts in a window is not bigger than 5000ms. This metric's
integral value is 100x the fractional cumulative layout shift score
described in the explainer.
</summary>
</metric>
<metric name="SubFrame.LayoutInstability.CumulativeShiftScore">
<summary>
Deprecated as of 04/23. It is still reported, but most users should use
AmpPageLoad.SubFrame.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms.
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred during the session, in the AMP subframe. This metric's integral
value is 100x the fractional cumulative layout shift score described in
the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.CumulativeShiftScore.BeforeInputOrScroll">
<summary>
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred in the AMP subframe, before any user input or document scroll.
This metric's integral value is 100x the fractional cumulative layout
shift score described in the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, in the AMP subframe. The gap between two
consecutive shifts in a window is not bigger than 1000ms. This metric's
integral value is 100x the fractional cumulative layout shift score
described in the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms">
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, in the AMP subframe. The gap between two
consecutive shifts in a window is not bigger than 1000ms and the maximum
window size is 5000ms. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.MaxCumulativeShiftScore.SessionWindowByInputs.Gap1000ms.Max5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, in the AMP subframe. The gap between two
consecutive shifts in a window is not bigger than 1000ms and the maximum
window size is 5000ms. We start a new window whenever there's a user
input. This metric's integral value is 100x the fractional cumulative
layout shift score described in the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.MaxCumulativeShiftScore.SlidingWindow.Duration1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 1000ms sliding window, in the AMP subframe. This
metric's integral value is 100x the fractional cumulative layout shift
score described in the explainer.
</summary>
</metric>
<metric
name="SubFrame.LayoutInstability.MaxCumulativeShiftScore.SlidingWindow.Duration300ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 300ms sliding window, in the AMP subframe. This metric's
integral value is 100x the fractional cumulative layout shift score
described in the explainer.
</summary>
</metric>
<metric name="SubFrame.LayoutStability.JankScore">
<obsolete>
Removed July 2019 in favor of
SubFrame.LayoutInstability.CumulativeShiftScore.
</obsolete>
<summary>
Measures the amount of layout jank (bit.ly/lsm-explainer) that has
occurred during the session, in the AMP subframe. This metric's integral
value is 100x the fractional jank score described in the explainer.
</summary>
</metric>
<metric name="SubFrame.MainFrameToSubFrameNavigationDelta">
<summary>
Measures the time in milliseconds from the navigation in the main frame to
the navigation in the AMP subframe. Will be negative in cases where the
AMP subframe was prerendered. Will be positive in cases where the main
frame was a non-same-document navigation. Should be near-zero when the
main frame navigation is a same-document navigation and the AMP subframe
was not prerendered.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.AllowUserZoom" enum="Boolean">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Whether the page allows the user to zoom in/out, in the AMP subframe.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.BadTapTargetsRatio">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Percentage of tap targets whose center position is within another tap
target (expanded by a margin), in the AMP subframe. The detail of the
algorithm is go/bad-tap-target-ukm. If evaluation time budget exceeded,
this will be is -2.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.SmallTextRatio">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Percentage of small font text area in total text area, in the AMP
subframe.
</summary>
</metric>
<metric
name="SubFrame.MobileFriendliness.TextContentOutsideViewportPercentage">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Percentage of pixels of text and images horizontally outside the viewport,
relative to the frame width, in the AMP subframe.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.ViewportDeviceWidth" enum="Boolean">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Whether the width of the viewport is specified as device-width or not, in
the AMP subframe.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.ViewportHardcodedWidth">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Specified hardcoded viewport width in CSS pixels, in the AMP subframe.
</summary>
</metric>
<metric name="SubFrame.MobileFriendliness.ViewportInitialScaleX10">
<obsolete>
Deprecated 12/2022.
</obsolete>
<summary>
Specified initial viewport scaling, in the AMP subframe, multiplied by 10.
1 means 0.1, 100 means 10. [1-100].
</summary>
</metric>
<metric
name="SubFrame.PaintTiming.NavigationToExperimentalLargestContentfulPaint">
<obsolete>
Replaced by SubFrame.PaintTiming.NavigationToLargestContentfulPaint2 on
Oct 2020.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the experimental largest
content (text or image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details. Differs
from the non-experimental version in that removed content is still
considered a valid candidate.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToFirstContentfulPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints content, in the AMP subframe.
A contentful paint includes a paint of text, image, SVG, or canvas.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToFirstPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the first paint is performed, in the AMP subframe.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToLargestContentfulPaint">
<obsolete>
Replaced by SubFrame.PaintTiming.NavigationToLargestContentfulPaint2. No
longer reported from Nov 2021.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details. Note:
Will be replaced by
SubFrame.PaintTiming.NavigationToLargestContentfulPaint2.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToLargestContentfulPaint2">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the experimental largest
content (text or image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details. Differs
from SubFrame.PaintTiming.NavigationToLargestContentfulPaint in that
removed content is still considered a valid candidate.
</summary>
</metric>
<metric name="SubFrame.PaintTiming.NavigationToLargestContentPaint">
<obsolete>
Deprecated 7/2019
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, in the AMP subframe. See
http://bit.ly/largest_contentful_paint_explainer for more details.
</summary>
</metric>
<metric name="SubFrameAmpPageLoad">
<summary>
True if the page loaded in any subframe is an AMP document (has an amp
attribute in the html element). Will not be recorded for non-AMP frames.
Note that most AMP documents are loaded in a subframe from a reader like
Google Search; this metric measures usage of such readers.
</summary>
</metric>
</event>
<event name="Android.DarkTheme.AutoDarkMode">
<owner>nemco@google.com</owner>
<owner>wenyufu@chromium.org</owner>
<summary>
Recorded when the user changes auto-dark theming for a site through the app
menu.
</summary>
<metric name="DisabledByUser" enum="Boolean">
<summary>
A boolean signaling that auto-dark theming has been disabled.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Android.MultiWindowChangeActivity">
<owner>gangwu@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
Records when the activity enter or exit Android N+ multi-window mode.
</summary>
<metric name="ActivityType" enum="AndroidMultiWindowActivityType">
<summary>
Enter or exit the multi-window mode.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Android.MultiWindowState">
<owner>gangwu@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
Records the multi window state when the activity is shown.
</summary>
<metric name="WindowState" enum="AndroidMultiWindowState">
<summary>
The state of the multi-window mode, single or multi-window.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Android.NonDefaultRdsPageLoad">
<owner>shuyng@google.com</owner>
<owner>twellington@chromium.org</owner>
<summary>
Records on each page load when the User Agent is overridden with site
exception.
</summary>
<metric name="UserAgentType" enum="UserAgentRequestType">
<summary>
An enum that records the type of user agent.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Android.ScreenRotation">
<owner>gangwu@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
Records when a user rotates the device triggering a screen orientation
change.
</summary>
<metric name="TargetDeviceOrientation" enum="DeviceOrientation2">
<summary>
The orientation of the device rotated to.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Android.UserRequestedUserAgentChange">
<owner>gangwu@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
Records when a user pressed 'Request Desktop Site' in the app menu.
</summary>
<metric name="UserAgentType" enum="UserAgentRequestType">
<summary>
An enum that records the type of user agent.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="AppListAppClickData">
<owner>pdyson@chromium.org</owner>
<summary>
AppListAppClickData events contain click history metrics for an app. These
events are recorded when an app is launched from the launcher on ChromeOS,
but may be for an app different from the app launched. See event
AppListAppLaunch for more detail on the keys used.
</summary>
<metric name="AppLaunchId">
<summary>
The ID of the app launch event.
</summary>
</metric>
<metric name="AppType">
<summary>
The type of app. 1: CHROME, 2: PLAY, 3: PWA/Bookmark app.
</summary>
</metric>
<metric name="ClickRank">
<summary>
Rank apps by total number of clicks. The app with the most clicks has rank
1.
</summary>
</metric>
<metric name="ClicksEachHour00">
<summary>
The number of clicks on this app in the current session that occurred
between 12:00am and 1:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour01">
<summary>
The number of clicks on this app in the current session that occurred
between 1:00am and 2:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour02">
<summary>
The number of clicks on this app in the current session that occurred
between 2:00am and 3:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour03">
<summary>
The number of clicks on this app in the current session that occurred
between 3:00am and 4:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour04">
<summary>
The number of clicks on this app in the current session that occurred
between 4:00am and 5:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour05">
<summary>
The number of clicks on this app in the current session that occurred
between 5:00am and 6:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour06">
<summary>
The number of clicks on this app in the current session that occurred
between 6:00am and 7:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour07">
<summary>
The number of clicks on this app in the current session that occurred
between 7:00am and 8:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour08">
<summary>
The number of clicks on this app in the current session that occurred
between 8:00am and 9:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour09">
<summary>
The number of clicks on this app in the current session that occurred
between 9:00am and 10:00am. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour10">
<summary>
The number of clicks on this app in the current session that occurred
between 10:00am and 11:00am. Bucketing: values above 20 rounded down to
the nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour11">
<summary>
The number of clicks on this app in the current session that occurred
between 11:00am and 12:00pm. Bucketing: values above 20 rounded down to
the nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour12">
<summary>
The number of clicks on this app in the current session that occurred
between 12:00pm and 1:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour13">
<summary>
The number of clicks on this app in the current session that occurred
between 1:00pm and 2:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour14">
<summary>
The number of clicks on this app in the current session that occurred
between 2:00pm and 3:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour15">
<summary>
The number of clicks on this app in the current session that occurred
between 3:00pm and 4:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour16">
<summary>
The number of clicks on this app in the current session that occurred
between 4:00pm and 5:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour17">
<summary>
The number of clicks on this app in the current session that occurred
between 5:00pm and 6:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour18">
<summary>
The number of clicks on this app in the current session that occurred
between 6:00pm and 7:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour19">
<summary>
The number of clicks on this app in the current session that occurred
between 7:00pm and 8:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour20">
<summary>
The number of clicks on this app in the current session that occurred
between 8:00pm and 9:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour21">
<summary>
The number of clicks on this app in the current session that occurred
between 9:00pm and 10:00pm. Bucketing: values above 20 rounded down to the
nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour22">
<summary>
The number of clicks on this app in the current session that occurred
between 10:00pm and 11:00pm. Bucketing: values above 20 rounded down to
the nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksEachHour23">
<summary>
The number of clicks on this app in the current session that occurred
between 11:00pm and 12:00am. Bucketing: values above 20 rounded down to
the nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="ClicksLast24Hours">
<summary>
The number of clicks on this app in the last 24 hours. Accurate to 15
minutes. Bucketing: values above 20 rounded down to the nearest 10.
Maximum value of 200.
</summary>
</metric>
<metric name="ClicksLastHour">
<summary>
The number of clicks on this app in the last hour. Accurate to one minute.
Bucketing: values above 20 rounded down to the nearest 10. Maximum value
of 200.
</summary>
</metric>
<metric name="LastLaunchedFrom">
<summary>
Where the app was last launched from. 1: GRID, 2: SUGGESTED, 3: SHELF.
</summary>
</metric>
<metric name="MostRecentlyUsedIndex">
<summary>
Index recording when in the sequence of app launch clicks the app was last
clicked on. 0: most recent app clicked on, 1: app clicked immediately
before the most recent, etc.
</summary>
</metric>
<metric name="SequenceNumber">
<summary>
The sequence number of the AppListAppLaunch event that corresponds to this
AppListAppClickData event. There will be six AppListAppClickData events
for each sequence number.
</summary>
</metric>
<metric name="TimeSinceLastClick">
<summary>
Time since this app was last clicked on to launch. In seconds, bucketed:
[1, 59] to the nearest second, [60, 599] to the nearest minute, [600,
1199] to the nearest 5 minutes, [1200, 3599] to the nearest 10 minutes,
[3600, 17999] to the nearest 30 minutes, [18000, 86400] to the nearest
hour.
</summary>
</metric>
<metric name="TotalClicks">
<summary>
Total number of clicks launching this app in this sesion. Bucketing:
values above 20 rounded down to the nearest 10. Maximum value of 200.
</summary>
</metric>
</event>
<event name="AppListAppLaunch">
<owner>pdyson@chromium.org</owner>
<summary>
Recorded when an app is launched from the launcher on ChromeOS. This can be
from the suggestion chip, or from the grid of apps. The UKM metrics are not
keyed by navigational urls. Instead, for Chrome apps the keys are based upon
the app id, for Play apps the keys are based upon a hash of the package name
and for PWAs the keys are the urls associated with the PWA.
</summary>
<metric name="AllClicksLast24Hours">
<summary>
Total number of clicks launching logged apps in the last 24 hours.
Accurate to the nearest 15 minutes. Bucketing: values above 20 rounded
down to the nearest 10. Maximum value of 200.
</summary>
</metric>
<metric name="AllClicksLastHour">
<summary>
Total number of clicks launching logged apps in the last hour. Accurate to
the nearest minute. Bucketing: values above 20 rounded down to the nearest
10. Maximum value of 200.
</summary>
</metric>
<metric name="AppType">
<summary>
The type of app. 1: CHROME, 2: PLAY, 3: PWA/Bookmark app.
</summary>
</metric>
<metric name="ClickMethod">
<summary>
Click method. 1: MOUSE, 2: TOUCH, 3: SYTLUS, 4: KEYBOARD.
</summary>
</metric>
<metric name="DayOfWeek">
<summary>
An enum representing the day of the week that the data was logged in the
local time zone. Sunday = 0.
</summary>
</metric>
<metric name="DeviceMode">
<summary>
The mode of the device. 1: CLOSED_LID (Lid is closed), 2: LAPTOP (Lid is
open, tablet mode off or unsupported) , 3: TABLET (Lid is open, tablet
mode on or no lid at all).
</summary>
</metric>
<metric name="DeviceType">
<summary>
The type of the device. 1: TABLET, 2: LAPTOP.
</summary>
</metric>
<metric name="HourOfDay">
<summary>
The hour of the day when the data is logged. Hours since midnight in the
local time zone.
</summary>
</metric>
<metric name="LaunchedFrom">
<summary>
Where the app was launched from. 1: GRID, 2: SUGGESTED, 3: SHELF.
</summary>
</metric>
<metric name="PositionIndex">
<summary>
The position of the app within the grid/suggested apps/shelf. 0 is the
first position.
</summary>
</metric>
<metric name="TotalHours">
<summary>
Number of hours in the current session up to this event. Bucketing:
exponential buckets, increasing in size by 25%, rounded to the nearest
integer. i.e. 0, 1, 2, 3, 4, 5, 6, 7, 9, 12, 15, 18, 23, 28, 36, 44...
</summary>
</metric>
</event>
<event name="AppListNonAppImpression">
<obsolete>
Deprecated March 2021.
</obsolete>
<owner>jiameng@chromium.org</owner>
<owner>thanhdng@chromium.org</owner>
<owner>tby@chromium.org</owner>
<summary>
Records details of impressions and launches of non-apps in the ChromeOS
launcher, such as files, omnibox results, and answer cards.
</summary>
<metric name="Category" enum="AppListNonAppImpressionCategory">
<summary>
The kind of launcher item. Corresponds to the value of
ChromeSearchResult::result_[sub]type.
</summary>
</metric>
<metric name="DayOfWeek">
<summary>
The day of the week that the event was logged on, in the local time zone.
Sunday is 0.
</summary>
</metric>
<metric name="DeviceMode" enum="AppListNonAppImpressionDeviceMode">
<summary>
The mode of the device.
</summary>
</metric>
<metric name="EventId">
<summary>
An ID linking together events within a single set of launcher search
results. One of these may be a launch, and the rest impressions.
</summary>
</metric>
<metric name="FileExtension" enum="AppListNonAppImpressionFileExtension">
<summary>
An enum representing the file extension if this event represents a local
or DriveFS file.
</summary>
</metric>
<metric name="HourOfDay">
<summary>
The hour of the day that the event was logged in. Hours measured from
midnight in the local timezone.
</summary>
</metric>
<metric name="IsLaunched" enum="Boolean">
<summary>
True if the item represented by this event was launched, false otherwise.
</summary>
</metric>
<metric name="LaunchesAtHour00">
<summary>
The number of launches within the last 24 hours at hour 0. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour01">
<summary>
The number of launches within the last 24 hours at hour 1. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour02">
<summary>
The number of launches within the last 24 hours at hour 2. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour03">
<summary>
The number of launches within the last 24 hours at hour 3. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour04">
<summary>
The number of launches within the last 24 hours at hour 4. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour05">
<summary>
The number of launches within the last 24 hours at hour 5. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour06">
<summary>
The number of launches within the last 24 hours at hour 6. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour07">
<summary>
The number of launches within the last 24 hours at hour 7. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour08">
<summary>
The number of launches within the last 24 hours at hour 8. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour09">
<summary>
The number of launches within the last 24 hours at hour 9. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour10">
<summary>
The number of launches within the last 24 hours at hour 10. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour11">
<summary>
The number of launches within the last 24 hours at hour 11. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour12">
<summary>
The number of launches within the last 24 hours at hour 12. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour13">
<summary>
The number of launches within the last 24 hours at hour 13. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour14">
<summary>
The number of launches within the last 24 hours at hour 14. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour15">
<summary>
The number of launches within the last 24 hours at hour 15. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour16">
<summary>
The number of launches within the last 24 hours at hour 16. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour17">
<summary>
The number of launches within the last 24 hours at hour 17. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour18">
<summary>
The number of launches within the last 24 hours at hour 18. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour19">
<summary>
The number of launches within the last 24 hours at hour 19. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour20">
<summary>
The number of launches within the last 24 hours at hour 20. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour21">
<summary>
The number of launches within the last 24 hours at hour 21. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour22">
<summary>
The number of launches within the last 24 hours at hour 22. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesAtHour23">
<summary>
The number of launches within the last 24 hours at hour 23. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="LaunchesThisSession">
<summary>
How many times this item has been launched during this session. Rounded
down to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="Position">
<summary>
The index of this item in the search results list. Indices start at 0.
</summary>
</metric>
<metric name="QueryLength">
<summary>
The length of the raw search query with whitespace trimmed. Rounded down
to the nearest exponential bucket, with a bucket ratio of 1.15.
</summary>
</metric>
<metric name="RelevanceScore">
<summary>
The raw relevance score returned by the relevant search provider for this
item.
</summary>
</metric>
<metric name="TimeOfLastLaunch">
<summary>
The hour when the previous launch of this item occurred. Hours measured
from midnight in the local timezone. This can be any value 0-23, as the
last launch could have been on a previous day.
</summary>
</metric>
<metric name="TimeSinceLastLaunch">
<summary>
Seconds since this item was last launched in this session. Rounded down to
the nearest exponential bucket, with a bucket ratio of 1.045. This makes
the bucket at 24 hour mark approximately 1 hour long.
</summary>
</metric>
</event>
<event name="Autofill.AddressProfileImport">
<owner>vidhanj@google.com</owner>
<owner>koerber@google.com</owner>
<summary>
Recorded after a form submission that either resulted in a save prompt for
addresses or in a silent update of an already existing profile.
</summary>
<metric name="AutocompleteUnrecognizedImport" enum="Boolean">
<summary>
Logs if data was imported from a field that has autocomplete=UNRECOGNIZED.
</summary>
</metric>
<metric name="ImportType" enum="AutofillProfileImportType">
<summary>
Logs the import type of the storage prompt. An import type can be either
the import of a new profile, an update of an existing profile that results
in a confirmation dialog, or a silent update that only changes the
structure of an already stored address but does not affect any
settings-visible stored data.
</summary>
</metric>
<metric name="NumberOfEditedFields">
<summary>
Logs the count for the number of fields that have been edited by the user
in the storage dialog before the storage was confirmed.
</summary>
</metric>
<metric name="PhoneNumberStatus" enum="AutofillPhoneImportValidity">
<summary>
Logs the phone number validity status based on whether the phone number
was imported in the profile or not or removed beforehand.
</summary>
</metric>
<metric name="UserDecision" enum="AutofillProfileImportDecision">
<summary>
Logs the user decision based on the storage prompt.
</summary>
</metric>
</event>
<event name="Autofill.CardUploadDecision">
<owner>sebsg@chromium.org</owner>
<metric name="UploadDecision">
<summary>
Whether the upload was proposed to the user or the reasons why it was not.
The value is a bitmask of |CardUploadDecisionMetric|.
</summary>
</metric>
</event>
<event name="Autofill.CreditCardFill">
<owner>schwering@google.com</owner>
<summary>
Recorded when a credit card form is autofilled.
</summary>
<metric name="Fillable.AfterSecurity.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled if the credit card
on file was complete.
</summary>
</metric>
<metric name="Fillable.AfterSecurity.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled if the credit card on file was complete.
</summary>
</metric>
<metric name="Fillable.AfterSecurity.Visible.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled into visible fields
if the credit card on file was complete.
</summary>
</metric>
<metric name="Fillable.AfterSecurity.Visible.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled into visible fields if the credit card on file was complete.
</summary>
</metric>
<metric name="Fillable.BeforeSecurity.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled if the credit card
on file was complete and there was no security policy.
</summary>
</metric>
<metric name="Fillable.BeforeSecurity.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled if the credit card on file was complete and there was no security
policy.
</summary>
</metric>
<metric name="Fillable.BeforeSecurity.Visible.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled into visible fields
if the credit card on file was complete and there was no security policy.
</summary>
</metric>
<metric name="Fillable.BeforeSecurity.Visible.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled into visible fields if the credit card on file was complete and
there was no security policy.
</summary>
</metric>
<metric name="Filled.AfterSecurity.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill actually filled.
</summary>
</metric>
<metric name="Filled.AfterSecurity.Qualitative" enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill actually
filled.
</summary>
</metric>
<metric name="Filled.AfterSecurity.Visible.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill actually filled into visible fields.
</summary>
</metric>
<metric name="Filled.AfterSecurity.Visible.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill actually
filled into visible fields.
</summary>
</metric>
<metric name="Filled.BeforeSecurity.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled if there was no
security policy.
</summary>
</metric>
<metric name="Filled.BeforeSecurity.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled if there was no security policy.
</summary>
</metric>
<metric name="Filled.BeforeSecurity.Visible.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask">
<summary>
Logs the field types which Autofill would have filled into visible fields
if there was no security policy.
</summary>
</metric>
<metric name="Filled.BeforeSecurity.Visible.Qualitative"
enum="CreditCardSeamlessFill">
<summary>
Logs a qualitative summary of the field types which Autofill would have
filled into visible fields if there was no security policy.
</summary>
</metric>
<metric name="FormSignature">
<summary>
An approximately 10-bit hash of the form's actual signature.
</summary>
</metric>
<metric name="SharedAutofill" enum="Boolean">
<summary>
Missing shared-autofill feature prevented a cross-origin credit-card field
from being filled. Shared-autofill is a policy-controlled feature by which
a frame can allow a child-frame to be autofilled across origin.
</summary>
</metric>
</event>
<event name="Autofill.DeveloperEngagement">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when we parse a form to log whether developer has used autocomplete
markup or UPI-VPA hints. The value is a bitmask of
|DeveloperEngagementMetric|.
</summary>
<metric name="DeveloperEngagement"/>
<metric name="FormSignature">
<summary>
The signature of the form. This is the hash identifier used to denote this
form for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set ith bit implies enum FormType's
ith type was detected. Multiple types are possible.
</summary>
</metric>
<metric name="IsForCreditCard">
<summary>
True for credit card forms, false for address/profile forms. See
|FormStructure::IsCompleteCreditCardForm()|.
</summary>
</metric>
</event>
<event name="Autofill.EditedAutofilledFieldAtSubmission">
<owner>koerber@google.com</owner>
<owner>battre@google.com</owner>
<summary>
Records when a user edits a value that was filled by autofill.
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field. This is the hash identifier used to denote
this field for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form. This is the hash identifier used to denote this
form for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="OverallType" enum="AutofillServerFieldType">
<summary>
Field's overall |ServerFieldType|. See: autofill::ServerFieldType
</summary>
</metric>
</event>
<event name="Autofill.FastCheckoutFormStatus">
<owner>bwolfgang@google.com</owner>
<owner>jkeitel@google.com</owner>
<owner>vizcay@google.com</owner>
<summary>
Recorded at the end of a Fast Checkout run.
</summary>
<metric name="Filled" enum="Boolean">
<summary>
1 if the form was filled by Fast Checkout, 0 otherwise.
</summary>
</metric>
<metric name="FormSignature">
<summary>
An approximately 10-bit hash of the form's actual signature.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set i-th bit implies enum FormType's
i-th type was detected. Multiple types are possible.
</summary>
</metric>
<metric name="RunId">
<summary>
Unique run ID for linking to other UKM events.
</summary>
</metric>
</event>
<event name="Autofill.FastCheckoutRunOutcome">
<owner>bwolfgang@google.com</owner>
<owner>jkeitel@google.com</owner>
<owner>vizcay@google.com</owner>
<summary>
Recorded at the end of a Fast Checkout run.
</summary>
<metric name="RunId">
<summary>
Unique run ID for linking to other UKM events.
</summary>
</metric>
<metric name="RunOutcome" enum="FastCheckoutRunOutcome">
<summary>
States if the run was successful or why it was not.
</summary>
</metric>
</event>
<event name="Autofill.FieldFillStatus">
<owner>rogerm@chromium.org</owner>
<summary>
Recorded when Chrome validates field type predictions (on submit, on leaving
a form, on receiving a form with autocomplete attributes).
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field. This is the hash identifier used to denote
this field for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form. This is the hash identifier used to denote this
form for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="IsAutofilled">
<summary>
The field is currently autofilled.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
<metric name="PredictionSource">
<summary>
The system which generated the prediction: heuristics, server, overall.
</summary>
</metric>
<metric name="ValidationEvent">
<summary>
The event which triggered the validation: Submission, Left Form, Form has
Autocomplete attributes.
</summary>
</metric>
<metric name="WasPreviouslyAutofilled">
<summary>
The field was autofilled and subsequently edited.
</summary>
</metric>
</event>
<event name="Autofill.FieldTypeValidation">
<owner>rogerm@chromium.org</owner>
<summary>
Recorded when Chrome validates field type predictions (on submit, on leaving
a form, on receiving a form with autocomplete attributes).
</summary>
<metric name="ActualType" enum="AutofillServerFieldType">
<summary>
The observed type of the field. See: autofill::ServerFieldType
</summary>
</metric>
<metric name="FieldSignature">
<summary>
The signature of the field
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
<metric name="PredictedType" enum="AutofillServerFieldType">
<summary>
The predicted type of the field. See: autofill::ServerFieldType
</summary>
</metric>
<metric name="PredictionSource" enum="AutofillPredictionSource">
<summary>
The system which generated the prediction: heuristics, server, overall.
</summary>
</metric>
<metric name="ValidationEvent" enum="AutofillQualitiyMetricType">
<summary>
The event which triggered the validation: Submission, Left Form, Form has
Autocomplete attributes.
</summary>
</metric>
</event>
<event name="Autofill.FormEvent">
<owner>dlkumar@google.com</owner>
<summary>
Recorded when user interacted with autofill.
</summary>
<metric name="AutofillFormEvent">
<summary>
Logs autofill form events funnel. See |FormEvent|.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set ith bit implies enum FormType's
ith type was detected. Multiple types are possible.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
</event>
<event name="Autofill.FormFillSuccessIOS">
<owner>kazinova@google.com</owner>
<summary>
Records whether the form was successfully filled by Autofill on iOS. The
metric is used to measure silent renderer fails when the filling request is
executed successfully but the results reported in a callback are empty.
</summary>
<metric name="FormFillSuccess" enum="Boolean">
<summary>
A boolean indicating success or failure.
</summary>
</metric>
</event>
<event name="Autofill.FormSubmitted">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when user submits a form.
</summary>
<metric name="AutocompleteFills">
<summary>
Number of Autocomplete fills invoked by the user on the current form.
</summary>
</metric>
<metric name="AutofillAssistantIntent" enum="AutofillAssistantIntent">
<summary>
Describes the trigger source that invoked Autofill. Only recorded if
AutofillAssistantIntent was not undefined.
</summary>
</metric>
<metric name="AutofillFills">
<summary>
Number of Autofill fills invoked by the user on the current form.
</summary>
</metric>
<metric name="AutofillFormSubmittedState">
<summary>
Whether form's fields were all autofilled, some fields were autofilled, or
none of the field were autofilled. See |AutofillFormSubmittedState|.
</summary>
</metric>
<metric name="FormElementUserModifications">
<summary>
Number of times a user focused on a form element and changed its value.
Consecutive value changes on the same form element are not counted,
neither are JS invoked changes. Also, re-focusing a form element and
changing its value is only counted if another form element's value was
changed in the meantime.
</summary>
</metric>
<metric name="FormSignature">
<summary>
FormSignature is approximately 10 bit hash of form structure.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set ith bit implies enum FormType's
ith type was detected. Multiple types are possible.
</summary>
</metric>
<metric name="HasUpiVpaField">
<summary>
True for forms containing a UPI/VPA field.
</summary>
</metric>
<metric name="IsForCreditCard">
<summary>
True for credit card forms, false for address/profile forms. See
|FormStructure::IsCompleteCreditCardForm()|.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
</event>
<event name="Autofill.HiddenRepresentationalFieldSkipDecision">
<owner>parastoog@chromium.org</owner>
<summary>
Recorded while trying to fill or preview a hidden or a representational
field.
</summary>
<metric name="FieldOverallType">
<summary>
Field's overall |ServerFieldType|. See |AutofillField.GetStorableType()|.
</summary>
</metric>
<metric name="FieldSignature">
<summary>
The signature of the field. This is the hash identifier used to denote
this field for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="FieldTypeGroup">
<summary>
Field's |FieldTypeGroup|. See |AutofillType.group()|.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form. This is the hash identifier used to denote this
form for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="HeuristicType">
<summary>
Field's |ServerFieldType| based on heuristics. See
|AutofillField.heuristic_type()|.
</summary>
</metric>
<metric name="HtmlFieldMode">
<summary>
Whether the field's autocomplete hint specified 'billing' or 'shipping'.
See |AutofillField.html_mode()|.
</summary>
</metric>
<metric name="HtmlFieldType">
<summary>
Field's autocomplete field type hint. See |AutofillField.html_type()|.
</summary>
</metric>
<metric name="IsSkipped">
<summary>
True if the field was skipped while filling or previewing the form,
because it was hidden or representational, but not a 'select' one.
</summary>
</metric>
<metric name="ServerType">
<summary>
Field's |ServerFieldType| returned by server. See
|AutofillField.server_type()|.
</summary>
</metric>
</event>
<event name="Autofill.InteractedWithForm">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when we parse a form to log form metadata and autofill settings
that apply to all subsequent events for this form.
</summary>
<metric name="FormSignature">
<summary>
FormSignature is approximately 10 bit hash of form structure.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set ith bit implies enum FormType's
ith type was detected. Multiple types are possible.
</summary>
</metric>
<metric name="IsForCreditCard">
<summary>
True for credit card forms, false for address/profile forms.
</summary>
</metric>
<metric name="LocalRecordTypeCount">
<summary>
Number of local credit cards or local autofill profiles.
</summary>
</metric>
<metric name="ServerRecordTypeCount">
<summary>
Number of masked and full server credit cards or server autofill profiles.
</summary>
</metric>
</event>
<event name="Autofill.KeyMetrics">
<owner>battre@chromium.org</owner>
<owner>kolos@chromium.org</owner>
<owner>nepper@chromium.org</owner>
<summary>
These metrics are a clone of Autofill's UMA key metrics to measure Autofill
quality. They are recorded on navigation if a form was submitted before.
</summary>
<metric name="AutofillAssistantIntent" enum="AutofillAssistantIntent">
<summary>
Obsolete. Used to describe the trigger source that invoked Autofill. Was
only recorded if AutofillAssistantIntent was not undefined.
</summary>
</metric>
<metric name="AutofillFills">
<summary>
Number of Autofill fills invoked by the user on the current form.
</summary>
</metric>
<metric name="FastCheckoutRunId">
<summary>
Optional, only set if a form was filled by Fast Checkout. Unique ID of a
Fast Checkout run.
</summary>
</metric>
<metric name="FillingAcceptance">
<summary>
Has value 1 if user accepted the suggestion to fill values on a submitted
form, 0 otherwise. This is counted as 1 if the user accepted such a
suggestion at any time, regardless whether other suggestions were ignored
or whether the accepted suggestion was reverted afterwards. Only recorded
if suggestions were shown to the user.
</summary>
</metric>
<metric name="FillingAssistance">
<summary>
Has value 1 if the user filled any fields via Autofill on a submitted
form, 0 otherwise.
If the user reverts the filling, the form is still counted as filled.
This metric is different from FillingAcceptance in the sense that the
latter is only recorded if the user has actually seen a prompt to fill
data.
</summary>
</metric>
<metric name="FillingCorrectness">
<summary>
Has value 1 for submitted and autofilled forms if user edited at least one
filled value before submitting the form, 0 otherwise. Only recorded if any
suggestion was filled.
</summary>
</metric>
<metric name="FillingReadiness">
<summary>
Has value 1 for submitted forms when Chromium had any address or payments
data to fill, 0 otherwise.
It does not matter whether the user actually requested to fill the data.
It does not matter either whether the data available for filling
corresponded to the submitted data.
</summary>
</metric>
<metric name="FlowId">
<summary>
Hashed GUID linking together multiple emissions of this event if emitted
within a 20 minutes timeframe.
</summary>
</metric>
<metric name="FormElementUserModifications">
<summary>
Number of times a user focused on a form element and changed its value.
Consecutive value changes on the same form element are not counted,
neither are JS invoked changes. Also, re-focusing a form element and
changing its value is only counted if another form element's value was
changed in the meantime.
</summary>
</metric>
<metric name="FormTypes">
<summary>
Type of form. Stored as bitvector. A set ith bit implies enum FormType's
ith type was detected. Multiple types are possible.
</summary>
</metric>
</event>
<event name="Autofill.RepeatedServerTypePredictionRationalized">
<owner>parastoog@chromium.org</owner>
<summary>
Recorded when a field type predicted by server is rationalized because of
repetition.
</summary>
<metric name="FieldNewOverallType">
<summary>
Field's overall |ServerFieldType| after rationalization. See
|AutofillField.GetStorableType()|.
</summary>
</metric>
<metric name="FieldOldOverallType">
<summary>
Field's overall |ServerFieldType| before rationalization. See
|AutofillField.GetStorableType()|.
</summary>
</metric>
<metric name="FieldSignature">
<summary>
The signature of the field. This is the hash identifier used to denote
this field for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="FieldTypeGroup">
<summary>
Field's |FieldTypeGroup|. See |AutofillType.group()|.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form. This is the hash identifier used to denote this
form for query and voting purposes. See
components/autofill/core/common/signatures_util.cc for more details.
</summary>
</metric>
<metric name="HeuristicType">
<summary>
Field's |ServerFieldType| based on heuristics. See
|AutofillField.heuristic_type()|.
</summary>
</metric>
<metric name="HtmlFieldMode">
<summary>
Whether the field's autocomplete hint specified 'billing' or 'shipping'.
See |AutofillField.html_mode()|.
</summary>
</metric>
<metric name="HtmlFieldType">
<summary>
Field's autocomplete field type hint. See |AutofillField.html_type()|.
</summary>
</metric>
<metric name="ServerType">
<summary>
Field's |ServerFieldType| returned by server. See
|AutofillField.server_type()|.
</summary>
</metric>
</event>
<event name="Autofill.Sectioning">
<owner>fleimgruber@google.com</owner>
<owner>schwering@google.com</owner>
<summary>
Recorded after sectioning is performed when the server classification
arrived, and only when `AutofillUseParameterizedSectioning` is enabled.
</summary>
<metric name="FormSignature">
<summary>
A 10-bit hash of the form's signature.
</summary>
</metric>
<metric name="SectioningSignature">
<summary>
A 10-bit hash of the form's computed sections.
</summary>
</metric>
</event>
<event name="Autofill.SelectedMaskedServerCard">
<obsolete>
Deprecated 2/2019
</obsolete>
<owner>jiahuiguo@google.com</owner>
<metric name="MillisecondsSinceFormParsed">
<summary>
Obsolete.
Time since form parse.
</summary>
</metric>
</event>
<event name="Autofill.SuggestionFilled">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when user selects a suggestion and we fill the form with that
suggestion.
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form.
</summary>
</metric>
<metric name="IsForCreditCard">
<summary>
True for credit card forms, false for address/profile forms.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
<metric name="RecordType">
<summary>
Whether the suggestion was from a local card/autofill profile or from a
server card/autofill profile.
</summary>
</metric>
</event>
<event name="Autofill.SuggestionsShown">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when a suggestion is shown to user.
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form.
</summary>
</metric>
<metric name="HeuristicType">
<summary>
Field's |ServerFieldType| based on heuristics. See
|AutofillField.heuristic_type()|.
</summary>
</metric>
<metric name="HtmlFieldType">
<summary>
Field's autocomplete field type hint. See |AutofillField.html_type()|.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
<metric name="ServerType">
<summary>
Field's |ServerFieldType| returned by server. See
|AutofillField.server_type()|.
</summary>
</metric>
</event>
<event name="Autofill.TextFieldDidChange">
<owner>jiahuiguo@google.com</owner>
<summary>
Recorded when user edits a text field. The text field may have been
autofilled.
</summary>
<metric name="FieldSignature">
<summary>
The signature of the field
</summary>
</metric>
<metric name="FieldTypeGroup">
<summary>
Field's |FieldTypeGroup|. See |AutofillType.group()|.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form.
</summary>
</metric>
<metric name="HeuristicType">
<summary>
Field's |ServerFieldType| based on heuristics. See
|AutofillField.heuristic_type()|.
</summary>
</metric>
<metric name="HtmlFieldMode">
<summary>
Whether the field's autocomplete hint specified 'billing' or 'shipping'.
See |AutofillField.html_mode()|.
</summary>
</metric>
<metric name="HtmlFieldType">
<summary>
Field's autocomplete field type hint. See |AutofillField.html_type()|.
</summary>
</metric>
<metric name="IsAutofilled">
<summary>
True if the field was autofilled. See |AutofillField.is_autofilled|.
</summary>
</metric>
<metric name="IsEmpty">
<summary>
True if the field was empty. See |AutofillField.IsEmpty()|.
</summary>
</metric>
<metric name="MillisecondsSinceFormParsed">
<summary>
Time since form parse.
</summary>
</metric>
<metric name="ServerType">
<summary>
Field's |ServerFieldType| returned by server. See
|AutofillField.server_type()|.
</summary>
</metric>
</event>
<event name="Autofill2.FieldInfo">
<owner>battre@chromium.org</owner>
<owner>chrome-autofill-team@google.com</owner>
<summary>
All information about a specific field, recorded at form submission or form
destruction time (whatever comes first).
</summary>
<metric name="AutofillSkippedStatus">
<summary>
Whether filling the field was skipped during autofill, and if it was
skipped, what the skipping reasons were. Recorded as a DenseSet of
|SkipStatus|.
</summary>
</metric>
<metric name="FieldSessionIdentifier">
<summary>
A random variable assigned to a specific instance of a form control (e.g.
a HTML input element). This should be globally unique and suitable for
distinguishing fields. Two different users would have different values.
For the same user, the same field in the same form in two different tabs
would have two different values.
</summary>
</metric>
<metric name="FieldSignature">
<summary>
The signature of the field, a 10 bit hash value (0-1021) of the field name
and field type used to denote this field for query and voting purposes.
</summary>
</metric>
<metric name="FilledValueWasModified" enum="Boolean">
<summary>
Whether the user modified a field after autofilling/autocompleting it.
</summary>
</metric>
<metric name="FormControlType" enum="AutofillFormControlType">
<summary>
A form control type of a web form-associated element. We only list the
very common ones that are seen in autofill, such as text, textarea,
checkbox, radio, select-one, see |autofill::FormControlType|.
</summary>
</metric>
<metric name="FormSessionIdentifier">
<summary>
A random variable assigned to a specific instance of a HTML form in a
specific renderer. This should be globally unique and suitable for
counting distinct forms. Two different users would have different values.
A single user loading the same form in two different tabs would have two
different values. This is used to link the fields to a form in
Autofill2.FormSummary.
</summary>
</metric>
<metric name="HadTypedOrFilledValueAtSubmission" enum="Boolean">
<summary>
Whether there was a value after user typed or autofilled in the field at
form submission or form destruction time.
</summary>
</metric>
<metric name="HadValueBeforeFilling" enum="Boolean">
<summary>
Whether there was a value before autofill in the field.
</summary>
</metric>
<metric name="HeuristicType" enum="AutofillServerFieldType">
<summary>
There are multiple heuristic classification strategies working in
parallel. This type is predicted from the active pattern source.
</summary>
</metric>
<metric name="HeuristicTypeDefault" enum="AutofillServerFieldType">
<summary>
The type of the field predicted from the source of local heuristics on the
client, which uses patterns applied for most users, the types are from
|autofill::ServerFieldType|.
</summary>
</metric>
<metric name="HeuristicTypeExperimental" enum="AutofillServerFieldType">
<summary>
The type of the field predicted from the heuristics that uses experimental
patterns, the types are from |autofill::ServerFieldType|.
</summary>
</metric>
<metric name="HeuristicTypeLegacy" enum="AutofillServerFieldType">
<summary>
The type of the field predicted from patterns whose stability is above
suspicion, the types are from |autofill::ServerFieldType|.
</summary>
</metric>
<metric name="HeuristicTypeNextGen" enum="AutofillServerFieldType">
<summary>
The type of the field predicted from the heuristics that uses patterns
only for non-user-visible metrics, one step before experimental, the types
are from |autofill::ServerFieldType|.
</summary>
</metric>
<metric name="HtmlFieldMode" enum="AutocompleteHtmlFieldMode">
<summary>
The mode according to the autocomplete attribute of a field. Only set if a
field has a valid autocomplete attribute. Currently this is used to
specify if the field is part of the billing or shipping address. See
autofill::mojom::HtmlFieldMode.
</summary>
</metric>
<metric name="HtmlFieldType" enum="AutocompleteHtmlFieldType">
<summary>
The field type specified in the autocomplete attribute of the field. Only
set if a field has a valid autocomplete attribute. See
autofill::mojom::HtmlFieldType.
</summary>
</metric>
<metric name="IsFocusable" enum="Boolean">
<summary>
Whether the field is focusable to the user. This is an approximation of
visibility with false positives.
</summary>
</metric>
<metric name="OverallType" enum="AutofillServerFieldType">
<summary>
The final field type from the list of |autofill::ServerFieldType| that we
choose after rationalization, which is used to determine the autofill
suggestion when the user triggers autofilling.
</summary>
</metric>
<metric name="RankInFieldSignatureGroup">
<summary>
If multiple fields have the same signature, this indicates the position
within this set of fields. This allows us to understand problems related
to duplicated field signatures.
</summary>
</metric>
<metric name="SectionId">
<summary>
A single HTML form can consist of multiple sections. A section is a set of
fields that are filled together. For example a single form can contain a
shipping and a billing address. Each of those corresponds to one section.
The sections are mapped to consecutive natural numbers starting at 1. The
section IDs are unique per form.
</summary>
</metric>
<metric name="ServerPredictionSource1" enum="AutofillServerPredictionSource">
<summary>
The major source of predictions from the Autofill crowdsourced server, see
AutofillQueryResponse::FormSuggestion::FieldSuggestion::FieldPrediction::Source.
</summary>
</metric>
<metric name="ServerPredictionSource2" enum="AutofillServerPredictionSource">
<summary>
The additional source of predictions from the Autofill crowdsourced server
if there is an additional prediction, see
AutofillQueryResponse::FormSuggestion::FieldSuggestion::FieldPrediction::Source.
</summary>
</metric>
<metric name="ServerType1" enum="AutofillServerFieldType">
<summary>
The type of the field predicted from the Autofill crowdsourced server from
majority voting (and some more complex stuff). The types are from
|autofill::ServerFieldType|.
</summary>
</metric>
<metric name="ServerType2" enum="AutofillServerFieldType">
<summary>
The additional type of the field predicted from the Autofill crowdsourced
server if there is an additional prediction. The types are from
|autofill::ServerFieldType|.
</summary>
</metric>
<metric name="ServerTypeIsOverride" enum="Boolean">
<summary>
This is an annotation for server predicted field types which indicates
that a manual override defines the server type. This allows us to assess
the impact of server overrides and detect possible problems with it.
</summary>
</metric>
<metric name="SuggestionWasAccepted" enum="Boolean">
<summary>
Whether the suggestion was accepted. This is only set for a field where a
suggestion was shown and accepted by the user. It is not the same as
autofilled, which is true for all the fields that were filled. More than
one field can have an accepted suggestion because the form can be split
into multiple sections (e.g. shipping and billing address) or because the
user triggers autofill multiple times.
</summary>
</metric>
<metric name="SuggestionWasAvailable" enum="Boolean">
<summary>
Whether there was a suggestion available for the field from user data.
This is only set for a field that was focused by the user.
</summary>
</metric>
<metric name="SuggestionWasShown" enum="Boolean">
<summary>
Whether a suggestion popup was ever shown on this field (i.e. the field
had focus and user had data on file).
</summary>
</metric>
<metric name="TypeChangedByRationalization" enum="Boolean">
<summary>
Whether the field's type was changed by running the rationalization.
</summary>
</metric>
<metric name="UserTypedIntoField" enum="Boolean">
<summary>
Whether the user ever typed into the field (regardless of autofill).
</summary>
</metric>
<metric name="WasAutofilled" enum="Boolean">
<summary>
Whether the field was ever filled by autofill. This applies to all the
fields that were autofilled, not just the field that was clicked. If a
fill operation did not change the value of a field because the old value
matches the filled value, this is still recorded as a WasAutofilled =
true.
</summary>
</metric>
<metric name="WasFocused" enum="Boolean">
<summary>
Whether the user ever focused on the field.
</summary>
</metric>
<metric name="WasRefill" enum="Boolean">
<summary>
Whether the form was refilled by autofill.
</summary>
</metric>
</event>
<event name="Autofill2.FormSummary">
<owner>battre@chromium.org</owner>
<owner>chrome-autofill-team@google.com</owner>
<summary>
Information recorded for a HTML form element on the HTML page, recorded at
form submission or form destruction time (whatever comes first).
</summary>
<metric name="AutofillFormEvents">
<summary>
A bit vector of some autofill form events that records a funnel of this
autofill form. The autofill form events are from an enum list specifying
the possible status of the autofill forms, such as if a dropdown with
suggestions was shown, if the user interacted with a field in the form.
Some of the events are triggered separately for address and credit card
forms, e.g. if all the fillable fields in the credit card forms were
filled. New form events can be added over time and a form can have
multiple form events. This bit vector stored only events 0..63.
</summary>
</metric>
<metric name="AutofillFormEvents2">
<summary>
A bit vector of some autofill form events that records a funnel of this
autofill form. This contains the entries 64...127 shifted right by 64
bits.
</summary>
</metric>
<metric name="FormSessionIdentifier">
<summary>
A random variable assigned to a specific instance of a HTML form in a
specific renderer. This should be globally unique and suitable for
counting distinct forms. Two different users would have different values.
A single user loading the same form in two different tabs would have two
different values. This is used to link the fields in this form in
Autofill2.FieldInfo.
</summary>
</metric>
<metric name="FormSignature">
<summary>
The signature of the form, which is a 10-bit hash of the form's domain,
name and all the supported form fields (including empty names).
</summary>
</metric>
<metric name="IsInMainframe" enum="Boolean">
<summary>
This indicates whether the form is located in the main frame or in an
iframe. A cross-origin autofill is prevented only because shared-autofill
is disabled in the field's frame. Shared-autofill is a policy-controlled
feature by which a frame can allow a child-frame to be autofilled across
origin. We record the url of the main frame not the iframe even if the
form is in the iframe.
</summary>
</metric>
<metric name="MillisecondsFromFirstInteratctionUntilSubmission">
<summary>
The time interval from first interaction on the form to form submission in
ms in exponential buckets from |GetSemanticBucketMinForDurationTiming()|.
</summary>
</metric>
<metric name="MillisecondsFromFormParsedUntilSubmission">
<summary>
The time interval from form parse to form submission in ms in exponential
buckets from |GetSemanticBucketMinForDurationTiming()|.
</summary>
</metric>
<metric name="SampleRate">
<summary>
A sampling rate is a precomputed positive integer and is applied to each
form and adaptive to the popularity of forms. The most popular forms are
classified into a `very popular` category and maybe apply a 1:100 sampling
while the less popular forms have a sampling of 1:1. If the sampling is
1:X, this sample rate value stores the `X`.
</summary>
</metric>
<metric name="WasSubmitted" enum="Boolean">
<summary>
Whether the form was submitted.
</summary>
</metric>
</event>
<event name="BackForwardCacheDisabledForRenderFrameHostReason">
<owner>altimin@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<summary>
Recorded at a history commit for each reason passed to
BackForwardCache::DisableForRenderFrameHost. The source IDs match with the
source IDs of HistoryNavigation events.
</summary>
<metric name="Reason"
enum="BackForwardCacheDisabledForRenderFrameHostReasonShort">
<obsolete>
Deprecated as of 03/2021. Replaced with Reason2.
</obsolete>
<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. One history navigation can emit multiple reasons,
and these reasons are recorded as multiple events with the same source ID
based on the navigation ID.
</summary>
</metric>
<metric name="Reason2"
enum="BackForwardCacheDisabledForRenderFrameHostReason2">
<summary>
For history navigations, records the reason passed to
BackForwardCache::DisableForRenderFrameHost calls. The reason is specified
as a 48-bit int representing the source (blink or an embedder) and a
source-specific 16-bit int representing the reason specific to that
source.
The metric is recorded when a history navigation commits and emits a
sample for each reason. One history navigation can emit multiple reasons,
and these reasons are recorded as multiple events with the same source ID
based on the navigation ID.
</summary>
</metric>
</event>
<event name="BackForwardCacheDisallowActivationReason">
<owner>altimin@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<owner>fergal@chromium.org</owner>
<summary>
Recorded at a history commit for each reason passed to
RenderFrameHost::IsInactiveAndDisallowActivation. The source IDs match with
the source IDs of HistoryNavigation events.
</summary>
<metric name="Reason" enum="InactiveFrameDisallowActivationReason">
<summary>
For history navigations, records the reason passed to
RenderFrameHost::IsInactiveAndDisallowActivation.
The metric is recorded when a history navigation commits and emits a
sample for each reason. One history navigation can emit multiple reasons,
and these reasons are recorded as multiple events with the same source ID
based on the navigation ID.
</summary>
</metric>
</event>
<event name="BackgroundFetch">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
A BackgroundFetch event is logged before a background fetch is started from
a document context.
</summary>
<metric name="DeniedDueToPermissions">
<summary>
Boolean for whether the background fetch was denied due to permission.
This includes only the content setting permission.
</summary>
</metric>
<metric name="DownloadTotal">
<summary>
The value of downloadTotal provided with the background fetch. This is the
number of bytes that the developer expects to be downloaded with the
background fetch. This number is exponentially bucketed for privacy
reasons, and uses the UKM GetExponentialBucketMin method with a value of
2.0 for spacing.
</summary>
</metric>
<metric name="HasTitle">
<summary>
Boolean for whether a title was provided with the background fetch.
</summary>
</metric>
<metric name="NumIcons">
<summary>
Count of icons provided with the background fetch.
</summary>
</metric>
<metric name="NumRequestsInFetch">
<summary>
Number of requests in the background fetch. This number is exponentially
bucketed for privacy reasons, and uses the UKM GetExponentialBucketMin
method with a value of 2.0 for spacing.
</summary>
</metric>
<metric name="RatioOfIdealToChosenIconSize">
<summary>
Ratio of the ideal icon to the chosen icon size, times hundred. This will
be set to -1 if either ideal icon size is 0, or if none of the provided
icons are suitable.
</summary>
</metric>
</event>
<event name="BackgroundFetchDeletingRegistration">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
A BackgroundFetchDeletingRegistration event is logged when a background
fetch job is being deleted.
</summary>
<metric name="UserInitiatedAbort">
<summary>
Boolean for whether the background fetch job was cancelled from the UI.
</summary>
</metric>
</event>
<event name="BackgroundSyncCompleted">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Logged when a Background Sync one-shot registration is completed.
</summary>
<metric name="MaxAttempts">
<summary>
Integer value of the maximum number of allowed retries.
</summary>
</metric>
<metric name="NumAttempts">
<summary>
Integer value of the number of retries / sync events dispatched.
</summary>
</metric>
<metric name="Status">
<summary>
The enum value of the completion status, defined in
blink::ServiceWorkerStatusCode.
</summary>
</metric>
</event>
<event name="BackgroundSyncRegistered">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Logged when a one-shot Background Sync registration is created.
</summary>
<metric name="CanFire">
<summary>
Boolean for whether a sync event can be immediately dispatched for this
registration.
</summary>
</metric>
<metric name="IsReregistered">
<summary>
Boolean for whether this is a duplicate registration.
</summary>
</metric>
</event>
<event name="Badging">
<owner>phillis@chromium.org</owner>
<owner>cmumford@chromium.org</owner>
<summary>
Metrics that measure the use of Badging API
</summary>
<metric name="UpdateAppBadge" enum="UpdateAppBadgeTypes">
<summary>
Logged when navigator.setAppBadge or navigator.clearAppBadge is called.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Blink.AutomaticLazyLoadFrame" singular="True">
<owner>chikamune@google.com</owner>
<owner>sisidovski@google.com</owner>
<owner>kouhei@google.com</owner>
<summary>
Records metrics for LazyAds and LazyEmbeds Interventions. LazyAds and
LazyEmbeds Interventions will automatically apply lazy loading to ad's
frames and embedded web applications so that we can automatically improve
Core Web Vitals for many sites. These metrics help us to know to what degree
these Interventions can improve Core Web Vitals when the sites are eligible
for LazyAds or LazyEmbeds.
</summary>
<metric name="LazyAdsFrameCount">
<summary>
Records the total number of per-page ad frames that are eligible for the
LazyAds interventions by AutomaticLazyFrameLoadingToAds. The exponential
bucketing is applied for privacy reasons by using
ukm::GetExponentialBucketMinForCounts1000().
</summary>
</metric>
<metric name="LazyEmbedsFrameCount">
<summary>
Records the total number of per-page frames that are eligible for the
LazyEmbeds interventions by AutomaticLazyFrameLoadingToEmbeds. The
exponential bucketing is applied for privacy reasons by using
ukm::GetExponentialBucketMinForCounts1000().
</summary>
</metric>
</event>
<event name="Blink.ContextMenu.ImageSelection">
<obsolete>
No longer recorded after August 2022 launch of the feature.
</obsolete>
<owner>flackr@chromium.org</owner>
<owner>blink-interactions-team@google.com</owner>
<summary>
Sent when a user long presses or right clicks a document (and that an image
is found). Requires that the `EnablePenetratingImageSelection` feature is
enabled together with a `logUkm` specific finch param.
</summary>
<metric name="Outcome" enum="ImageSelectionOutcome">
<summary>
Emits an integer id for a selection corresponding to the
ImageSelectionOutcome enum defined in Blink's context_menu_controller.h.
</summary>
</metric>
</event>
<event name="Blink.DeveloperMetricsRare">
<owner>schenney@chromium.org</owner>
<owner>chrome-webdev-metrics@google.com</owner>
<summary>
Collects data for a subset of UseCounter features of interest to the Web
Platform Developer Metrics team due to their recent launch or potential for
spec changes. Features reported in this set should be rare, appearing in
fewer than 5% of page loads.
</summary>
<metric name="Feature" enum="FeatureObserver">
<summary>
Opt-in UseCounter feature, listed in
components/page_load_metrics/browser/observers/use_counter/webdev_metrics_ukm_features.cc
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsMainFrameFeature" enum="Boolean">
<summary>
Emits True(1) or False(0) to indicate whether the Feature recorded is in
the main frame or not.
</summary>
</metric>
</event>
<event name="Blink.FedCm">
<owner>yigu@chromium.org</owner>
<owner>web-identity-eng@google.com</owner>
<summary>
Records performance metrics for FedCM(Federated Credential Management) API.
</summary>
<metric name="AutoReauthn.BlockedByContentSettings" enum="Boolean">
<summary>
Records whether the FedCM auto re-authn call is blocked because the auto
re-authn content settings permission is disabled. Records at most one
sample per FedCM API with auto re-authn enabled: some failures could occur
before this metric is recorded.
</summary>
</metric>
<metric name="AutoReauthn.BlockedByEmbargo" enum="Boolean">
<summary>
Records whether the FedCM auto re-authn call is blocked because the auto
re-authn is under embargo, i.e. due to cooldown. Records at most one
sample per FedCM API with auto re-authn enabled: some failures could occur
before this metric is recorded.
</summary>
</metric>
<metric name="AutoReauthn.ReturningAccounts" enum="FedCmReturningAccounts">
<summary>
Records whether there was zero, one, or multiple returning accounts when a
site calls the FedCM API with autoReauthn: true. Records at most one
sample per failed API call: some failures could occur before this metric
is recorded.
</summary>
</metric>
<metric name="AutoReauthn.Succeeded" enum="Boolean">
<summary>
Records whether auto re-authn checks succeeded or not. The count would
provide roughly the number of FedCM re-authn attempts, the true count
would provide the number of times the re-authn UI is shown to the user,
and the false count would provide the number of attempts where auto
re-authn was blocked for some non-network related reason. Records at most
one sample per FedCM API with auto re-authn enabled: some failures could
occur before this metric is recorded.
</summary>
</metric>
<metric name="AutoReauthn.TimeFromEmbargoWhenBlocked">
<summary>
Records the amount of time that has passed from the time the FedCM auto
re-authn API was embargoed to the time in which the next call occurs. Only
records a sample when there is an auto re-authn FedCM API call which is
blocked due to embargo. Samples are exponentially bucketed, with a max
bucket of 10 minutes, the embargo duration (see
`kFederatedIdentityAutoReauthnEmbargoDuration`).
</summary>
</metric>
<metric name="FedCmSessionID">
<summary>
Records the session ID associated to the FedCM call for which this event
is recording metrics. Each FedCM call gets a random integer session id,
which helps group UKM events by the session id.
</summary>
</metric>
<metric name="Status.RequestIdToken" enum="FedCmRequestIdTokenStatus">
<summary>
Records the status of a request id token call to the FedCM API.
</summary>
</metric>
<metric name="Status.Revoke" enum="FedCmRevokeStatus">
<obsolete>
Removed June 2022 with the removal of the revoke() method.
</obsolete>
<summary>
Records the status of a revoke call to the FedCM API.
</summary>
</metric>
<metric name="Timing.CancelOnDialog">
<summary>
Records the time (in milliseconds) from when the accounts dialog is shown
to when the user closes the dialog without selecting any account.
</summary>
</metric>
<metric name="Timing.ContinueOnDialog">
<summary>
Records the time (in milliseconds) from when the accounts dialog is shown
to when the user presses the Continue button.
</summary>
</metric>
<metric name="Timing.IdTokenResponse">
<summary>
Records the time (in milliseconds) from when the user presses the Continue
button to when the id token response is received.
</summary>
</metric>
<metric name="Timing.ShowAccountsDialog">
<summary>
Records the time (in milliseconds) from when a call to the API was made to
when the accounts dialog is shown.
</summary>
</metric>
<metric name="Timing.TurnaroundTime">
<summary>
Records the overall time (in milliseconds) from when the API is called to
when the id token response is received.
</summary>
</metric>
</event>
<event name="Blink.FedCmIdp">
<owner>npm@chromium.org</owner>
<owner>web-identity-eng@google.com</owner>
<summary>
Records performance metrics for FedCM (Federated Credential Management) API.
Recorded when the web developer calls the FedCM API. Individual metrics are
recorded eagerly, whenever the value has been computed.
This event uses the specific WEB_IDENTITY ukm_source_id which is generated
from the identity provider's origin.
</summary>
<metric name="FedCmSessionID">
<summary>
Records the session ID associated to the FedCM call for which this event
is recording metrics. Each FedCM call gets a random integer session id,
which helps group UKM events by the session id.
</summary>
</metric>
<metric name="Status.RequestIdToken" enum="FedCmRequestIdTokenStatus">
<summary>
Records the status of a request id token call to the FedCM API.
</summary>
</metric>
<metric name="Status.SignInStateMatch" enum="FedCmSignInStateMatchStatus">
<summary>
Records whether user sign-in states between IDP and browser match after
browser receives an account list from IDP prior to showing UI.
</summary>
</metric>
<metric name="Timing.CancelOnDialog">
<summary>
Records the time (in milliseconds) from when the accounts dialog is shown
to when the user closes the dialog without selecting any account.
</summary>
</metric>
<metric name="Timing.ContinueOnDialog">
<summary>
Records the time (in milliseconds) from when the accounts dialog is shown
to when the user presses the Continue button.
</summary>
</metric>
<metric name="Timing.IdTokenResponse">
<summary>
Records the time (in milliseconds) from when the user presses the Continue
button to when the id token response is received.
</summary>
</metric>
<metric name="Timing.ShowAccountsDialog">
<summary>
Records the time (in milliseconds) from when a call to the API was made to
when the accounts dialog is shown.
</summary>
</metric>
<metric name="Timing.TurnaroundTime">
<summary>
Records the overall time (in milliseconds) from when the API is called to
when the id token response is received.
</summary>
</metric>
</event>
<event name="Blink.FindInPage" singular="True">
<owner>vmpstr@chromium.org</owner>
<owner>chrishtr@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Logged once per page; indicates the type of find-in-page behaviors users
utilizied.
</summary>
<metric name="BeforematchExpandedHiddenMatchable">
<summary>
Boolean indicating that a find-in-page match was hidden but became visible
after the beforematch event was fired.
</summary>
</metric>
<metric name="DidHaveRenderSubtreeMatch">
<summary>
Boolean indicating whether there was an active match in content-visibility
unrendered elements.
</summary>
</metric>
<metric name="DidSearch">
<summary>
Boolean indicating that find-in-page happened.
</summary>
</metric>
</event>
<event name="Blink.HTMLParsing">
<owner>schenney@chromium.org</owner>
<owner>dom-dev@chromium.org</owner>
<summary>
Logged once per page load, to capture information about invocation of the
HTMLDocumentParser for the initial document load. Does not include other
aspects of document parsing, such as style sheet parsing or script execution
during parsing. Also does not include innerText parsing.
This event is not recorded on machines with low-resolution clocks.
</summary>
<metric name="ChunkCount">
<summary>
The number of chunks parsed while loading the page. Each chunk represents
a piece of the HTML content that can be loaded without blocking or
yielding.
</summary>
</metric>
<metric name="ParsingTimeMax">
<summary>
The maximum time used to parse a single chunk before being blocked,
yielding or completing, in microseconds.
</summary>
</metric>
<metric name="ParsingTimeMin">
<summary>
The minimum time used to parse a single chunk before being blocked,
yielding or completing, in microseconds.
</summary>
</metric>
<metric name="ParsingTimeTotal">
<summary>
The total amount of time spent in the HTMLDocumentParser parsing the page,
in microseconds.
</summary>
</metric>
<metric name="TokensParsedAverage">
<summary>
The average number of tokens parsed across all chunks.
</summary>
</metric>
<metric name="TokensParsedMax">
<summary>
The maximum number of tokens parsed as a chunk.
</summary>
</metric>
<metric name="TokensParsedMin">
<summary>
The minimum number of tokens parsed as a chunk.
</summary>
</metric>
<metric name="TokensParsedTotal">
<summary>
The total number of tokens parsed across all chunks.
</summary>
</metric>
<metric name="YieldedTimeAverage">
<summary>
The average time between parsing of two chunks, in microseconds. Will be
zero if only one chunk was parsed.
</summary>
</metric>
<metric name="YieldedTimeMax">
<summary>
The minimum time between parsing of two chunks, in microseconds. Will be
zero if only one chunk was parsed.
</summary>
</metric>
<metric name="YieldedTimeMin">
<summary>
The maximum time between parsing of two chunks, in microseconds. Will be
zero if only one chunk was parsed.
</summary>
</metric>
</event>
<event name="Blink.PageLoad">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
The aggregated time spent in each metric's component from creation of the
local frame view to the First Contentful Paint signal. The event is reported
once per page load when First Contentful Paint is signaled.
This event is not recorded on machines with low-resolution clocks.
</summary>
<metric name="Accessibility">
<summary>
The time spent in accessibility tree code, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="AnchorElementMetricsIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for anchor elements, in
microseconds.
</summary>
</metric>
<metric name="Animate">
<summary>
The time spent in main frame animation, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="Compositing">
<obsolete>
Obsolete as of http://crrev.com/794384 and M86.
</obsolete>
<summary>
The time spent in main thread compositing, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="CompositingAssignments">
<obsolete>
No longer recorded after M97 with the launch of CompositeAfterPaint.
</obsolete>
<summary>
The time spent in main thread compositing assignments, between navigation
and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="CompositingCommit">
<summary>
The time spent committing main thread compositing results, between
navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="CompositingInputs">
<summary>
The time spent in main thread compositing inputs, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="ContentDocumentUpdate">
<summary>
The time spent doing forced document updates due to update sub-document
content, between navigation and First Contentful Paint, in microseconds.
Includes SVG, Canvas and Plugins.
</summary>
</metric>
<metric name="DisplayLockIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for
DisplayLockDocumentState, in microseconds.
</summary>
</metric>
<metric name="ForcedStyleAndLayout">
<summary>
The time spent in forced style recalc and layouts, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="HandleInputEvents">
<summary>
The time spent in processing rAF-aligned input for the main frame, between
navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="HitTestDocumentUpdate">
<summary>
The time spent updating the document in preparation for a hit test for the
main frame, between navigation and First Contentful Paint, in
microseconds.
</summary>
</metric>
<metric name="ImplCompositorCommit">
<summary>
The time spent committing layer tree impl data in the compositor thread,
between navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="IntersectionObservation">
<summary>
The time spent computing intersection observer state, between navigation
and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="IntersectionObservationInternalCount">
<summary>
The total number of times a blink-internal IntersectionObservation was
recomputed between navigation and First Contentful Paint.
</summary>
</metric>
<metric name="IntersectionObservationJavascriptCount">
<summary>
The total number of times a javascript-instantiated
IntersectionObservation was recomputed between navigation and First
Contentful Paint.
</summary>
</metric>
<metric name="JavascriptDocumentUpdate">
<summary>
The time spent doing forced document updates due to generic Javascript API
requests, between navigation and First Contentful Paint, in microseconds.
Note this primarily captures Javascript that explicitly requires Style and
Layout, but not implicit requests such as through setting focus or scroll
position.
</summary>
</metric>
<metric name="JavascriptIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for javascript observers, in
microseconds.
</summary>
</metric>
<metric name="Layout">
<summary>
The time spent in layout document lifecycle work, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="LazyLoadIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for lazy loading, in
microseconds.
</summary>
</metric>
<metric name="MainFrame">
<summary>
The time spent in ProxyMain::BeginMainFrame, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="MediaIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for media elements, in
microseconds.
</summary>
</metric>
<metric name="Paint">
<summary>
The time spent in paint document lifecycle work, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="ParseStyleSheet">
<summary>
The time spent parsing style sheets.
</summary>
</metric>
<metric name="PrePaint">
<summary>
The time spent in pre-paint document lifecycle work, between navigation
and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="ProxyCommit">
<obsolete>
Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit
metrics.
</obsolete>
<summary>
The time spent committing main thread to impl layer tree information,
between navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="ScrollingCoordinator">
<obsolete>
Merged into CompositingCommit in http://crrev.com/815947 in M88.
</obsolete>
<summary>
The time spent in ScrollingCoordinator, between navigation and First
Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="ServiceDocumentUpdate">
<summary>
The time spent doing forced document updates due to browser requested
actions, such as accessibility, intersection observer or spell checking,
between navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="Style">
<summary>
The time spent in style document lifecycle work, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="StyleAndLayout">
<obsolete>
Removed January 2020 in favor of separate Style and Layout metrics.
</obsolete>
<summary>
The time spent in layout and style document lifecycle work, between
navigation and First Contentful Paint, in microseconds. Will be obsolete
in M-82.
</summary>
</metric>
<metric name="UpdateLayers">
<summary>
The time spent in for LayerTreeHost::UpdateLayers, between navigation and
First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="UpdateViewportIntersection">
<summary>
Time spent computing internal geometry information about iframes, between
navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
<metric name="UserDrivenDocumentUpdate">
<summary>
The time spent doing forced document updates due to a user action such as
input, find-in-page or printing, between navigation and First Contentful
Paint, in microseconds.
As of 04/2023, updates for scrolling are included in this metric.
</summary>
</metric>
<metric name="VisualUpdateDelay">
<summary>
Time elapsed, in microseconds, between when an animation update is first
scheduled and when the resulting BeginMainFrame starts.
</summary>
</metric>
<metric name="WaitForCommit">
<summary>
The time spent waiting for the compositor thread to begin processing a
commit, between navigation and First Contentful Paint, in microseconds.
</summary>
</metric>
</event>
<event name="Blink.PaintTiming" singular="True">
<owner>npm@chromium.org</owner>
<owner>sullivan@chromium.org</owner>
<summary>
Paint timing metrics recorded in Blink, usually used as debugging metrics
for PaintTiming metrics in the PageLoad event.
</summary>
<metric name="LCPDebugging.HasViewportImage" enum="Boolean">
<summary>
Records whether a page has an image whose size equals the full viewport.
Recorded when the LCP algorithm has stopped.
</summary>
</metric>
</event>
<event name="Blink.Script.AsyncScripts" singular="True">
<owner>dom@chromium.org</owner>
<owner>chrome-loading@google.com</owner>
<summary>
Metrics associated with the async script count associated with a document,
recorded when the HTML parsing of a mainframe has completed.
</summary>
<metric name="AsyncScriptCount">
<obsolete>
Deprecated 04/2022.
</obsolete>
<summary>
The total number of async scripts associated with a document at the time
parsing has finished.
</summary>
</metric>
</event>
<event name="Blink.UpdateTime">
<owner>schenney@chromium.org</owner>
<owner>paint-dev@chromium.org</owner>
<summary>
Metrics that measure various update times in Blink. This includes paint,
compositing, and layout update times. This event is reported once in the
first main frame update after First Contentful Paint, with data from a
randomly chosen frame up to and including First Contentful Paint, and once
on LocalFrameView destruction with data from a random frame between
FirstContentfulPaint and shutdown.
This event is not recorded on machines with low-resolution clocks.
</summary>
<metric name="Accessibility">
<summary>
The time taken for accessibility for the main frame in microseconds during
the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="AccessibilityBeginMainFrame">
<summary>
The total main frame time used in accessibility, in microseconds.
</summary>
</metric>
<metric name="AnchorElementMetricsIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for anchor elements, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="AnchorElementMetricsIntersectionObserverBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObservations for
anchor elements, in microseconds.
</summary>
</metric>
<metric name="Animate">
<summary>
The time taken for main frame animation in microseconds during the sampled
frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Animate.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken for main frame animation in microseconds in the
event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Animate.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken for main frame animation to the total time for the main frame. An
int in the range [0,100].
</summary>
</metric>
<metric name="Animate.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken for main frame animation in microseconds in
the event period.
</summary>
</metric>
<metric name="Animate.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever used for main frame animation
within the sample window. An int in the range [0,100].
</summary>
</metric>
<metric name="AnimateBeginMainFrame">
<summary>
The total main frame time used by by main thread animations, in
microseconds.
</summary>
</metric>
<metric name="AnimatePercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with AnimateBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by main thread animations. An
int in the range [0,100].
</summary>
</metric>
<metric name="Compositing">
<obsolete>
Obsolete as of http://crrev.com/794384.
</obsolete>
<summary>
The time taken by the compositing phase in microseconds during the sampled
frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Compositing.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the compositing phase in microseconds in the
event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Compositing.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken in the compositing phase to the total time for the main frame. An
int in the range [0,100].
</summary>
</metric>
<metric name="Compositing.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by the compositing phase in microseconds in
the event period.
</summary>
</metric>
<metric name="Compositing.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever used by the compositing phase
within the sample window. An int in the range [0,100].
</summary>
</metric>
<metric name="CompositingAssignments">
<obsolete>
No longer recorded after M97 with the launch of CompositeAfterPaint.
</obsolete>
<summary>
The time taken by compositing assignments in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositingAssignmentsBeginMainFrame">
<obsolete>
No longer recorded after M97 with the launch of CompositeAfterPaint.
</obsolete>
<summary>
The total main frame time used by the compositing assignments phase, in
microseconds.
</summary>
</metric>
<metric name="CompositingAssignmentsPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with
CompositingAssignmentsBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by the compositing assignments
phase. An int in the range [0,100].
</summary>
</metric>
<metric name="CompositingCommit">
<summary>
The time taken by the compositing commit in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositingCommit.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the compositing commit at the end of the blink
lifecycle, in microseconds in the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositingCommit.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken by the compositing commit at the end of the blink lifecycle to the
total time for the main frame. An int in the range [0,100].
</summary>
</metric>
<metric name="CompositingCommit.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by the compositing commit at the end of the
blink lifecycle, in microseconds in the event period.
</summary>
</metric>
<metric name="CompositingCommit.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever taken by the compositing commit at
the end of the blink lifecycle to the total time for the main frame. An
int in the range [0,100].
</summary>
</metric>
<metric name="CompositingCommitBeginMainFrame">
<summary>
The total main frame time used by the compositing commit, in microseconds.
</summary>
</metric>
<metric name="CompositingCommitPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with CompositingCommitBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by the compositing commit. An
int in the range [0,100].
</summary>
</metric>
<metric name="CompositingInputs">
<summary>
The time taken by the compositing inputs phase in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositingInputsBeginMainFrame">
<summary>
The total main frame time used by the compositing inputs phase, in
microseconds.
</summary>
</metric>
<metric name="CompositingInputsPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with CompositingInputsBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by the compositing inputs
phase. An int in the range [0,100].
</summary>
</metric>
<metric name="CompositingPercentage">
<obsolete>
Obsolete as of http://crrev.com/794384.
</obsolete>
<summary>
The percentage of the main frame time used by the compositing phase. An
int in the range [0,100].
</summary>
</metric>
<metric name="ContentDocumentUpdate">
<summary>
The time spent doing forced document updates due to update sub-document
content, during a sampled frame, in microseconds. Includes SVG, Canvas and
Plugins.
</summary>
</metric>
<metric name="ContentDocumentUpdateBeginMainFrame">
<summary>
The time spent doing forced document updates due to update sub-document
content, during the BeginMainFrame block of a sampled frame, in
microseconds. Includes SVG, Canvas and Plugins.
</summary>
</metric>
<metric name="DisplayLockIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for
DisplayLockDocumentState, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DisplayLockIntersectionObserverBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObservations for
DisplayLockDocumentState, in microseconds.
</summary>
</metric>
<metric name="ForcedStyleAndLayout">
<summary>
The time taken by forced style recalc and layouts in microseconds between
the end of the last main frame update and the current sampled frame, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForcedStyleAndLayout.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by all forced style recalcs and layouts in
microseconds in the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForcedStyleAndLayout.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken by forced style recalc and layouts at the end of the blink lifecycle
to the total time for the main frame. An int in the range [0,100].
</summary>
</metric>
<metric name="ForcedStyleAndLayout.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by a forced style recalc and layout in
microseconds in the event period.
</summary>
</metric>
<metric name="ForcedStyleAndLayout.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever taken by forced style recalc and
layouts at the end of the blink lifecycle to the total time for the main
frame. An int in the range [0,100].
</summary>
</metric>
<metric name="ForcedStyleAndLayoutBeginMainFrame">
<summary>
The total main frame time used by forced style updates and layouts, in
microseconds. This metric may include time that is also included in the
AnimateBeginMainFrame metric.
</summary>
</metric>
<metric name="ForcedStyleAndLayoutPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with
ForcedStyleAndLayoutBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by forced style updates and
layouts during the main frame update (not including time outside of the
frame update. This metric may include time that is also included in the
AnimatePercentage metric. An int in the range [0,100].
</summary>
</metric>
<metric name="HandleInputEvents">
<summary>
The time taken to process rAF-aligned input for the main frame in
microseconds during the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="HandleInputEvents.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken to process rAF-aligned input for the main frame in
microseconds in the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="HandleInputEvents.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken to process rAF-aligned input for the main frame to the total time
for the main frame. An int in the range [0,100].
</summary>
</metric>
<metric name="HandleInputEvents.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken to process rAF-aligned input for the main
frame in microseconds in the event period.
</summary>
</metric>
<metric name="HandleInputEvents.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever taken to process rAF-aligned input
for the main frame to the total time for the main frame. An int in the
range [0,100].
</summary>
</metric>
<metric name="HandleInputEventsBeginMainFrame">
<summary>
The total main frame time used in processing rAF-aligned input, in
microseconds.
</summary>
</metric>
<metric name="HandleInputEventsPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with HandleInputEventsBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in processing rAF-aligned
input. An int in the range [0,100].
</summary>
</metric>
<metric name="HitTestDocumentUpdate">
<summary>
The time taken to perform hit test document updates for the main frame in
microseconds during the sampled frame. It does not compute the actual hit
test time, rather the style, layout, compositing, etc time to prepare for
the test.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="HitTestDocumentUpdateBeginMainFrame">
<summary>
The total main frame time used in performing hit test document updates, in
microseconds.
</summary>
</metric>
<metric name="HitTestDocumentUpdatePercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with
HitTestDocumentUpdateBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in performing hit test document
updates. An int in the range [0,100].
</summary>
</metric>
<metric name="ImplCompositorCommit">
<summary>
The time spent committing layer tree impl data in the compositor thread,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ImplCompositorCommitBeginMainFrame">
<summary>
The total main frame time spent committing layer tree impl data in the
compositor thread, in microseconds. This should always match
ImplCompositorCommit and serves as a check.
</summary>
</metric>
<metric name="ImplCompositorCommitPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with
ImplCompositorCommitBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time spent committing layer tree impl
data in the compositor thread. An int in the range [0,100].
</summary>
</metric>
<metric name="IntersectionObservation">
<summary>
The time taken to compute intersection observer state for the main frame
in microseconds during the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IntersectionObservation.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken to compute IntersectionObserver observations in
microseconds in the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IntersectionObservation.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken compute IntersectionObserver observations to the total time for the
main frame. An int in the range [0,100].
</summary>
</metric>
<metric name="IntersectionObservation.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken to compute IntersectionObserver observations
in microseconds in the event period.
</summary>
</metric>
<metric name="IntersectionObservation.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever taken to compute
IntersectionObserver observations within the sample window. An int in the
range [0,100].
</summary>
</metric>
<metric name="IntersectionObservationBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObserver
observations, in microseconds.
</summary>
</metric>
<metric name="IntersectionObservationInternalCount">
<summary>
The number of blink-internal IntersectionObservations that were recomputed
during the sampled frame.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IntersectionObservationInternalCountBeginMainFrame">
<summary>
The number of blink-internal IntersectionObservations that were recomputed
during the sampled frame.
</summary>
</metric>
<metric name="IntersectionObservationJavascriptCount">
<summary>
The number of javascript-instantiated IntersectionObservations that were
recomputed during the sampled frame.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IntersectionObservationJavascriptCountBeginMainFrame">
<summary>
The number of javascript-instantiated IntersectionObservations that were
recomputed during the sampled frame.
</summary>
</metric>
<metric name="IntersectionObservationPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with
IntersectionObservationBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in computing intersection
observer state. An int in the range [0,100].
</summary>
</metric>
<metric name="JavascriptDocumentUpdate">
<summary>
The time spent doing forced document updates due to generic Javascript API
requests, during a sampled frame, in microseconds. Note this primarily
captures Javascript that explicitly requires Style and Layout, but not
implicit requests such as through setting focus or scroll position.
</summary>
</metric>
<metric name="JavascriptDocumentUpdateBeginMainFrame">
<summary>
The time spent doing forced document updates due to generic Javascript API
requests, during the BeginMainFrame block of a sampled frame, in
microseconds. Note this primarily captures Javascript that explicitly
requires Style and Layout, but not implicit requests such as through
setting focus or scroll position.
</summary>
</metric>
<metric name="JavascriptIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for javascript observers, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="JavascriptIntersectionObserverBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObservations for
Javascript observers, in microseconds.
</summary>
</metric>
<metric name="Layout">
<summary>
The time taken for layout for the main frame in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LayoutBeginMainFrame">
<summary>
The total main frame time used in layout, in microseconds.
</summary>
</metric>
<metric name="LayoutPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with LayoutBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in layout work. An int in the
range [0,100].
</summary>
</metric>
<metric name="LazyLoadIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for lazy loading, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LazyLoadIntersectionObserverBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObservations for
lazy loading, in microseconds.
</summary>
</metric>
<metric name="MainFrame">
<summary>
The time between a BeginMainFrame and the commit of paint results for the
sampled frame, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MainFrame.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time between a BeginMainFrame and the commit of paint results,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MainFrame.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time between a BeginMainFrame and the commit of paint
results, in microseconds.
</summary>
</metric>
<metric name="MainFrameIsBeforeFCP" enum="Boolean">
<summary>
True if the lifecycle update in this event occurred before FCP (First
Contentful Paint) was registered.
</summary>
</metric>
<metric name="MainFrameReasons">
<summary>
A bitfield representation of the reasons for a main frame update. The
fields are based on the FrameSequenceTrackerType enum, so bitwise and with
the following values to determine if a reason was present:
CompositorAnimation: 1, MainThreadAnimation: 2, PinchZoom: 4, RAF: 8,
TouchScroll: 16, Universal: 32, Video: 64 and WheelScroll: 128.
</summary>
</metric>
<metric name="MediaIntersectionObserver">
<summary>
Time spent computing IntersectionObservations for media elements, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MediaIntersectionObserverBeginMainFrame">
<summary>
The total main frame time used to compute IntersectionObservations for
media elements, in microseconds.
</summary>
</metric>
<metric name="Paint">
<summary>
The time taken to paint for the main frame in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Paint.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the paint phase in microseconds in the event
period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Paint.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken in the paint phase to the total time for the main frame. An int in
the range [0,100].
</summary>
</metric>
<metric name="Paint.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by the paint phase in microseconds in the
event period.
</summary>
</metric>
<metric name="Paint.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever used by the paint phase within the
sample window. An int in the range [0,100].
</summary>
</metric>
<metric name="PaintBeginMainFrame">
<summary>
The total main frame time used in paint, in microseconds.
</summary>
</metric>
<metric name="PaintPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with PaintBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in paint. An int in the range
[0,100].
</summary>
</metric>
<metric name="ParseStyleSheet">
<summary>
The time spent parsing style sheets.
</summary>
</metric>
<metric name="ParseStyleSheetBeginMainFrame">
<summary>
The total main frame time spent parsing style sheets.
</summary>
</metric>
<metric name="PrePaint">
<summary>
The time taken for pre-paint for the main frame in microseconds during the
sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PrePaint.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the pre-paint phase in microseconds in the event
period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PrePaint.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken in the pre-paint phase to the total time for the main frame. An int
in the range [0,100].
</summary>
</metric>
<metric name="PrePaint.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by the pre-paint phase in microseconds in
the event period.
</summary>
</metric>
<metric name="PrePaint.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever used by the pre-paint phase within
the sample window. An int in the range [0,100].
</summary>
</metric>
<metric name="PrePaintBeginMainFrame">
<summary>
The total main frame time used in pre-paint, in microseconds.
</summary>
</metric>
<metric name="PrePaintPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with PrePaintBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used in pre-paint. An int in the
range [0,100].
</summary>
</metric>
<metric name="ProxyCommit">
<obsolete>
Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit
metrics.
</obsolete>
<summary>
The time taken for the proxy to commit to the impl thread in microseconds
during the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ProxyCommitPercentage">
<obsolete>
Removed in M84 in favor of separate ImplCompositorCommit and WaitForCommit
metrics.
</obsolete>
<summary>
The percentage of the main frame time used to commit to the impl thread.
An int in the range [0,100].
</summary>
</metric>
<metric name="ScrollingCoordinator">
<obsolete>
Merged into Blink.MainFrame.CompositingCommitRatio in
http://crrev.com/815947 in M88.
</obsolete>
<summary>
The time taken for scrolling coordinator for the main frame in
microseconds during the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollingCoordinator.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the style and layout phases in microseconds in
the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollingCoordinator.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the event period of the ratio of time taken
to update the scrolling coordinator after painting to the total time for
the main frame, expressed as a percentage. An int in the range [0,100].
</summary>
</metric>
<metric name="ScrollingCoordinator.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time within the event period that was used to update
the ScrollingCoordinator after painting (in microseconds).
</summary>
</metric>
<metric name="ScrollingCoordinator.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame within the event period that was used to
update the ScrollingCoordinator after painting, expressed as a percentage.
An int in the range [0,100].
</summary>
</metric>
<metric name="ScrollingCoordinatorPercentage">
<obsolete>
Merged into Blink.MainFrame.CompositingCommitRatio in
http://crrev.com/815947 in M88.
</obsolete>
<summary>
The percentage of the main frame time used in scrolling coordinator. An
int in the range [0,100].
</summary>
</metric>
<metric name="ServiceDocumentUpdate">
<summary>
The time spent doing forced document updates due to browser requested
actions, such as accessibility, intersection observer or spell checking,
during a sampled frame, in microseconds.
</summary>
</metric>
<metric name="ServiceDocumentUpdateBeginMainFrame">
<summary>
The time spent doing forced document updates due to browser requested
actions, such as accessibility, intersection observer or spell checking,
during the BeginMainFrame block of a sampled frame, in microseconds.
</summary>
</metric>
<metric name="Style">
<summary>
The time taken for style update for the main frame in microseconds during
the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="StyleAndLayout">
<obsolete>
Removed January 2020 in favor of separate Style and Layout metrics.
</obsolete>
<summary>
The time taken for style and layout for the main frame in microseconds
during the sampled frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="StyleAndLayout.Average">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average time taken by the style and layout phases in microseconds in
the event period.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="StyleAndLayout.AverageRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The average over frames within the sample window of the ratio of time
taken to update style and layout to the total time for the main frame. An
int in the range [0,100].
</summary>
</metric>
<metric name="StyleAndLayout.WorstCase">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The longest single time taken by the style and layout phases in
microseconds in the event period.
</summary>
</metric>
<metric name="StyleAndLayout.WorstCaseRatio">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<summary>
The highest proportion of a frame ever used to compute style and layout
within the sample window. An int in the range [0,100].
</summary>
</metric>
<metric name="StyleAndLayoutPercentage">
<obsolete>
Removed January 2020 in favor of separate Style and Layout metrics.
</obsolete>
<summary>
The percentage of the main frame time used in style and layout work. An
int in the range [0,100].
</summary>
</metric>
<metric name="StyleBeginMainFrame">
<summary>
The total main frame time spent updating style information and building
the layout tree, in microseconds.
</summary>
</metric>
<metric name="StylePercentage">
<summary>
The percentage of the main frame time used in style work. An int in the
range [0,100].
</summary>
</metric>
<metric name="UpdateLayers">
<summary>
The time taken for LayerTreeHost::UpdateLayers in microseconds during the
sampled frame
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UpdateLayersBeginMainFrame">
<summary>
The total main frame time spent in LayerTreeHost::UpdateLayer, in
microseconds. This should always match UpdateLayers and serves as a check.
</summary>
</metric>
<metric name="UpdateLayersPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with UpdateLayersBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time used by LayerTreeHost::UpdateLayers.
An int in the range [0,100].
</summary>
</metric>
<metric name="UpdateViewportIntersection">
<summary>
Time spent computing internal geometry information about iframes, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UpdateViewportIntersectionBeginMainFrame">
<summary>
The total main frame time used to compute internal geometry information
about iframes, in microseconds.
</summary>
</metric>
<metric name="UserDrivenDocumentUpdate">
<summary>
The time spent doing forced document updates due to a user action such as
input, find-in-page or printing, during a sampled frame, in microseconds.
As of 04/2023, updates for scrolling are included in this metric.
</summary>
</metric>
<metric name="UserDrivenDocumentUpdateBeginMainFrame">
<summary>
The time spent doing forced document updates due to a user action such as
input, find-in-page or printing, during the BeginMainFrame block of a
sampled frame, in microseconds.
As of 04/2023, updates for scrolling are included in this metric.
</summary>
</metric>
<metric name="VisualUpdateDelay">
<summary>
Time elapsed between when an animation update is first scheduled and when
the resulting BeginMainFrame starts.
</summary>
</metric>
<metric name="VisualUpdateDelayBeginMainFrame">
<summary>
Time elapsed between when an animation update is first scheduled and when
the resulting BeginMainFrame starts.
</summary>
</metric>
<metric name="WaitForCommit">
<summary>
The time spent waiting for the compositor thread to begin processing a
commit, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WaitForCommitBeginMainFrame">
<summary>
The total main frame time spent waiting for the compositor thread to begin
processing a commit, in microseconds. This should always match
WaitForCommit and serves as a check.
</summary>
</metric>
<metric name="WaitForCommitPercentage">
<obsolete>
Deprecated as of 11/2020. Replaced with WaitForCommitBeginMainFrame.
</obsolete>
<summary>
The percentage of the main frame time spent waiting for the compositor
thread to begin processing a commit. An int in the range [0,100].
</summary>
</metric>
</event>
<event name="Blink.UseCounter">
<owner>chasej@chromium.org</owner>
<summary>
Collects data for a subset of UseCounter features where UMA UseCounter data
shows a behaviour that is rare but too common to blindly change. This metric
should be used to reason about whether a breaking change is acceptable or
not.
Note: In M87, a number of use counters were removed from UKM reporting due
to being reported too frequently (high proportion across page loads).
</summary>
<metric name="Feature" enum="FeatureObserver">
<summary>
Opt-in UseCounter feature.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsMainFrameFeature" enum="Boolean">
<summary>
Emits True(1) or False(0) to indicate whether the Feature recorded is in
the main frame or not.
</summary>
</metric>
</event>
<event name="BloatedRenderer">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<owner>ulan@chromium.org</owner>
<summary>
Metrics related to a bloated renderer that is close to out-of-memory. They
are recorded only if the renderer process has a single page.
</summary>
<metric name="V8.Heap">
<summary>
The total physical size of V8's heap in MB.
</summary>
</metric>
<metric name="V8.Heap.AllocatedObjects">
<summary>
The total size of allocated on V8's heap in MB.
</summary>
</metric>
<metric name="V8.Heap.Limit">
<summary>
The V8 heap limit in MB.
</summary>
</metric>
<metric name="V8.NearV8HeapLimitHandling">
<summary>
An enum that specifies how the near V8 heap limit event was handled. See
blink::NearV8HeapLimitHandling for the enum elements.
</summary>
</metric>
</event>
<event name="BrowsingTopics.DocumentBrowsingTopicsApiResult">
<obsolete>
Deprecated 10/2022 in favor of
BrowsingTopics.DocumentBrowsingTopicsApiResult2
</obsolete>
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
The document.browsingTopics() result and other metadata. Recorded whenever
document.browsingTopics() is invoked from a context. If the API returns more
than 3 topics (e.g. due to custom configuration FeatureParam), only the
first 3 topics will be recorded.
</summary>
<metric name="EmptyReason" enum="BrowsingTopicsEmptyApiResultReason">
<summary>
The reason why the API returns no topic. This metric won't be recorded if
the API returns any topic.
</summary>
</metric>
<metric name="ReturnedTopic0">
<summary>
The returned topic ID at index 0. This metric won't be recorded if the API
returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic0IsTrueTopTopic" enum="Boolean">
<summary>
Whether `ReturnedTopic0` is a true top topic, as opposed to a randomly
padded topic. This metric won't be recorded if the API returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic0ModelVersion">
<summary>
The version of the model used to calculate `ReturnedTopic0`. This metric
won't be recorded if the API returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic0TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `ReturnedTopic0`. This metric
won't be recorded if the API returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic1">
<summary>
The returned topic ID at index 1. This metric won't be recorded if the API
returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic1IsTrueTopTopic" enum="Boolean">
<summary>
Whether `ReturnedTopic1` is a true top topic, as opposed to a randomly
padded topic. This metric won't be recorded if the API returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic1ModelVersion">
<summary>
The version of the model used to calculate `ReturnedTopic1`. This metric
won't be recorded if the API returns less than 2 topics.
</summary>
</metric>
<metric name="ReturnedTopic1TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `ReturnedTopic1`. This metric
won't be recorded if the API returns less than 2 topics.
</summary>
</metric>
<metric name="ReturnedTopic2">
<summary>
The returned topic ID at index 2. This metric won't be recorded if the API
returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic2IsTrueTopTopic" enum="Boolean">
<summary>
Whether `ReturnedTopic2` is a true top topic, as opposed to a randomly
padded topic. This metric won't be recorded if the API returns no topics.
</summary>
</metric>
<metric name="ReturnedTopic2ModelVersion">
<summary>
The version of the model used to calculate `ReturnedTopic2`. This metric
won't be recorded if the API returns less than 3 topics.
</summary>
</metric>
<metric name="ReturnedTopic2TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `ReturnedTopic2`. This metric
won't be recorded if the API returns less than 3 topics.
</summary>
</metric>
</event>
<event name="BrowsingTopics.DocumentBrowsingTopicsApiResult2">
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
The document.browsingTopics() result and other metadata. Recorded whenever
document.browsingTopics() is invoked from a context. If there are more than
3 candidate topics (e.g. due to custom configuration FeatureParam), only the
first 3 candidate topics will be recorded.
</summary>
<metric name="CandidateTopic0">
<summary>
The candidate topic ID at index 0. This metric won't be recorded if no
topics were derived from the candidate epochs (which can be due to
insufficient epochs, failed epoch topics calculation, cleared history, or
cleared/blocked individual topics).
</summary>
</metric>
<metric name="CandidateTopic0IsTrueTopTopic" enum="Boolean">
<summary>
Whether `CandidateTopic0` is a true top topic (as opposed to a padded or
random one). This metric will be recorded iff `CandidateTopic0` is
recorded.
</summary>
</metric>
<metric name="CandidateTopic0ModelVersion">
<summary>
The version of the model used to calculate `CandidateTopic0`. This metric
will be recorded iff `CandidateTopic0` is recorded.
</summary>
</metric>
<metric name="CandidateTopic0ShouldBeFiltered" enum="Boolean">
<summary>
Whether `CandidateTopic0` should be filtered. This metric will be recorded
iff `CandidateTopic0` is recorded.
</summary>
</metric>
<metric name="CandidateTopic0TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `CandidateTopic0`. This metric
will be recorded iff `CandidateTopic0` is recorded.
</summary>
</metric>
<metric name="CandidateTopic1">
<summary>
The candidate topic ID at index 1. This metric won't be recorded if less
than 2 topics were derived from the candidate epochs (which can be due to
insufficient epochs, failed epoch topics calculation, cleared history, or
cleared/blocked individual topics).
</summary>
</metric>
<metric name="CandidateTopic1IsTrueTopTopic" enum="Boolean">
<summary>
Whether `CandidateTopic1` is a true top topic (as opposed to a padded or
random one). This metric will be recorded iff `CandidateTopic1` is
recorded.
</summary>
</metric>
<metric name="CandidateTopic1ModelVersion">
<summary>
The version of the model used to calculate `CandidateTopic1`. This metric
will be recorded iff `CandidateTopic1` is recorded.
</summary>
</metric>
<metric name="CandidateTopic1ShouldBeFiltered" enum="Boolean">
<summary>
Whether `CandidateTopic1` should be filtered. This metric will be recorded
iff `CandidateTopic1` is recorded.
</summary>
</metric>
<metric name="CandidateTopic1TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `CandidateTopic1`. This metric
will be recorded iff `CandidateTopic1` is recorded.
</summary>
</metric>
<metric name="CandidateTopic2">
<summary>
The candidate topic ID at index 2. This metric won't be recorded if less
than 3 topics were derived from the candidate epochs (which can be due to
insufficient epochs, failed epoch topics calculation, cleared history, or
cleared/blocked individual topics).
</summary>
</metric>
<metric name="CandidateTopic2IsTrueTopTopic" enum="Boolean">
<summary>
Whether `CandidateTopic2` is a true top topic (as opposed to a padded or
random one). This metric will be recorded iff `CandidateTopic2` is
recorded.
</summary>
</metric>
<metric name="CandidateTopic2ModelVersion">
<summary>
The version of the model used to calculate `CandidateTopic2`. This metric
will be recorded iff `CandidateTopic2` is recorded.
</summary>
</metric>
<metric name="CandidateTopic2ShouldBeFiltered" enum="Boolean">
<summary>
Whether `CandidateTopic2` should be filtered. This metric will be recorded
iff `CandidateTopic2` is recorded.
</summary>
</metric>
<metric name="CandidateTopic2TaxonomyVersion">
<summary>
The version of the taxonomy applicable to `CandidateTopic2`. This metric
will be recorded iff `CandidateTopic2` is recorded.
</summary>
</metric>
<metric name="FailureReason" enum="BrowsingTopicsApiAccessResult">
<summary>
The reason why the API access is not allowed.
</summary>
</metric>
</event>
<event name="BrowsingTopics.EpochTopicsCalculationResult">
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
The epoch topics calculation result, including the top 5 topics and other
metadata. Recorded whenever the periodic (weekly) topics calculation has
finished. If the result has more than 5 topics (e.g. due to custom
configuration FeatureParam), only the first 5 topics will be recorded.
</summary>
<metric name="ModelVersion">
<summary>
The version of the model used to calculate the result topics. This metric
won't be recorded if the topics calculation failed in general.
</summary>
</metric>
<metric name="PaddedTopicsStartIndex">
<summary>
The start index of the randomly padded top topics. This metric won't be
recorded if the topics calculation failed in general. If all topics are
real, `PaddedTopicsStartIndex` will equal the feature param
`kBrowsingTopicsNumberOfTopTopicsPerEpoch`.
</summary>
</metric>
<metric name="TaxonomyVersion">
<summary>
The version of the taxonomy applicable to the result topics. This metric
won't be recorded if the topics calculation failed in general.
</summary>
</metric>
<metric name="TopTopic0">
<summary>
The top topic ID at index 0. This metric won't be recorded if the
candidate topic was blocked, or if the topics calculation failed in
general.
</summary>
</metric>
<metric name="TopTopic1">
<summary>
The top topic ID at index 1. This metric won't be recorded if the
candidate topic was blocked, or if the topics calculation failed in
general.
</summary>
</metric>
<metric name="TopTopic2">
<summary>
The top topic ID at index 2. This metric won't be recorded if the
candidate topic was blocked, or if the topics calculation failed in
general.
</summary>
</metric>
<metric name="TopTopic3">
<summary>
The top topic ID at index 3. This metric won't be recorded if the
candidate topic was blocked, or if the topics calculation failed in
general.
</summary>
</metric>
<metric name="TopTopic4">
<summary>
The top topic ID at index 4. This metric won't be recorded if the
candidate topic was blocked, or if the topics calculation failed in
general.
</summary>
</metric>
</event>
<event name="BrowsingTopics.PageLoad">
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
PageLoad metrics for BrowsingTopics. Recorded when a page has Topics API
usages (that pass the user permission check), and the page is being
destroyed/navigated.
</summary>
<metric name="TopicsRequestingContextDomainsCount">
<summary>
The number of unique context domains have requested the topics. Rounded to
the nearest exponential bucket (with a bucket ratio of 1.15).
</summary>
</metric>
</event>
<event name="ChargeEventHistory">
<owner>thanhdng@chromium.org</owner>
<summary>
Records history of charge events including start time and duration of
charges. Can be used with other ChargeEventHistory to track the last 30 days
of charging events. If a &quot;SmartCharging&quot; event and a
&quot;ChargeEventHistory&quot; event has them same source ID and
&quot;EventId&quot;, it means &quot;ChargeEventHistory&quot; is the charge
history when &quot;SmartCharging&quot; event is logged. ChargeEventHistory
records an array. Each ChargeEventHistory event records an item in the
array, specified by its index ChargeEventHistoryIndex. Items in the same
array will have same source ID and EventId.
</summary>
<metric name="ChargeEventHistoryDuration">
<summary>
Duration of a history charge event.
</summary>
</metric>
<metric name="ChargeEventHistoryIndex">
<summary>
Index of this event in the ChargeEventHistory array. Please see the event
summary for more details.
</summary>
</metric>
<metric name="ChargeEventHistorySize">
<summary>
Number of items in ChargeEventHistory array. Please see the event summary
for more details.
</summary>
</metric>
<metric name="ChargeEventHistoryStartTime">
<summary>
Duration (in minutes) between start time of a charge event and logging
time.
</summary>
</metric>
<metric name="EventId">
<summary>
A unique number that represent order of an event. Used combined with
&quot;SmartCharging&quot;'s EventId to reconstruct charge history.
</summary>
</metric>
</event>
<event name="ChromeOS.DeviceManagement">
<owner>siakabaro@google.com</owner>
<summary>
Records the ChromeOS device management state. This event is recorded once
per UKM report and is not associated with a source URL.
</summary>
<metric name="EnrollmentStatus" enum="EnrollmentStatus">
<summary>
An enum value representing the enrollment status of a ChromeOS device.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOS.WebsiteUsageTime">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records the amount of time that the focused and activated website was
accessed in last two hours on Chrome OS. This is logged each two hours, and
only when the website is not installed as a PWA or Chrome app.
</summary>
<metric name="Duration">
<summary>
The milliseconds that the website was accessed in the focused tab and the
activated browser window. The accessing time is calculated each five
minutes, then the noise is applied, and sum the running time for five
minutes with noise to calculate the two hours accessing time. For example
the running time in the past 2 hours = time1 * noise1 + time2 * noise2 +
time3 * noise3....
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsFromLastLogin" enum="Boolean">
<summary>
Whether the metrics is read from the user pref on disk, recorded for the
last login.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Promotable" enum="Boolean">
<summary>
Whether the website can be an installable web app.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UrlContent" enum="URLContent">
<obsolete>
Deprecated as of 01/2023.
</obsolete>
<summary>
The url content, e.g. full url, scope.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.InputEvent">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records each five minutes in Chrome OS to log the input events happened on
the app window. This is logged only when the user allows app syncing or
allows sync of everything, and the user does not set up a sync passphrase.
</summary>
<metric name="AppInputEventCount">
<summary>
The number of the input events happened in each five minutes.
</summary>
</metric>
<metric name="AppInputEventSource" enum="AppInputEventSource">
<summary>
An enum that records the input event source.
</summary>
</metric>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.InstalledApp">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records the installed app in Chrome OS, only when the user allows app
syncing or allows sync of everything, and the user does not set up a sync
passphrase. Only ARC apps, Chrome apps and web apps(PWA), system web apps,
buildin apps are recorded. This is logged when the user installs a new app.
</summary>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstallReason" enum="InstallReason">
<summary>
An enum that records the reason why the app was installed.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstallSource" enum="InstallSource">
<obsolete>
Removed in M96. Replaced with InstallReason.
</obsolete>
<summary>
An enum that records how the app was installed.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstallSource2" enum="InstallSource2">
<summary>
An enum that records where the app was installed.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstallTime" enum="InstallTime">
<summary>
An enum that records when the app was installed.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.Launch">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records a launched app in Chrome OS, only when the user allows app syncing
or allows sync of everything, and the user does not set up a sync
passphrase. Only ARC apps, Chrome apps and web apps(PWA), system web apps,
buildin apps are recorded. This is logged when an app is launched.
</summary>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LaunchSource" enum="LaunchSource">
<summary>
An enum that records where the app was launched.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.UninstallApp">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records the uninstalled app in Chrome OS, only when the user allows app
syncing or allows sync of everything, and the user does not set up a sync
passphrase. Only ARC apps, Chrome apps and web apps(PWA), system web apps,
buildin apps are recorded. This is logged when the user uninstalls an app.
</summary>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UninstallSource" enum="UninstallSource">
<summary>
An enum that records how the app was uninstalled.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.UsageTime">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records the amount of time that the app were used in the last five minutes
on Chrome OS, only when the user allows app syncing or allows sync of
everything, and the user does not set up a sync passphrase. Only ARC apps,
Chrome apps and web apps(PWA), system web apps, buildin apps are recorded.
This is logged every five minutes.
</summary>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration">
<summary>
The milliseconds that the app was used.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ChromeOSApp.UsageTimeReusedSourceId">
<owner>nancylingwang@chromium.org</owner>
<owner>dominickn@chromium.org</owner>
<summary>
Records the amount of time that the app were used in the last five minutes
on Chrome OS, only when the user allows app syncing or allows sync of
everything, and the user does not set up a sync passphrase. Only ARC apps,
Chrome apps and web apps(PWA), system web apps, buildin apps are recorded.
This is logged every two hours.
</summary>
<metric name="AppType" enum="AppType">
<summary>
An enum that records the app type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration">
<summary>
The milliseconds that the app was used.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UserDeviceMatrix" enum="UserDeviceMatrix">
<summary>
An enum that records the user type and the device type.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClickInput" singular="True">
<owner>dougarnett@chromium.org</owner>
<summary>
Metrics associated with user click input. In particular, captures when user
has a burst of clicks at the same location which may be a signal of user
unhappiness for an experiment if it differs from the baseline data for the
site.
</summary>
<metric name="Experimental.ClickInputBurst">
<summary>
The count of the largest burst of click inputs for a page load. Only
recorded if it meets a minimum threshold to be considered a burst.
</summary>
</metric>
</event>
<event name="ClientHints.AcceptCHFrameUsage">
<owner>arichiv@chromium.org</owner>
<owner>victortan@chromium.org</owner>
<summary>
Record when a Client Hint is requested in an ACCEPT_CH TLS Frame.
</summary>
<metric name="Type" enum="WebClientHintsType">
<summary>
Records an enum representing the specific Client Hint type that was
requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClientHints.AcceptCHHeaderUsage">
<owner>arichiv@chromium.org</owner>
<owner>victortan@chromium.org</owner>
<summary>
Record when a Client Hint is requested in a Accept-CH HTTP Response Header.
</summary>
<metric name="Type" enum="WebClientHintsType">
<summary>
Records an enum representing the specific Client Hint type that was
requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClientHints.AcceptCHMetaUsage">
<owner>arichiv@chromium.org</owner>
<owner>victortan@chromium.org</owner>
<summary>
Record when a Client Hint is requested in a Accept-CH HTML Meta Tag.
</summary>
<metric name="Type" enum="WebClientHintsType">
<summary>
Records an enum representing the specific Client Hint type that was
requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClientHints.CriticalCHHeaderUsage">
<owner>arichiv@chromium.org</owner>
<owner>victortan@chromium.org</owner>
<summary>
Record when a Client Hint is requested in a Critical-CH HTTP Response
Header.
</summary>
<metric name="Type" enum="WebClientHintsType">
<summary>
Records an enum representing the specific Client Hint type that was
requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClientHints.DelegateCHMetaUsage">
<owner>arichiv@chromium.org</owner>
<owner>victortan@chromium.org</owner>
<summary>
Record when a Client Hint is requested in a Delegate-CH HTML Meta Tag.
</summary>
<metric name="Type" enum="WebClientHintsType">
<summary>
Records an enum representing the specific Client Hint type that was
requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ClientRenderingAPI">
<owner>aaronhk@chromium.org</owner>
<owner>cwallez@chromium.org</owner>
<owner>enga@chromium.org</owner>
<owner>fserb@chromium.org</owner>
<owner>jdarpinian@chromium.org</owner>
<owner>juanmihd@chromium.org</owner>
<owner>kainino@chromium.org</owner>
<owner>kbr@chromium.org</owner>
<owner>shrekshao@google.com</owner>
<summary>
Metrics collecting types of rendering context created with
canvas/offscreencanvas. It also collects requests of GPU device via WebGPU
API.
</summary>
<metric name="Canvas.RenderingContext" enum="CanvasRenderingAPI">
<summary>
Type of rendering contexts created for HTMLCanvasElement.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Canvas.RenderingContextDrawnTo" enum="CanvasRenderingAPI">
<summary>
Type of rendering contexts created for HTMLCanvasElement that something
has actually been drawn to. For WebGL 1 and 2 context this means there is
at least one draw call issued. For other context types we leave the
implementation blank at this moment.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="GPUDevice">
<summary>
Event fired when a GPUDevice from the WebGPU API is created.
</summary>
</metric>
<metric name="OffscreenCanvas.RenderingContext" enum="CanvasRenderingAPI">
<summary>
Type of rendering contexts created for OffscreenCanvas.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="OffscreenCanvas.RenderingContextDrawnTo"
enum="CanvasRenderingAPI">
<summary>
Type of rendering contexts created for OffscreenCanvas that something has
actually been drawn to. For WebGL 1 and 2 context this means there is at
least one draw call issued. For other context types we leave the
implementation blank at this moment.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Companion.PageView">
<owner>shaktisahu@chromium.org</owner>
<summary>
Records metrics for the companion side panel. The events correspond to a
single page load in the main frame and the metrics are flushed when the page
navigates away. For most of the UI surfaces, only the last event (e.g.
displayed or clicked) is recorded.
</summary>
<metric name="CQ.ChildElementCount">
<summary>
The number of child elements shown within the CQ suface, e.g. the number
of related queries in the related queries component. Clamped to a max
value of 10.
</summary>
</metric>
<metric name="CQ.LastEvent" enum="Companion.UiEvent">
<summary>
The last event on the CQ surface.
</summary>
</metric>
<metric name="PH.LastEvent" enum="Companion.UiEvent">
<summary>
The last event on the PH surface.
</summary>
</metric>
<metric name="PromoEvent" enum="Companion.PromoEvent">
<summary>
The last event on the promo surface.
</summary>
</metric>
<metric name="RegionSearch.ClickCount">
<summary>
The number of times region search in the multimodal box was clicked.
</summary>
</metric>
</event>
<event name="Compositor.Rendering">
<owner>khushalsagar@chromium.org</owner>
<summary>
Metrics related to rendering in the compositor.
</summary>
<metric name="CheckerboardedImagesCount">
<summary>
The number of images checker-imaged and re-rasterized on this page.
</summary>
</metric>
</event>
<event name="Compositor.UserInteraction">
<owner>khushalsagar@chromium.org</owner>
<summary>
Metrics related to user interaction handled by the compositor. This includes
user gestures like scrolling, pinch-zoom and page-scale animations triggered
in response to a double-tap event. The length of the user interaction is
defined as the time the compositor is running an animation resulting from
user input.
</summary>
<metric name="CheckerboardedContentArea">
<summary>
The number of visible pixels per frame checkerboarded during this
interaction.
</summary>
</metric>
<metric name="CheckerboardedContentAreaRatio">
<summary>
The percentage of visible pixels per frame checkerboarded during this
interaction. This value should be between [0, 100].
</summary>
</metric>
<metric name="CheckerboardedImagesCount">
<summary>
The number of images checker-imaged and re-rasterized during this
interaction.
</summary>
</metric>
<metric name="NumMissingTiles">
<summary>
The number of visible tiles per frame checkerboarded during this
interaction.
</summary>
</metric>
</event>
<event name="ContactsPicker.ShareStatistics">
<owner>finnur@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Measures statistics about the contacts shared in the contacts picker (when
the Contacts Picker dialog is dismissed.)
</summary>
<metric name="PropertiesRequested">
<summary>
Measures the contact properties requested by the website (names, emails,
telephone numbers). Bit 1 - telephone numbers, bit 2 - emails, bit 3 -
names.
</summary>
</metric>
<metric name="SelectCount">
<summary>
Measures the total number of contacts selected in the contacts picker.
</summary>
</metric>
<metric name="SelectPercentage">
<summary>
Measures the percentage of contacts selected in the contacts picker.
</summary>
</metric>
</event>
<event name="ContentIndex.Added">
<owner>rayankans@chromium.org</owner>
<summary>
Collected when a new Content Index entry is registered.
</summary>
<metric name="Category" enum="ContentIndexCategory">
<summary>
The type of the content registered. Corresponds to
blink.mojom.ContentCategory.
</summary>
</metric>
</event>
<event name="ContentIndex.DeletedByUser">
<owner>rayankans@chromium.org</owner>
<summary>
Collected when a Content Index entry is deleted by the user from the
Downloads page.
</summary>
<metric name="Deleted" enum="Boolean">
<summary>
Always true.
</summary>
</metric>
</event>
<event name="ContentIndex.Opened">
<owner>rayankans@chromium.org</owner>
<summary>
Collected when a Content Index entry is opened from the Downloads page.
</summary>
<metric name="IsOffline" enum="Boolean">
<summary>
Whether the browser was offline when the content was opened.
</summary>
</metric>
</event>
<event name="ContextMenuAndroid.Selected">
<owner>benwgold@google.com</owner>
<owner>twellington@chromium.org</owner>
<metric name="Action">
<summary>
Emits an integer id for a selection corresponding to the action enum
defined in ChromeContextMenuPopulator.java (within the ContextMenuUma
class).
</summary>
</metric>
</event>
<event name="ContextMenuAndroid.Shown">
<owner>benwgold@google.com</owner>
<owner>twellington@chromium.org</owner>
<metric name="SearchByImage" enum="Boolean">
<summary>
Recorded when the context menu is constructed and logged if the search by
image option was displayed.
</summary>
</metric>
<metric name="SearchWithGoogleLens" enum="Boolean">
<summary>
Recorded when the context menu is constructed and logged if the Lens
option was displayed.
</summary>
</metric>
<metric name="ShopWithGoogleLens" enum="Boolean">
<summary>
Recorded when the context menu is constructed and logged if the Lens
shopping option was displayed.
</summary>
</metric>
<metric name="ShopWithGoogleLensChip" enum="Boolean">
<summary>
Recorded when the context menu is constructed and logged if the Lens
shopping chip was displayed.
</summary>
</metric>
<metric name="TranslateWithGoogleLensChip" enum="Boolean">
<summary>
Recorded when the context menu is constructed and logged if the Lens
translate chip was displayed.
</summary>
</metric>
</event>
<event name="ContextualSearch">
<obsolete>
Deprecated as of 05/2022.
</obsolete>
<owner>donnd@chromium.org</owner>
<summary>
Metrics related to a Contextual Search Tap event on a page, for use with
Ranker. These metrics are recorded each time the user triggers the
Contextual Search UI via a tap gesture (when enabled).
</summary>
<metric name="DidOptIn">
<summary>
Emits a 1 or 0 to indicate whether the user has Opted-in to the privacy
conditions for Contextual Search or not.
</summary>
</metric>
<metric name="DurationAfterScrollMs">
<summary>
Duration in MS between showing the UI and a subsequent scroll event, or
not recorded if there was no subsequent scroll.
</summary>
</metric>
<metric name="EntityImpressionsCount">
<summary>
Emits an integer in the range of 0 - N that represents the number of
impressions of an Entity that were shown in the Bar, aggregated in Android
device storage for this user, starting in M-69.
</summary>
</metric>
<metric name="EntityOpensCount">
<summary>
Emits an integer in the range of 0 - N that represents the number of times
an Entity was shown in the Bar and the panel was opened, aggregated in
Android device storage for this user, starting in M-69.
</summary>
</metric>
<metric name="FontSize">
<summary>
Emits a value from 0-10 representing the effective font size on the
screen. A value of 0 means the font size cannot be obtained. A value of 1
represents a very small font and a value of 10 represents a large font.
</summary>
</metric>
<metric name="IsEntity">
<summary>
Emits a 1 or 0 to indicate whether the word tapped appears to be part of
an entity, given simple English language rules that check capitalization
and punctuation.
</summary>
</metric>
<metric name="IsEntityEligible">
<summary>
Emits a 1 or 0 to indicate whether the IsEntity boolean ever had a chance
of being true or not. When we're dealing with languages other than ones
where our simple entity-detection can work this signal is false.
</summary>
</metric>
<metric name="IsHttp">
<summary>
Emits a 1 or 0 to indicate whether the base page is HTTP (insecure).
</summary>
</metric>
<metric name="IsLanguageMismatch">
<summary>
Emits a 1 or 0 to indicate whether the language of the base page is a
mismatch from the list of languages the user knows, so they might want
translation.
</summary>
</metric>
<metric name="IsLongWord">
<summary>
Emits a 1 or 0 to indicate whether the word tapped was considered long (at
least 10 chars in length).
</summary>
</metric>
<metric name="IsSecondTapOverride">
<summary>
Emits a 1 or 0 to indicate whether the tap was an override of normal tap
suppression because it was considered a second tap on a word after the
first tap was suppressed.
</summary>
</metric>
<metric name="IsShortWord">
<summary>
Emits a 1 or 0 to indicate whether the word tapped was considered short
(less than 4 characters in length).
</summary>
</metric>
<metric name="IsWordEdge">
<summary>
Emits a 1 or 0 to indicate whether the tap gesture was on the edge of a
word, rather than in the middle 50% of the word.
</summary>
</metric>
<metric name="OpenCount">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
times the user opened the panel, aggregated in Android device storage for
this user since M-69.
</summary>
</metric>
<metric name="OutcomeRankerDidPredict">
<summary>
Emits a 1 or 0 to indicate whether Ranker was able to make a prediction.
</summary>
</metric>
<metric name="OutcomeRankerPrediction">
<summary>
Emits a 1 or 0 to indicate what Ranker's prediction was for this record.
Recorded only when OutcomeRankerDidPredict is true.
</summary>
</metric>
<metric name="OutcomeRankerPredictionScore">
<summary>
Emits a single-precision float to indicate the score for the Ranker
prediction for this record. Recorded only when OutcomeRankerDidPredict is
true.
</summary>
</metric>
<metric name="OutcomeWasCardsDataShown">
<summary>
Emits a 1 or 0 to indicate whether any Contextual Cards data was shown in
the Contextual Search Bar.
</summary>
</metric>
<metric name="OutcomeWasPanelOpened">
<summary>
Emits a 1 or 0 to indicate whether the user opened the overlay panel. This
is the primary outcome metric.
</summary>
</metric>
<metric name="OutcomeWasQuickActionClicked">
<summary>
Emits a 1 or 0 to indicate whether the user clicked within the overlay
panel when a Quick-Action was shown. This is a secondary outcome metric.
</summary>
</metric>
<metric name="OutcomeWasQuickAnswerSeen">
<summary>
Emits a 1 or 0 to indicate whether the user could see a Quick-Answer
caption within the overlay panel. This is a tertiary outcome metric.
</summary>
</metric>
<metric name="PortionOfElement">
<summary>
Emits an integer in the range 0-10 inclusive that expresses the portion of
the enclosing element that is the word tapped. A zero will be emitted if
the ratio cannot be calculated. A value of 10 means the word spans the
entire element, and a value of 1 means the word is 10% or less than the
entire element.
</summary>
</metric>
<metric name="Previous28DayCtrPercent">
<summary>
The CTR of the overlay panel for this user, aggregated in Android device
storage over a previous 28 day period, expressed as an integer between
0-99, since M-60.
</summary>
</metric>
<metric name="Previous28DayImpressionsCount">
<summary>
The count of views of the overlay panel for this user, aggregated in
Android device storage over a previous 28 day period, since M-60.
</summary>
</metric>
<metric name="PreviousWeekCtrPercent">
<summary>
The CTR of the overlay panel for this user, aggregated in Android device
storage over the previous week, expressed as an integer between 0-99,
since M-60.
</summary>
</metric>
<metric name="PreviousWeekImpressionsCount">
<summary>
The count of views of the overlay panel for this user, aggregated in
Android device storage over the previous week, since M-60.
</summary>
</metric>
<metric name="QuickActionImpressionsCount">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
times the user saw a quick action in the caption of the Bar, e.g. a phone
number to dial. Aggregated in Android device storage since M-69 for this
user.
</summary>
</metric>
<metric name="QuickActionsIgnored">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
times the user ignored a quick action but opened the Bar instead, e.g. a
phone number was available but not dialed. Aggregated in Android device
storage starting at M-69.
</summary>
</metric>
<metric name="QuickActionsTaken">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
times the user activated a quick action by tapping on a quick action shown
in the Bar, e.g. dialed a phone number. Aggregated in Android device
storage since M-69 for this user.
</summary>
</metric>
<metric name="QuickAnswerCount">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
times the user saw a quick answer in the caption of the Bar. Typically
these quick answers represent an automatic translation of the selection.
Aggregated in Android device storage for all time for this user, since
M-57.
</summary>
</metric>
<metric name="ScreenTopDps">
<summary>
The location of the tap relative to the top of the screen, expressed in
DPs.
</summary>
</metric>
<metric name="TapCount">
<summary>
Emits an integer in the range of 0 - N that represents the total number of
taps that triggered the Bar, aggregated in Android device storage for this
user, since M-43.
</summary>
</metric>
<metric name="TapDurationMs">
<summary>
The duration of the tap gesture expressed as an integer in milliseconds.
</summary>
</metric>
<metric name="WasScreenBottom">
<summary>
The location of the tap relative to the bottom of the screen, expressed as
an integer with 0 meaning not at the bottom and 1 meaning at the bottom.
</summary>
</metric>
</event>
<event name="ContextualSuggestions">
<obsolete>
This feature was deprecated in M74
</obsolete>
<owner>donnd@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<owner>twellington@chromium.org</owner>
<owner>zea@chromium.org</owner>
<summary>
Metrics related to Contextual Suggestions shown in the Chrome Assistive
Surface, aka EoC shown in CAS. These metrics are recorded each time the
Contextual Suggestions UI is dismissed. Each record always contains a value
for every metric known at the time of the implementation.
</summary>
<metric name="AnyDownloaded">
<summary>
Emits an integer in the range 0-1 to indicate whether the user downloaded
any suggestions.
</summary>
</metric>
<metric name="AnySuggestionTaken">
<summary>
Emits an integer in the range 0-1 to indicate whether any suggestion link
was taken.
</summary>
</metric>
<metric name="ClosedFromPeek">
<summary>
Emits an integer in the range 0-1 to indicate whether the peeking sheet
was closed by tapping on the close button.
</summary>
</metric>
<metric name="EverOpened">
<summary>
Emits an integer in the range 0-1 to indicate whether the sheet was ever
opened.
</summary>
</metric>
<metric name="FetchState">
<summary>
Emits an integer in the range 0-7 to indicate the ending state of the data
fetcher and results returned. A value of 0 indicates not-started, a 7
indicates fetch-completed with suggestions. See the code for details.
</summary>
</metric>
<metric name="ShowDurationBucketMin">
<summary>
Emits an integer in the range 0-N to indicate the duration that the sheet
was shown before a positive or negative action was taken. A value of 0
indicates that the UI was never shown. A value greater than 0 indicates
that some user interaction occurred taking at least the indicated number
of milliseconds, but less than twice that amount. This exponential
bucketing is done for privacy reasons, and uses the UKM
GetExponentialBucketMin method with a value of 2.0 for spacing.
</summary>
</metric>
<metric name="TriggerEvent">
<summary>
Emits an integer in the range 0-2 to indicate whether the contextual
suggestions UI was ever triggered and how it was triggered. A value of 0
indicates never-shown, a 1 indicates peeked in response to a
reverse-scroll (deprecated), and 2 indicates that the toolbar button was
shown (the only trigger currently supported).
</summary>
</metric>
</event>
<event name="CPUUsageMeasurement">
<owner>chrisha@chromium.org</owner>
<owner>siggi@chromium.org</owner>
<summary>
A CPU usage measurement that corresponds to a tick in a CPU usage
time-series. There is also some metadata stored to determine how faithful
the CPU usage measurement is (e.g. NumberOfCoresidentTabs).
</summary>
<metric name="CPUUsage">
<summary>
CPU usage measurement. This is in units of clock-cycles. For example, 1.2
seconds of 100% CPU usage on a 2.5GHz CPU corresponds to a value of 1.2 x
1.0 x 2.5e9 = 3e6.
</summary>
</metric>
<metric name="EventType">
<summary>
The event associated with the measurement. This is an integer value
corresponding to the enum defined in
resource_coordinator::RenderProcessProbe.
</summary>
</metric>
<metric name="IsVisible">
<summary>
Indicates if any frame hosted in this tab is visible at the moment the
measurement is taken.
</summary>
</metric>
<metric name="NumberOfCoresidentTabs">
<summary>
Number of co-resident tabs in all of the render processes a tab is
associated with when the CPU usage measurement is taken.
</summary>
</metric>
<metric name="ObservationWindowSizeMs">
<summary>
The size of the observation window (time since last CPU measurement) in
milliseconds.
</summary>
</metric>
<metric name="ProcessUptimeMs">
<summary>
The uptime of the process being measured, in milliseconds.
</summary>
</metric>
</event>
<event name="CrossOriginSubframeWithoutEmbeddingControl">
<owner>clamy@chromium.org</owner>
<summary>
Recorded when a subframe is embedded in a cross-origin context without
having a CSP frame-ancestor header or an XFO header.
</summary>
<metric name="SubframeEmbedded">
<summary>
Mesaures the number of pages with subframes embedded in cross-origin
contexts without having a CSP frame-ancestor header or an XFO header.
</summary>
</metric>
</event>
<event name="DailyChargeSummary">
<owner>thanhdng@chromium.org</owner>
<summary>
Records daily summaries of charging. DailyChargeSummary summarizes charging
information (e.g. amount of time on full charge, amount of time on AC
adapter, etc) in a day. It can be used in combination with other
DailyChargeSummary events to get information about the last 30 days of
charging. If a &quot;SmartCharging&quot; event and a
&quot;DailyChargeSummary&quot; event has them same source ID and
&quot;EventId&quot;, it means &quot;DailyChargeSummary&quot; is the summary
when &quot;SmartCharging&quot; event is logged. DailyChargeSummary records
an array. Each event records an item in the array, specified by its index
DailySummaryIndex. Items in the same array will have same source ID and
EventId.
</summary>
<metric name="DailySummaryHoldTimeOnAc">
<summary>
Amount of time (in minutes) the device was on AC charger and the charge
was hold due to adaptive charging, at an index specified by
DailySummaryIndex.
</summary>
</metric>
<metric name="DailySummaryIndex">
<summary>
Index of this event in the array. Please see the event summary for more
details.
</summary>
</metric>
<metric name="DailySummaryNumDaysDistance">
<summary>
Distance in days bettwen current day and the day that the daily summary
was logged.
</summary>
</metric>
<metric name="DailySummarySize">
<summary>
Number of items in array. Please see the event summary for more details.
</summary>
</metric>
<metric name="DailySummaryTimeFullOnAc">
<summary>
Amount of time (in minutes) the device was keep on AC charger with full
battery (100%).
</summary>
</metric>
<metric name="DailySummaryTimeOnAc">
<summary>
Amount of time (in minutes) the device was keep on AC charger.
</summary>
</metric>
<metric name="EventId">
<summary>
A number that represent order of an event. Used combined with
&quot;SmartCharging&quot;'s EventId to reconstruct charge history.
</summary>
</metric>
</event>
<event name="DataReductionProxy" singular="True">
<owner>robertogden@chromium.org</owner>
<summary>
Data Reduction Proxy related metrics associated with a page load. See
//components/data_reduction_proxy/.
</summary>
<metric name="DataSaverPageUUID">
<summary>
A unique identifier of this page load to the proxy server. Recorded for
each navigation that uses the proxy.
</summary>
</metric>
<metric name="EstimatedOriginalNetworkBytes">
<summary>
The estimated number of bytes that would have been used if that proxy was
disabled on this page load. Recorded for each navigation that uses the
proxy.
</summary>
</metric>
</event>
<event name="DetachedWindows.Experimental">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<owner>bartekn@chromium.org</owner>
<summary>
Metrics related to detached windows.
</summary>
<metric name="NavigationSourceId">
<summary>
Contains the UKM source id of the navigation as an integer.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing">
<summary>
The number of function calls in a window detached by closing/removal.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing_After10sSinceDetaching">
<summary>
The number of function calls in a window detached by closing/removal, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing_After1minSinceDetaching">
<summary>
The number of function calls in a window detached by closing/removal, that
happened at least 1 minute after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByNavigation">
<summary>
The number of function calls in a window detached by navigating away.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByNavigation_After10sSinceDetaching">
<summary>
The number of function calls in a window detached by navigating away, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByNavigation_After1minSinceDetaching">
<summary>
The number of function calls in a window detached by navigating away, that
happened at least 1 minute after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByOtherReason">
<summary>
The number of function calls in a window detached by another reason.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByOtherReason_After10sSinceDetaching">
<summary>
The number of function calls in a window detached by another reason, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByOtherReason_After1minSinceDetaching">
<summary>
The number of function calls in a window detached by another reason, that
happened at least 1 minute after detaching.
</summary>
</metric>
</event>
<event name="DIPS.Deletion" singular="True">
<owner>rtarpine@google.com</owner>
<owner>dc-komics@google.com</owner>
<summary>
Recorded when DIPS judges a site to be an incidental party and deletes its
storage.
</summary>
<metric name="Detected" enum="BooleanDetected">
<summary>
Always set to true (only present because UKM events require at least one
metric).
</summary>
</metric>
</event>
<event name="DIPS.Redirect" singular="True">
<owner>rtarpine@google.com</owner>
<owner>dc-komics@google.com</owner>
<summary>
Recorded on every HTTP redirect or client-side bounce, where a client-side
bounce is a non-user-initiated navigation starting soon after the previous
navigation committed.
</summary>
<metric name="ClientBounceDelay">
<summary>
Populated for client redirects only. The time in seconds (capped at 10)
between the page committing and the redirect navigation starting. An int
in the range [0, 10].
</summary>
</metric>
<metric name="CookieAccessType" enum="CookieAccessType">
<summary>
Whether the redirect read cookies, wrote cookies, both, or neither.
</summary>
</metric>
<metric name="HasStickyActivation" enum="BooleanHasUserActivation">
<summary>
Populated for client redirects only. Whether the user ever interacted with
the page. (See the HTML spec for a definition.)
</summary>
</metric>
<metric name="InitialAndFinalSitesSame" enum="BooleanSameSite">
<summary>
True when the site before the redirect chain is the same as the site at
the end of the chain.
</summary>
</metric>
<metric name="RedirectAndFinalSiteSame" enum="BooleanSameSite">
<summary>
True when the redirect site is the same as the site at the end of the
redirect chain.
</summary>
</metric>
<metric name="RedirectAndInitialSiteSame" enum="BooleanSameSite">
<summary>
True when the redirect site is the same as the site before the redirect
chain.
</summary>
</metric>
<metric name="RedirectChainIndex">
<summary>
0-based index of this individual redirect within its chain.
</summary>
</metric>
<metric name="RedirectChainLength">
<summary>
The length of the overall redirect chain.
</summary>
</metric>
<metric name="RedirectType" enum="DIPSRedirectType">
<summary>
The type of the redirect: client or server.
</summary>
</metric>
<metric name="SiteEngagementLevel" enum="SiteEngagementLevel">
<summary>
The site engagement level of the redirect URL, at the time the redirect
took place.
</summary>
</metric>
</event>
<event name="DIPS.TriggeringAction">
<owner>kaklilu@google.com</owner>
<owner>dc-komics@google.com</owner>
<summary>
Recorded on a repeated interval when DIPS may want to clear site storage to
improve user privacy. These metrics will be used to determine which
triggering action is most appropriate for our use case.
When these cases occur, the DIPS instance recording these metrics will keep
track of which triggering actions have already happened to prevent logging
duplicate metrics.
</summary>
<metric name="DidBounce" enum="Boolean">
<summary>
True for sites that redirected the user since the last time the DIPS
instance attempted to clear site storage.
</summary>
</metric>
<metric name="DidStatefulBounce" enum="Boolean">
<summary>
True for sites that redirected the user while accessing storage since the
last time the DIPS instance attempted to clear site storage.
</summary>
</metric>
<metric name="UsedStorage" enum="Boolean">
<summary>
True for sites wrote to the browser's storage since the last time the DIPS
instance attempted to clear site storage.
</summary>
</metric>
</event>
<event name="Document.OutliveTimeAfterShutdown">
<obsolete>
Removed January 2021
</obsolete>
<owner>hajimehoshi@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Recorded when a Document object survives certain number of garbage
collections after detached. It is expected that regular Document objects are
destroyed soon after detached, and if a document outlives longer, probably
this can be leaked.
</summary>
<metric name="GCCount">
<summary>
Measures the numbers of garbarge collection after the document is
detached. This is recorded when the number reached certain numbers like 5
or 10.
</summary>
</metric>
</event>
<event name="DocumentCreated">
<owner>beccahughes@chromium.org</owner>
<summary>
Recorded when a Document object is created and records the source ID of the
navigation and whether the document was in the main frame. This can be used
to link subframe UKM events to the parent document.
</summary>
<metric name="IsCrossOriginFrame">
<summary>
Whether the document was in a cross origin iframe. This can either be 0 or
1.
</summary>
</metric>
<metric name="IsCrossSiteFrame">
<summary>
Whether the document was in a cross site iframe. This can either be 0 or
1.
</summary>
</metric>
<metric name="IsMainFrame">
<summary>
Whether the document was in the main frame. This is can either be 0 or 1.
</summary>
</metric>
<metric name="NavigationSourceId">
<summary>
Contains the UKM source id of the navigation as an integer.
</summary>
</metric>
</event>
<event name="Download.Completed">
<owner>clank-downloads@google.com</owner>
<summary>
Metrics taken when a download completes. Its parent event is
Download.Started.
</summary>
<metric name="BytesWasted">
<summary>
The number of bytes that have been used in an excess (ie. download
restarting the middle of a download).
</summary>
</metric>
<metric name="DownloadId">
<summary>
The id of the download that is used to associate separate events.
</summary>
</metric>
<metric name="ResultingFileSize">
<summary>
The size of the file that is downloaded, expressed in kilobytes with
exponentially growing buckets.
</summary>
</metric>
<metric name="TimeSinceStart">
<summary>
The difference in the time between when the download finished and when it
began, expressed in milliseconds.
</summary>
</metric>
</event>
<event name="Download.Interrupted">
<owner>clank-downloads@google.com</owner>
<summary>
Metrics taken when a download is interrupted. Its parent event is
Download.Started.
</summary>
<metric name="BytesWasted">
<summary>
The number of bytes that have been used in an excess (ie. download
restarting the middle of a download).
</summary>
</metric>
<metric name="ChangeInFileSize">
<summary>
The difference in the size of the file that is downloaded compared to the
initial reported size, expressed in kilobytes with exponentially growing
buckets.
</summary>
</metric>
<metric name="DownloadId">
<summary>
The id of the download that is used to associate separate events.
</summary>
</metric>
<metric name="Reason">
<summary>
The reason the download was interrupted, expressed as an enum defined in
DownloadInterruptReason.
</summary>
</metric>
<metric name="ResultingFileSize">
<summary>
The size of the file that is downloaded, expressed in kilobytes with
exponentially growing buckets.
</summary>
</metric>
<metric name="TimeSinceStart">
<summary>
The difference in the time between when the download interrupted and when
it began, expressed in milliseconds.
</summary>
</metric>
</event>
<event name="Download.Resumed">
<owner>clank-downloads@google.com</owner>
<summary>
Metrics taken when a download is resumed. Its parent event is
Download.Started.
</summary>
<metric name="DownloadId">
<summary>
The id of the download that is used to associate separate events.
</summary>
</metric>
<metric name="Mode">
<summary>
The mode by which the download was resumed, expressed as an enum defined
in ResumeMode.
</summary>
</metric>
<metric name="TimeSinceStart">
<summary>
The difference in the time between when the download resumed and when it
began, expressed in milliseconds.
</summary>
</metric>
</event>
<event name="Download.Started">
<owner>clank-downloads@google.com</owner>
<summary>
Metrics taken when a download begins. It has one Download.Ended and none to
multiple Download.Interrupted/Download.Resumed events associated with it.
</summary>
<metric name="DownloadConnectionSecurity">
<summary>
The state of the security of the final download URL and all the redirects
leading to it. Expressed as an enum defined in DownloadConnectionSecurity.
</summary>
</metric>
<metric name="DownloadId">
<summary>
The id of the download that is used to associate separate events.
</summary>
</metric>
<metric name="DownloadSource">
<summary>
The source of the download, expressed as an enum defined in DownloadEntry.
</summary>
</metric>
<metric name="FileType">
<summary>
The type of file that is downloaded, expressed as an enum defined in
DownloadContentType.
</summary>
</metric>
<metric name="IsSameHostDownload">
<summary>
A boolean denoting if the final download URL is the same host as the
initiating frame (i.e., whether the initiating site likely controls the
download itself).
</summary>
</metric>
</event>
<event name="Event.ScrollBegin.Touch">
<owner>nzolghadr@chromium.org</owner>
<summary>
Metrics related to first scroll action caused by the generated ScrollUpdate
gesture event.
</summary>
<metric name="IsMainThread">
<summary>
Whether the event is handled on the main thread or not.
</summary>
</metric>
<metric name="TimeToHandled">
<summary>
The time in microseconds between initial creation of a touch event and the
first generated ScrollUpdate gesture event in a given scroll gesture event
sequence is handled on main/impl thread. If no swap was induced by the
ScrollUpdate gesture event, no recording is made.
</summary>
</metric>
<metric name="TimeToScrollUpdateSwapBegin">
<summary>
The time in microseconds between initial creation of a touch event and the
start of the frame swap on the GPU service caused by the generated
ScrollUpdate gesture event if that ScrollUpdate is the first such event in
a given scroll gesture event sequence. If no swap was induced by the
event, no recording is made.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Event.ScrollBegin.Wheel">
<owner>nzolghadr@chromium.org</owner>
<summary>
Metrics related to first scroll action caused by the generated ScrollUpdate
gesture event.
</summary>
<metric name="IsMainThread">
<summary>
Whether the event is handled on the main thread or not.
</summary>
</metric>
<metric name="TimeToHandled">
<summary>
The time in microseconds between initial creation of a wheel event and the
first generated ScrollUpdate gesture event in a given scroll gesture event
sequence is handled on main/impl thread. If no swap was induced by the
ScrollBegin gesture event, no recording is made.
</summary>
</metric>
<metric name="TimeToScrollUpdateSwapBegin">
<summary>
The time in microseconds between the initial creation of a wheel event and
the start of the frame swap on the GPU service caused by the generated
ScrollUpdate gesture event if that ScrollUpdate is the first such event in
a given scroll gesture event sequence. If no swap was induced by the
event, no recording is made.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Event.ScrollUpdate.Touch">
<owner>nzolghadr@chromium.org</owner>
<summary>
Metrics related to a scroll action caused by the generated ScrollUpdate
gesture event.
</summary>
<metric name="IsMainThread">
<summary>
Whether the event is handled on the main thread or not.
</summary>
</metric>
<metric name="TimeToHandled">
<summary>
The time in microseconds between initial creation of a touch event and the
generated ScrollUpdate gesture event is handled on main/impl thread. If no
swap was induced by the ScrollUpdate gesture event, no recording is made.
</summary>
</metric>
<metric name="TimeToScrollUpdateSwapBegin">
<summary>
The time in microseconds between the initial creation of a touch event and
the start of the frame swap on the GPU service. If no swap was induced by
the event, no recording is made. The first GSU of every scrolling sequence
is excluded from this metric.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Event.ScrollUpdate.Wheel">
<owner>nzolghadr@chromium.org</owner>
<owner>tdresser@chromium.org</owner>
<summary>
Metrics related to a scroll action caused by the generated ScrollUpdate
gesture event.
</summary>
<metric name="IsMainThread">
<summary>
Whether the event is handled on the main thread or not.
</summary>
</metric>
<metric name="TimeToHandled">
<summary>
The time in microseconds between initial creation of a wheel event and the
generated ScrollUpdate gesture event is handled on main/impl thread. If no
swap was induced by the ScrollUpdate gesture event, no recording is made.
The first GSU of every scrolling sequence is excluded from this metric.
</summary>
</metric>
<metric name="TimeToScrollUpdateSwapBegin">
<summary>
The time in microseconds between the initial creation of a wheel event and
the start of the frame swap on the GPU service. If no swap was induced by
the event, no recording is made. The first GSU of every scrolling sequence
is excluded from this metric.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Extensions.CrossOriginFetchFromContentScript3">
<obsolete>
Deprecated in Chrome 87 / September 2020 - it was not needed anymore since
CORS-for-content-scripts has successfully shipped in M85.
</obsolete>
<owner>lukasza@chromium.org</owner>
<summary>
This UKM event is logged when an extension which triggers a cross-origin
CORS-mode request from a content script if such a request results would be
allowed by CORB, but potentially blocked by CORS. The source-id URL
associated with the UKM event identifies the extension initiating such
request.
Note that this data is only gathered if the
CorbAllowlistAlsoAppliesToOorCors feature is disabled. Also note that this
data is not gathered for extensions that are already on the allowlist.
</summary>
<metric name="EventHappened" enum="Boolean">
<summary>
Always true - introduced to have non-zero number of metrics which should
make it easier to work with queries / dashboards for the overall
CrossOriginFetchFromContentScript3 event.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Extensions.OnNavigation" singular="True">
<owner>chikamune@chromium.org</owner>
<owner>yyanagisawa@chromium.org</owner>
<owner>sisidovski@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<owner>kouhei@chromium.org</owner>
<summary>
Records the extension related metrics that might have negative impacts on
LCP. This is recorded when navigation is finished.
</summary>
<metric name="DeclarativeNetRequestFeedbackPermissionCount">
<summary>
The number of enabled extensions that have a DeclarativeNetRequestFeedback
permission. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DeclarativeNetRequestPermissionCount">
<summary>
The number of enabled extensions that have a DeclarativeNetRequest
permission. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DeclarativeNetRequestWithHostAccessPermissionCount">
<summary>
The number of enabled extensions that have a
DeclarativeNetRequestWithHostAccess permission. The exponential bucketing
is applied for privacy reasons by using
ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DeclarativeWebRequestPermissionCount">
<summary>
The number of enabled extensions that have a DeclarativeWebRequest
permission. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EnabledExtensionCount">
<summary>
The number of enabled extensions that are not themes nor apps nor
components. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EnabledExtensionCount.HaveHostPermissions">
<summary>
The number of enabled extensions that have host permissions for the
navigation target URL. The exponential bucketing is applied for privacy
reasons by using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EnabledExtensionCount.InjectContentScript">
<summary>
The number of enabled extensions that inject content scripts. The
exponential bucketing is applied for privacy reasons by using
ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebRequestAuthProviderPermissionCount">
<summary>
The number of enabled extensions that have a WebRequestAuthProvider
permission. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebRequestBlockingPermissionCount">
<summary>
The number of enabled extensions that have a WebRequestBlocking
permission. The exponential bucketing is applied for privacy reasons by
using ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebRequestPermissionCount">
<summary>
The number of enabled extensions that have a WebRequest permission. The
exponential bucketing is applied for privacy reasons by using
ukm::GetExponentialBucketMin(value, 2).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Extensions.WebRequest.KeepaliveRequestFinished">
<owner>yhirano@chromium.org</owner>
<owner>kinuko@chromium.org</owner>
<summary>
Whether and how keepalive requests are blocked. Recorded when a keepalive
request finishes.
</summary>
<metric name="NumRedirects">
<summary>
The number of redirects the request experienced. This is up to 21, as
specified at https://fetch.spec.whatwg.org/#http-redirect-fetch .
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="State" enum="ExtensionInProgressRequestState">
<summary>
The final state of the request.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="FileSystemAPI.WebRequest">
<owner>mek@chromium.org</owner>
<owner>rhalavatigit@chromium.org</owner>
<summary>
Logged when a website requests accessing FileSystem API.
</summary>
<metric name="Persistent">
<summary>
Marks a request for a Persistent FileSystem.
</summary>
</metric>
<metric name="Temporary">
<summary>
Marks a request for a Temporary FileSystem.
</summary>
</metric>
</event>
<event name="FlocPageLoad" singular="True">
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Whenever the floc is computed, this event will be recorded at the commit
time of the next page load. Caveat: if the browser is closed before the next
page load occurs (in a new session), the event won't be recorded.
</summary>
<metric name="FlocId">
<summary>
The user's floc id. This ignores any general or per-context access
permissions, and records the internal int64_t number directly. This metric
may still be skipped if the floc was not calculated or has been
invalidated.
</summary>
</metric>
</event>
<event name="FontMatchAttempts">
<owner>caraitto@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<owner>privacy-sandbox-dev@chromium.org</owner>
<summary>
Records font family match attempts, broken down by system fonts and web
fonts. Multiple match attempts using the same font family name are
de-duplicated. Matching of @font-face src:local fonts isn't currently
supported.
</summary>
<metric name="LoadContext" enum="FontLoadContext">
<summary>
If the font family name was matched in a top-level frame, a sub-frame or a
worker.
</summary>
</metric>
<metric name="LocalFontFailures">
<summary>
The count of failed attempts to match @font-face src:local rules.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LocalFontSuccesses">
<summary>
The count of successful attempts to match @font-face src:local rules.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LocalFontTotal">
<summary>
The count of total attempts (failed + succeeded) to match @font-face
src:local rules.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SystemFontFamilyFailures">
<summary>
The count of system font family match attempts that failed.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SystemFontFamilySuccesses">
<summary>
The count of system font family match attempts that succeeded.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SystemFontFamilyTotal">
<summary>
Total count of system font family match attempts (succeeded + failed).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebFontFamilyFailures">
<summary>
The count of web font family match attempts that failed.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebFontFamilySuccesses">
<summary>
The count of web font family match attempts that succeeded.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebFontFamilyTotal">
<summary>
Total count of web font family match attempts (succeeded + failed).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.ActionRepositionOperationType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when key mapping position is changed.
</summary>
<metric name="OperationType" enum="ArcInputOverlayRepositionOperationType">
<summary>
Type about how the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.ActionRepositionWindowStateType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when key mapping position is changed.
</summary>
<metric name="WindowStateType" enum="ArcInputOverlayWindowStateType">
<summary>
Window state type when the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.ButtonGroupRepositionOperationType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when button group position is changed.
</summary>
<metric name="OperationType" enum="ArcInputOverlayRepositionOperationType">
<summary>
Type about how the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.ButtonGroupRepositionWindowStateType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when menu entry position is changed.
</summary>
<metric name="WindowStateType" enum="ArcInputOverlayWindowStateType">
<summary>
Window state type when the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.Customization">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event for gaming input overlay that is logged when users enter into edit
mode.
</summary>
<metric name="CustomizationUsed" enum="Boolean">
<summary>
Whether the customization option was used.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.Feature">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event for gaming input overlay that is logged when the input overlay
feature itself changes state.
</summary>
<metric name="FeatureStateOn" enum="Boolean">
<summary>
Whether the gaming input overlay feature is in use.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.MappingHint">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event for gaming input overlay that is logged when the mapping hint state
is changed.
</summary>
<metric name="MappingHintStateOn" enum="Boolean">
<summary>
Whether the mapping hint for gaming input overlay is on.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.MenuEntryRepositionOperationType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when key mapping position is changed.
</summary>
<metric name="OperationType" enum="ArcInputOverlayRepositionOperationType">
<summary>
Type about how the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GamingInputOverlay.MenuEntryRepositionWindowStateType">
<owner>pjlee@google.com</owner>
<owner>cuicuiruan@google.com</owner>
<owner>arc-gaming@google.com</owner>
<summary>
An event that is logged when menu entry position is changed.
</summary>
<metric name="WindowStateType" enum="ArcInputOverlayWindowStateType">
<summary>
Window state type when the reposition is done.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="GeneratedNavigation" singular="True">
<owner>ryansturm@chromium.org</owner>
<owner>avi@chromium.org</owner>
<summary>
Logged when the user navigated to their home page or their default search
engine. Recorded if the first URL or the final URL matches the pattern for
Default Search or matches the user's home page URL. Recorded upon commit
(even if the page was not foreground).
</summary>
<metric name="FinalURLIsDefaultSearchEngine">
<summary>
If the navigation committed URL matches the template URL of the user's
Default Search Engine.
</summary>
</metric>
<metric name="FinalURLIsHomePage">
<summary>
If the navigation committed URL matches the user's home page URL. Not
recorded on Android because home page is managed outside of Chrome.
</summary>
</metric>
<metric name="FirstURLIsDefaultSearchEngine">
<summary>
If the navigation starting URL matches the template URL of the user's
Default Search Engine.
</summary>
</metric>
<metric name="FirstURLIsHomePage">
<summary>
If the navigation starting URL (first URL in the redirect chain) matches
the user's home page URL. Not recorded on Android because home page is
managed outside of Chrome.
</summary>
</metric>
</event>
<event name="GoogleDocsOfflineExtension">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
Logged when a website requests a shared resource from Google Docs Offline
Extension. Note that this is double counted for imports since it is done
once in preload and once in actual load.
</summary>
<metric name="ResourceRequested">
<summary>
Marks a resource request from a website.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Graphics.Smoothness.EventLatency">
<owner>jonross@chromium.org</owner>
<summary>
Tracks the duration of stages in the rendering pipeline when processing a
single frame in response to an input event. To meet UKM goals for data
volume, a Poisson process with an exponential decay multiplier is used to
sample events for recporting. It will sample many reandomly distributed
events early during page load and initial interaction, then samples at an
exponentially decreasing rate to effectively cap the number of samples. All
times are in microseconds.
</summary>
<metric name="Activation">
<summary>
The duration of the activation stage, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BeginImplFrameToSendBeginMainFrame">
<summary>
The time from when the Impl frame is started to when BeginMainFrame is
sent, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BrowserToRendererCompositor">
<obsolete>
Deprecated as of 01/2021. Replaced with event dispatch breakdown metrics.
</obsolete>
<summary>
The time from when the event is created in the browser until the first
compositor stage after the event arrives in the renderer, in microseconds.
</summary>
</metric>
<metric name="Commit">
<summary>
The duration of the commit stage, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EndActivateToSubmitCompositorFrame">
<summary>
The time from when an activation is complete to the next
SubmitCompositorFrame, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EndCommitToActivation">
<summary>
The time from when a commit is complete to the beginning of the next
activation, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EventType" enum="EventLatencyEventType">
<summary>
Type of the input event.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="GenerationToRendererCompositor">
<summary>
The time from when the event is created until it arrives in the renderer
compositor, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PinchInputType" enum="EventLatencyPinchInputType">
<summary>
Type of the input device for pinch events.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToActivation">
<summary>
The time from when the event processing is finished on the renderer
compositor until the beginning of the activation, in microseconds. This
metric is only reported if the event is handled on the renderer compositor
and the first compositor step after that is the beginning of the
activation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToBeginImplFrame">
<summary>
The time from when the event processing is finished on the renderer
compositor until the compositor frame is started, in microseconds. This
metric is only reported if the event is handled on the renderer compositor
and compositor frame is started after that.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToCommit">
<summary>
The time from when the event processing is finished on the renderer
compositor until the beginning of the commit, in microseconds. This metric
is only reported if the event is handled on the renderer compositor and
the first compositor step after that is the beginning of the commit.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToEndActivate">
<summary>
The time from when the event processing is finished on the renderer
compositor until the end of the activation, in microseconds. This metric
is only reported if the event is handled on the renderer compositor and
the first compositor step after that is the end of the activation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToEndCommit">
<summary>
The time from when the event processing is finished on the renderer
compositor until the end of the commit, in microseconds. This metric is
only reported if the event is handled on the renderer compositor and the
first compositor step after that is the end of the commit.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToSendBeginMainFrame">
<summary>
The time from when the event processing is finished on the renderer
compositor until BeginMainFrame is sent, in microseconds. This metric is
only reported if the event is handled on the renderer compositor and the
first compositor step after that is SendBeginMainFrame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorFinishedToSubmitCompositorFrame">
<summary>
The time from when the event processing is finished on the renderer
compositor until the compositor frame is submitted, in microseconds. This
metric is only reported if the event is handled on the renderer compositor
and the first compositor step after that is the submission of the
compositor frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorProcessing">
<summary>
The time spent in the renderer compositor to process the event, in
microseconds. This metric won't be reported if the renderer compositor
does not have a dedicated thread.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorQueueingDelay">
<summary>
The time from when the event arrives in the renderer compositor until the
compositor starts processing it, in microseconds. This metric won't be
reported if the renderer compositor does not have a dedicated thread.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererCompositorToMain">
<summary>
The time from when the processing of the event on the renderer compositor
is finished until the main thread starts processing the event, in
microseconds. If the renderer compositor does not have a dedicated thread,
the processing of the event on the renderer compositor is considered
finished as soon as the event arrives in the renderer compositor. This
metric won't be reported if the event is handled on the renderer
compositor.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToActivation">
<summary>
The time from when the event processing is finished on the renderer main
until the beginning of the activation, in microseconds. This metric is
only reported if the event is handled on the renderer main and the first
compositor step after that is the beginning of the activation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToBeginImplFrame">
<summary>
The time from when the event processing is finished on the renderer main
until the compositor frame is started, in microseconds. This metric is
only reported if the event is handled on the renderer main and compositor
frame is started after that.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToCommit">
<summary>
The time from when the event processing is finished on the renderer main
until the beginning of the commit, in microseconds. This metric is only
reported if the event is handled on the renderer main and the first
compositor step after that is the beginning of the commit.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToEndActivate">
<summary>
The time from when the event processing is finished on the renderer main
until the end of the activation, in microseconds. This metric is only
reported if the event is handled on the renderer main and the first
compositor step after that is the end of the activation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToEndCommit">
<summary>
The time from when the event processing is finished on the renderer main
until the end of the commit, in microseconds. This metric is only reported
if the event is handled on the renderer main and the first compositor step
after that is the end of the commit.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToSendBeginMainFrame">
<summary>
The time from when the event processing is finished on the renderer main
until BeginMainFrame is sent, in microseconds. This metric is only
reported if the event is handled on the renderer main and the first
compositor step after that is SendBeginMainFrame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainFinishedToSubmitCompositorFrame">
<summary>
The time from when the event processing is finished on the renderer main
until the compositor frame is submitted, in microseconds. This metric is
only reported if the event is handled on the renderer main and the first
compositor step after that is the submission of the compositor frame.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="RendererMainProcessing">
<summary>
The time spent in the main thread to process the event, in microseconds.
This metric won't be reported if the renderer compositor handles the
event.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollInputType" enum="EventLatencyScrollInputType">
<summary>
Type of the input device for scroll events.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit">
<summary>
The time from when the BeginMainFrame is sent to the beginning of the
commit, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Accessibility">
<summary>
The time portion of SendBeginMainFrameToCommit spent on accessibility, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Animate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on animations, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.BeginMainSentToStarted">
<summary>
The time portion of SendBeginMainFrameToCommit spent before starting main
thread work, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositeCommit">
<summary>
The time portion of SendBeginMainFrameToCommit spent on composite commit,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositingAssignments">
<obsolete>
No longer recorded after M97 with the launch of CompositeAfterPaint.
</obsolete>
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating
compositing assignments, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositingInputs">
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating
compositing inputs, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.HandleInputEvents">
<summary>
The time portion of SendBeginMainFrameToCommit spent on handling input
events, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.LayoutUpdate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on layout update, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Paint">
<summary>
The time portion of SendBeginMainFrameToCommit spent on paint, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Prepaint">
<summary>
The time portion of SendBeginMainFrameToCommit spent on prepaint, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.StyleUpdate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on style update, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.UpdateLayers">
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating layers,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SubmitCompositorFrameToPresentationCompositorFrame">
<summary>
The time from when a compositor frame is submitted to the display
compositor to when it is presented, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady">
<summary>
The time from when the target framebuffer is available to when the GPU has
finished drawing to it, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch">
<summary>
The time from when the target framebuffer is ready to be displayed to when
the buffer is latched on for presentation, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd">
<summary>
The time from when the target framebuffer is latched on to when the swap
ends, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw">
<summary>
The time from when a compositor frame is received to when it starts to
draw, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapEnd">
<obsolete>
Deprecated 02/2020. Split into
SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart
and SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd.
</obsolete>
<summary>
The time from when the a compositor frame is started to draw to when it
ends swap, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart">
<summary>
The time from when a compositor frame is started to draw to when it starts
swap, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SubmitToReceiveCompositorFrame">
<summary>
The time from when a compositor frame is submitted to when it is received,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame">
<summary>
The time from when a compositor frame ends swap to when it is presented,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable">
<summary>
The time from when the compositor frame starts to swap to when the target
framebuffer becomes available, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd">
<summary>
The time from when a compositor frame starts swap to when it ends swap, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TotalLatency">
<summary>
The total time from when the event is created in the browser to when the
frame is presented, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TotalLatencyToSwapBegin">
<obsolete>
Deprecated as of 01/2021.
</obsolete>
<summary>
The time from when the event is created in the browser to when the
gpu-swap is started, for scroll events, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TotalLatencyToSwapEnd">
<obsolete>
Deprecated as of 07/2020. Replaced with TotalLatencyToSwapBegin which
measures what we actually intended to measure.
</obsolete>
<summary>
The time from when the event is created in the browser to when the
gpu-swap is completed, for scroll events, in microseconds.
</summary>
</metric>
</event>
<event name="Graphics.Smoothness.Latency">
<owner>animations-dev@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<owner>schenney@chromium.org</owner>
<summary>
Tracks the duration of stages in the rendering pipeline while processing a
single frame. All times are in microseconds.
</summary>
<metric name="Activation">
<summary>
The duration of the activation stage, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BeginImplFrameToSendBeginMainFrame">
<summary>
The time from when the Impl frame is started to when BeginMainFrame is
sent, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CanvasAnimation" enum="Boolean">
<summary>
True when a canvas animation was active this frame.
</summary>
</metric>
<metric name="Commit">
<summary>
The duration of the commit stage, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositorAnimation" enum="Boolean">
<summary>
True when a compositor-driven animation was active this frame.
</summary>
</metric>
<metric name="EndActivateToSubmitCompositorFrame">
<summary>
The time from when an activation is complete to the next
SubmitCompositorFrame, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EndCommitToActivation">
<summary>
The time from when a commit is complete to the beginning of the next
activation, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="JSAnimation" enum="Boolean">
<summary>
True when a inline style animation was active this frame.
</summary>
</metric>
<metric name="MainThreadAnimation" enum="Boolean">
<summary>
True when a main-thread-driven animation was active this frame.
</summary>
</metric>
<metric name="MissedFrame" enum="Boolean">
<summary>
True when the main frame missed its deadline for this frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PinchZoom" enum="Boolean">
<summary>
True when a pinch-to-zoom interaction was active this frame.
</summary>
</metric>
<metric name="RAF" enum="Boolean">
<summary>
True when a rAF-driven animation was active this frame.
</summary>
</metric>
<metric name="ScrollbarScroll" enum="Boolean">
<summary>
True when a scrollbar driven interaction was active this frame.
</summary>
</metric>
<metric name="SendBeginMainFrameToCommit">
<summary>
The time from when the BeginMainFrame is sent to the beginning of the
commit, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Accessibility">
<summary>
The time portion of SendBeginMainFrameToCommit spent on accessibility, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Animate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on animations, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.BeginMainSentToStarted">
<summary>
The time portion of SendBeginMainFrameToCommit spent before starting main
thread work, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositeCommit">
<summary>
The time portion of SendBeginMainFrameToCommit spent on composite commit,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositingAssignments">
<obsolete>
No longer recorded after M97 with the launch of CompositeAfterPaint.
</obsolete>
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating
compositing assignments, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.CompositingInputs">
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating
compositing inputs, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.HandleInputEvents">
<summary>
The time portion of SendBeginMainFrameToCommit spent on handling input
events, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.LayoutUpdate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on layout update, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Paint">
<summary>
The time portion of SendBeginMainFrameToCommit spent on paint, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.Prepaint">
<summary>
The time portion of SendBeginMainFrameToCommit spent on prepaint, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.StyleUpdate">
<summary>
The time portion of SendBeginMainFrameToCommit spent on style update, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SendBeginMainFrameToCommit.UpdateLayers">
<summary>
The time portion of SendBeginMainFrameToCommit spent on updating layers,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SubmitCompositorFrameToPresentationCompositorFrame">
<summary>
The time from when the a compositor frame is submitted to the display
compositor to when it is presented, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.BufferAvailableToBufferReady">
<summary>
The time from when the target framebuffer is available to when the GPU has
finished drawing to it, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.BufferReadyToLatch">
<summary>
The time from when the target framebuffer is ready to be displayed to when
the buffer is latched on for presentation, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.LatchToSwapEnd">
<summary>
The time from when the target framebuffer is latched on to when the swap
ends, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.ReceivedCompositorFrameToStartDraw">
<summary>
The time from when a compositor frame is received to when it starts to
draw, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapEnd">
<obsolete>
Deprecated 02/2020. Split into
SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart
and SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd.
</obsolete>
<summary>
The time from when the a compositor frame is started to draw to when it
ends swap, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.StartDrawToSwapStart">
<summary>
The time from when a compositor frame is started to draw to when it starts
swap, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SubmitToReceiveCompositorFrame">
<summary>
The time from when a compositor frame is submitted to when it is received,
in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapEndToPresentationCompositorFrame">
<summary>
The time from when the a compositor frame ends swap to when it is
presented, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToBufferAvailable">
<summary>
The time from when the compositor frame starts to swap to when the target
framebuffer becomes available, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="SubmitCompositorFrameToPresentationCompositorFrame.SwapStartToSwapEnd">
<summary>
The time from when a compositor frame starts swap to when it ends swap, in
microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TotalLatency">
<summary>
The total time starting from BeginImplFrame to when
CompositorFramePresentation is done with updates from the MainThread (i.e.
the time it takes for BeginImplFrame, BeginMainFrame, Commit, Activate,
SubmitCompositorFrame and PresentCompositorFrame), in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TouchScroll" enum="Boolean">
<summary>
True when a touchscreen driven interaction was active this frame.
</summary>
</metric>
<metric name="Unknown">
<summary>
The time within a stage not attributed to any system, in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Video" enum="Boolean">
<summary>
True when video playback was active this frame.
</summary>
</metric>
<metric name="WheelScroll" enum="Boolean">
<summary>
True when a mouse driven scroll was active this frame.
</summary>
</metric>
</event>
<event name="Graphics.Smoothness.NormalizedPercentDroppedFrames"
singular="True">
<owner>animations-dev@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<summary>
Measures various normalizations for the smoothness metric. The metric is
measured by counting dropped frames, and various normalization strategies
are used.
The metric is reported once per page-load, and when the page closes (e.g.
the user closes the tab, or navigates away to a different page).
</summary>
<metric name="AboveThreshold">
<summary>
The number of fixed-duration sliding windows (as a percentage) where the
number of dropped frames are above a threshold. The specific threshold is
yet to be determined.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Average">
<summary>
This is trivially computable by counting the total number of dropped
frames and the total number of vsyncs the page has been visible for,
exposed as a percentage.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositorFocusedMedian">
<summary>
CompositorFocused metrics report the throughput of frames that include
compositor thread updates. The median dropped frames within a
fixed-duration sliding window (as a percentage). So out of all
PerecentDroppedFrames of sliding windows the median will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositorFocusedPercentile95">
<summary>
CompositorFocused metrics report the throughput of frames that include
compositor thread updates. The 95-th percentile dropped frames within a
fixed-duration sliding window (as a percentage). So out of all
PerecentDroppedFrames of sliding windows the 95th percentile will be
reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositorFocusedVariance">
<summary>
CompositorFocused metrics report the throughput of frames that include
compositor thread updates. The variance of percent dropped frames within a
fixed-duration sliding window. So out of all PerecentDroppedFrames of
sliding windows the variance will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MainFocusedMedian">
<summary>
MainFocused metrics report the throughput of frames that include main
thread updates. The median dropped frames within a fixed-duration sliding
window (as a percentage). So out of all PerecentDroppedFrames of sliding
windows the median will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MainFocusedPercentile95">
<summary>
MainFocused metrics report the throughput of frames that include main
thread updates. The 95-th percentile dropped frames within a
fixed-duration sliding window (as a percentage). So out of all
PerecentDroppedFrames of sliding windows the 95th percentile will be
reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MainFocusedVariance">
<summary>
MainFocused metrics report the throughput of frames that include main
thread updates. The variance of percent dropped frames within a
fixed-duration sliding window. So out of all PerecentDroppedFrames of
sliding windows the variance will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Median">
<summary>
The median dropped frames within a fixed-duration sliding window (as a
percentage). So out of all PerecentDroppedFrames of sliding windows the
median will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Percentile95">
<summary>
The 95-th percentile dropped frames within a fixed-duration sliding window
(as a percentage). So out of all PerecentDroppedFrames of sliding windows
the 95th percentile will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollFocusedMedian">
<summary>
ScrollFocused metrics reports the throughput with highest priority on
scroll interactions. The median dropped frames within a fixed-duration
sliding window (as a percentage) with highest priority given to scroll
throughput. So out of all PerecentDroppedFrames of sliding windows the
median will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollFocusedPercentile95">
<summary>
ScrollFocused metrics reports the throughput with highest priority on
scroll interactions. The 95-th percentile dropped frames within a
fixed-duration sliding window (as a percentage). So out of all
PerecentDroppedFrames of sliding windows the 95th percentile will be
reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScrollFocusedVariance">
<summary>
ScrollFocused metrics reports the throughput with highest priority on
scroll interactions. The variance of percent dropped frames within a
fixed-duration sliding window. So out of all PerecentDroppedFrames of
sliding windows the variance will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessBad">
<summary>
The percentage of sliding windows with bad smoothness, or a
PercentDroppedFrames of 12% to 25%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessGood">
<summary>
The percentage of sliding windows with good smoothness, or a
PercentDroppedFrames of 3% to 6%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessOkay">
<summary>
The percentage of sliding windows with okay smoothness, or a
PercentDroppedFrames of 6% to 12%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessVeryBad25to50">
<summary>
The percentage of sliding windows with a subset of very bad smoothness, or
a PercentDroppedFrames of 25% to 50%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessVeryBad50to75">
<summary>
The percentage of sliding windows with a subset of very bad smoothness, or
a PercentDroppedFrames of 50% to 75%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessVeryBad75to100">
<summary>
The percentage of sliding windows with a subset of very bad smoothness, or
a PercentDroppedFrames of 75% to 100%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SmoothnessVeryGood">
<summary>
The percentage of sliding windows with very good smoothness, or a
PercentDroppedFrames of 0% to 3%.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TimingSinceFCPWorstCase">
<obsolete>
Removed July 2022 along with UMA metric, which are no longer needed.
</obsolete>
<summary>
The Time From FCP when the worst case happened
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Variance">
<summary>
The variance of percent dropped frames within a fixed-duration sliding
window. So out of all PerecentDroppedFrames of sliding windows the
variance will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WorstCase">
<summary>
The maximum number of dropped frames (as a percentage) within a
fixed-duration sliding window. So out of all PerecentDroppedFrames of
sliding windows the max percentile will be reported here.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WorstCaseAfter1Sec">
<summary>
The same as WorstCase metric, but only the sliding windows which starts 1
second after first contentful paint will be taken into account.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WorstCaseAfter2Sec">
<summary>
The same as WorstCase metric, but only the sliding windows which starts 2
second after first contentful paint will be taken into account.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WorstCaseAfter5Sec">
<summary>
The same as WorstCase metric, but only the sliding windows which starts 5
second after first contentful paint will be taken into account.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Graphics.Smoothness.PercentDroppedFrames">
<obsolete>
Deprecated 02/2023.
</obsolete>
<owner>animations-dev@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<summary>
Tracks the percent of dropped frames for a particular sequence of frames
such as during scroll or animation. PercentDroppedFrames is measured by
tracking the number of frames the sequence was expected to produce, and the
number of frames that were not displayed on screen (dropped). It is the
ratio of dropped over expected, converted to a percentage.
</summary>
<metric name="AllAnimations">
<summary>
Tracks the throughput of a particular sequence of frames for all
animations. This metric is reported for all animations (e.g.
comositor-driven animations, main-thread driven animations, and raf-driven
animations).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="AllInteractions">
<summary>
Tracks the throughput of a particular sequence of frames where a
user-input (e.g. scroll, pinch) is active. This metric is reported for all
sources of user-input (i.e. both touchscreen and touchpad/mouse-wheel).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="AllSequences">
<summary>
Tracks the throughput of a particular sequence of frames. This metric is
reported for all animations and all interactions.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompositorThread.CompositorAnimation">
<summary>
The throughput of the compositor thread during a compositor animation.
</summary>
</metric>
<metric name="CompositorThread.MainThreadAnimation">
<summary>
The throughput of the compositor thread during a main thread animation.
</summary>
</metric>
<metric name="CompositorThread.PinchZoom">
<summary>
The throughput of the compositor thread during pinch-zoom interactions.
</summary>
</metric>
<metric name="CompositorThread.RAF">
<summary>
The throughput of the compositor thread during rAF callback driven
animation.
</summary>
</metric>
<metric name="CompositorThread.ScrollbarScroll">
<summary>
The throughput of the compositor thread during scrollbar scroll driven
interactions.
</summary>
</metric>
<metric name="CompositorThread.TouchScroll">
<summary>
The throughput of the compositor thread during touchscroll driven
interactions.
</summary>
</metric>
<metric name="CompositorThread.Universal">
<obsolete>
Removed in 9/2020, due to over penalize smoothness.
</obsolete>
<summary>
The throughput of the compositor thread for all frame production.
</summary>
</metric>
<metric name="CompositorThread.Video">
<summary>
The throughput of the compositor thread during video play.
</summary>
</metric>
<metric name="CompositorThread.WheelScroll">
<summary>
The throughput of the compositor thread during mousewheel scroll driven
interactions.
</summary>
</metric>
<metric name="MainThread.CanvasAnimation">
<summary>
The throughput of the main thread during canvas animation.
</summary>
</metric>
<metric name="MainThread.CompositorAnimation">
<summary>
The throughput of the main thread during a compositor animation.
</summary>
</metric>
<metric name="MainThread.JSAnimation">
<summary>
The throughput of the main thread during inline style animation.
</summary>
</metric>
<metric name="MainThread.MainThreadAnimation">
<summary>
The throughput of the main thread during a main thread animation.
</summary>
</metric>
<metric name="MainThread.PinchZoom">
<summary>
The throughput of the main thread during pinch-zoom interactions.
</summary>
</metric>
<metric name="MainThread.RAF">
<summary>
The throughput of the main thread during rAF callback driven animation.
</summary>
</metric>
<metric name="MainThread.ScrollbarScroll">
<summary>
The throughput of the main thread during scrollbar scroll driven
interactions.
</summary>
</metric>
<metric name="MainThread.TouchScroll">
<summary>
The throughput of the main thread during touchscroll driven interactions.
</summary>
</metric>
<metric name="MainThread.Universal">
<obsolete>
Removed in 9/2020, due to over penalize smoothness.
</obsolete>
<summary>
The throughput of the main thread for all frame production.
</summary>
</metric>
<metric name="MainThread.Video">
<summary>
The throughput of the main thread during video play.
</summary>
</metric>
<metric name="MainThread.WheelScroll">
<summary>
The throughput of the main thread during mousewheel scroll driven
interactions.
</summary>
</metric>
<metric name="SlowerThread.CompositorAnimation">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during a
compositor animation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.MainThreadAnimation">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during a main
thread animation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.PinchZoom">
<summary>
The worse throughput of the main and the compositor thread during
pinch-zoom interactions.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.RAF">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during rAF
callback driven animation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.ScrollbarScroll">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
scrollbar driven interactions.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.TouchScroll">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
touchscroll driven interactions.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.Universal">
<obsolete>
Removed in 9/2020, due to over penalize smoothness.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread for all frame
production.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.Video">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during video
play.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SlowerThread.WheelScroll">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
mousewheel scroll driven interactions.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Graphics.Smoothness.Throughput">
<obsolete>
Deprecated 02/2020.
</obsolete>
<owner>animations-dev@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<summary>
As of 2020-02-12, this is deprecated in favor of
Graphics.Smoothness.PercentDroppedFrames.
</summary>
<metric name="CompositorThread.CompositorAnimation">
<summary>
The throughput of the compositor thread during a compositor animation.
</summary>
</metric>
<metric name="CompositorThread.MainThreadAnimation">
<summary>
The throughput of the compositor thread during a main thread animation.
</summary>
</metric>
<metric name="CompositorThread.PinchZoom">
<summary>
The throughput of the compositor thread during pinch-zoom interactions.
</summary>
</metric>
<metric name="CompositorThread.RAF">
<summary>
The throughput of the compositor thread during rAF callback driven
animation.
</summary>
</metric>
<metric name="CompositorThread.TouchScroll">
<summary>
The throughput of the compositor thread during touchscroll driven
interactions.
</summary>
</metric>
<metric name="CompositorThread.Universal">
<summary>
The throughput of the compositor thread for all frame production.
</summary>
</metric>
<metric name="CompositorThread.Video">
<summary>
The throughput of the compositor thread during video play.
</summary>
</metric>
<metric name="CompositorThread.WheelScroll">
<summary>
The throughput of the compositor thread during mousewheel scroll driven
interactions.
</summary>
</metric>
<metric name="MainThread.CompositorAnimation">
<summary>
The throughput of the main thread during a compositor animation.
</summary>
</metric>
<metric name="MainThread.MainThreadAnimation">
<summary>
The throughput of the main thread during a main thread animation.
</summary>
</metric>
<metric name="MainThread.PinchZoom">
<summary>
The throughput of the main thread during pinch-zoom interactions.
</summary>
</metric>
<metric name="MainThread.RAF">
<summary>
The throughput of the main thread during rAF callback driven animation.
</summary>
</metric>
<metric name="MainThread.TouchScroll">
<summary>
The throughput of the main thread during touchscroll driven interactions.
</summary>
</metric>
<metric name="MainThread.Universal">
<summary>
The throughput of the main thread for all frame production.
</summary>
</metric>
<metric name="MainThread.Video">
<summary>
The throughput of the main thread during video play.
</summary>
</metric>
<metric name="MainThread.WheelScroll">
<summary>
The throughput of the main thread during mousewheel scroll driven
interactions.
</summary>
</metric>
<metric name="SlowerThread.CompositorAnimation">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during a
compositor animation.
</summary>
</metric>
<metric name="SlowerThread.MainThreadAnimation">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during a main
thread animation.
</summary>
</metric>
<metric name="SlowerThread.PinchZoom">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
pinch-zoom interactions.
</summary>
</metric>
<metric name="SlowerThread.RAF">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during rAF
callback driven animation.
</summary>
</metric>
<metric name="SlowerThread.TouchScroll">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
touchscroll driven interactions.
</summary>
</metric>
<metric name="SlowerThread.Universal">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread for all frame
production.
</summary>
</metric>
<metric name="SlowerThread.Video">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during video
play.
</summary>
</metric>
<metric name="SlowerThread.WheelScroll">
<obsolete>
Removed in 9/2020, since no longer needed after 'Universal' metric was
deprecated.
</obsolete>
<summary>
The worse throughput of the main and the compositor thread during
mousewheel scroll driven interactions.
</summary>
</metric>
</event>
<event name="HistoryClusters" singular="True">
<owner>chrome-memories@google.com</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Metrics that capture the iteractions with HistoryClusters, or Journeys, This
will be recorded once per visit to the HistoryClusters UI and logged when
the UI is closed or navigated away from.
</summary>
<metric name="FinalState" enum="HistoryClustersFinalState">
<summary>
The final state, or outcome, of an interaction on the HistoryClusters UI.
</summary>
</metric>
<metric name="InitialState" enum="HistoryClustersInitialState">
<summary>
The initial state that describes how an interaction with the
HistoryClusters UI was started.
</summary>
</metric>
<metric name="NumQueries">
<summary>
The number of times the user performed a query on the HistoryClusters UI
during this interaction. This can include partial queries that occur due
to the UI's query timing.
</summary>
</metric>
<metric name="NumTogglesToBasicHistory">
<summary>
The number of times the user toggled to the basic history page during this
interaction with the HistoryClusters UI.
</summary>
</metric>
</event>
<event name="HistoryManipulationIntervention">
<owner>shivanisha@chromium.org</owner>
<summary>
Logged when an entry in the back-forward list is marked to be skipped on
subsequent back/forward button clicks as part of the history manipulation
intervention. This is logged when the entry is navigated away from.
</summary>
</event>
<event name="HistoryNavigation" singular="True">
<owner>altimin@chromium.org</owner>
<owner>arthursonzogni@chromium.org</owner>
<owner>hajimehoshi@chromium.org</owner>
<summary>
Metrics recorded each time we commit a history navigation, which are needed
to estimate benefits of back-forward cache. Except as otherwise noted, the
metrics are recorded for history navigations, but not for same-document
navigations.
</summary>
<metric
name="AverageCumulativeShiftScoreAfterBackForwardCacheRestore.SessionWindow.Gap5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the average cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, after the page is restored from the
back-forward. The gap between two consecutive shifts in a window is not
bigger than 5000ms. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer.
</summary>
</metric>
<metric
name="AverageUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.MaxEventDuration2">
<summary>
The average value of user interaction latency above budget of a page after
it is restored from the back-forward, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="AverageUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The average value of user interaction latency above budget of a page after
it is restored from the back-forward, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="BackForwardCache.BlocklistedFeatures"
enum="WebSchedulerTrackedFeature">
<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 as a binary mask.
</summary>
</metric>
<metric name="BackForwardCache.BrowsingInstanceNotSwappedReason"
enum="BackForwardCacheBrowsingInstanceNotSwappedReason">
<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.
</summary>
</metric>
<metric name="BackForwardCache.DisabledForRenderFrameHostReasonCount">
<summary>
The number of the reasons passed to
BackForwardCache::DisableForRenderFrameHost calls.
</summary>
</metric>
<metric name="BackForwardCache.IsAmpPage" enum="Boolean">
<summary>
Boolean whether the now-restored page uses AMP (see https://amp.dev). If
the page wasn't restored from the back-forward cache, this metric will not
be populated. This metric will never be true when
BackForwardCache.IsServedFromBackForwardCache is false.
</summary>
</metric>
<metric name="BackForwardCache.IsServedFromBackForwardCache">
<summary>
Boolean whether the page was restored from the back-forward cache or not.
</summary>
</metric>
<metric name="BackForwardCache.NotRestoredReasons">
<summary>
Bitmask of the reasons why the page was not restored from the back-forward
cache. See contents::BackForwardCacheMetrics::NotRestoredReason for the
meaning of the individual bits.
</summary>
</metric>
<metric name="CrossOriginSubframesFeatures">
<summary>
Bitmask of features used by the cross origin subframes of the previous
page load. See blink::SchedulingPolicy::Feature for the meaning for the
individual features.
</summary>
</metric>
<metric name="CumulativeShiftScoreAfterBackForwardCacheRestore">
<summary>
Deprecated as of 04/23. It is still reported, but most users should use
PageLoad.LayoutInstability.MaxCumulativeShiftScore.AfterBackForwardCacheRestore.SessionWindow.Gap1000ms.Max5000ms.
Measures the cumulative layout shift (bit.ly/3fQz29y) that has occurred
during the session, after the page is restored from the back-forward
cache. This metric's integral value is 100x the fractional cumulative
layout shift score described in the explainer.
</summary>
</metric>
<metric name="FirstInputDelayAfterBackForwardCacheRestore">
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation, after the page is restored from the
back-forward cache.
</summary>
</metric>
<metric name="FirstRequestAnimationFrameAfterBackForwardCacheRestore">
<summary>
Measures the time duration between the page restore from back-forward
cache and the first requestAnimationFrame time in milliseconds.
</summary>
</metric>
<metric name="ForegroundDurationAfterBackForwardCacheRestore">
<summary>
For page loads that start in the foreground, measures the duration of time
in milliseconds until one of the following events occurs: the load of the
main resource fails, the page load is stopped, the tab hosting the page is
closed, the render process hosting the page goes away, a new navigation
which later commits is initiated in the same tab, or the tab hosting the
page is backgrounded. This metric has a very long tail, for pages that
spend a long period of time in the foreground. As such, use of the mean or
tail values are not recommended.
</summary>
</metric>
<metric name="LastCommittedCrossDocumentNavigationSourceIdForTheSameDocument">
<summary>
For history navigations and reloads, the source id of the previous
navigation which loaded the page we're trying to navigate back to.
</summary>
</metric>
<metric name="LastCommittedSourceIdForTheSameDocument">
<summary>
Deprecated as of 01/2019.
</summary>
</metric>
<metric name="MainFrameFeatures">
<summary>
Bitmask of features used by the main frames of the previous page load. See
blink::SchedulingPolicy::Feature for the meaning for the individual
features.
</summary>
</metric>
<metric
name="MaxCumulativeShiftScoreAfterBackForwardCacheRestore.SessionWindow.Gap1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, after the page is restored from the
back-forward. The gap between two consecutive shifts in a window is not
bigger than 1000ms. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer.
</summary>
</metric>
<metric
name="MaxCumulativeShiftScoreAfterBackForwardCacheRestore.SessionWindow.Gap1000ms.Max5000ms">
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, after the page is restored from the
back-forward. The gap between two consecutive shifts in a window is not
bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 100x the fractional cumulative layout shift score
described in the explainer.
</summary>
</metric>
<metric
name="MaxCumulativeShiftScoreAfterBackForwardCacheRestore.SessionWindowByInputs.Gap1000ms.Max5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window, after the page is restored from the
back-forward. The gap between two consecutive shifts in a window is not
bigger than 1000ms and the maximum window size is 5000ms. We start a new
window whenever there's a new user input. This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric
name="MaxCumulativeShiftScoreAfterBackForwardCacheRestore.SlidingWindow.Duration1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 1000ms sliding window, after the page is restored from
the back-forward. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer.
</summary>
</metric>
<metric
name="MaxCumulativeShiftScoreAfterBackForwardCacheRestore.SlidingWindow.Duration300ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 300ms sliding window, after the page is restored from
the back-forward. This metric's integral value is 100x the fractional
cumulative layout shift score described in the explainer.
</summary>
</metric>
<metric name="NavigatedToTheMostRecentEntryForDocument">
<summary>
Boolean for whether we navigated to the same navigation entry as the one
which was last visible.
It can be false when subframes or same-document navigations are present.
For example, after navigating from http://foo to http://foo#bar and then
http://bar and then going back by 2 entries will mean we went to
http://foo while the last committed entry from this document was
http://foo#bar.
It's expected to be rare, but might be problematic for back-forward cache.
</summary>
</metric>
<metric name="NavigationToFirstPaintAfterBackForwardCacheRestore">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the first paint is performed, after the page is restored
from the back-forward cache.
</summary>
</metric>
<metric name="NumInteractionsAfterBackForwardCacheRestore">
<summary>
The number of distinct user interactions on a page after it is restored
from the back-forward cache. See definition of user interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
</metric>
<metric name="PageEndReasonAfterBackForwardCacheRestore">
<summary>
The reason (as a |page_load_metrics::PageEndReason|) why the user
navigated away from the page after it was restored from the back-forward
cache. This includes navigations after which the page is stored in the
back-forward cache again, as well as other page-ending events.
</summary>
</metric>
<metric name="SameOriginSubframesFeatures">
<summary>
Bitmask of features used by the same origin subframes of the previous page
load. See blink::SchedulingPolicy::Feature for the meaning for the
individual features.
</summary>
</metric>
<metric name="SecondRequestAnimationFrameAfterBackForwardCacheRestore">
<summary>
Measures the time duration between the page restore from back-forward
cache and the second requestAnimationFrame time in milliseconds.
</summary>
</metric>
<metric
name="SlowUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.HighPercentile.MaxEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page after it is restored from the back-forward, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SlowUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.HighPercentile.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page after it is restored from the back-forward, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SlowUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration2">
<summary>
An approximation of high percentile of user interaction latency above
budget of a page after it is restored from the back-forward, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SlowUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.HighPercentile2.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of high percentile of user interaction latency above
budget of a page after it is restored from the back-forward, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SumOfUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.MaxEventDuration2">
<summary>
The sum of user interaction latency above budget of a page after it is
restored from the back-forward, in ms. For this metric, we measure the
latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="SumOfUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The sum of user interaction latency above budget of a page after it is
restored from the back-forward, in ms. For this metric, we measure the
latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="ThirdRequestAnimationFrameAfterBackForwardCacheRestore">
<summary>
Measures the time duration between the page restore from back-forward
cache and the third requestAnimationFrame time in milliseconds.
</summary>
</metric>
<metric name="TimeSinceNavigatedAwayFromDocument">
<summary>
Time in milliseconds from the moment the current navigation stopped being
active to the start of the current navigation.
This is clamped to hours for values greater than 3 hours, to minutes for
values greater than 3 minutes, to seconds for values greater than 5
seconds.
</summary>
</metric>
<metric
name="UserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency of a
page after it is restored from the back-forward cache, in ms. For this
metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="WorstUserInteractionLatencyAfterBackForwardCacheRestore.MaxEventDuration2">
<summary>
The maximum value of user interaction latency of a page after it is
restored from the back-forward, in ms. For this metric, we measure the
latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="WorstUserInteractionLatencyAfterBackForwardCacheRestore.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency of a page after it is
restored from the back-forward, in ms. For this metric, we measure the
latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration.
</summary>
</metric>
<metric
name="WorstUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.MaxEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page after
it is restored from the back-forward, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we reduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="WorstUserInteractionLatencyOverBudgetAfterBackForwardCacheRestore.TotalEventDuration2">
<obsolete>
Deprecated March 2022 in favor of
SlowUserInteractionLatencyAfterBackForwardCacheRestore.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page after
it is restored from the back-forward, in ms. For this metric, we measure
the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we reduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
</event>
<event name="Identifiability">
<owner>antoniosartori@chromium.org</owner>
<owner>caraitto@chromium.org</owner>
<owner>mkwst@chromium.org</owner>
<owner>pauljensen@chromium.org</owner>
<summary>
Identifiability metrics are used to measure the diversity of web clients as
observed by individual web sites.
Browser or device fingerprinting uses differences in behaviors of web APIs
as identifiers. The values collected under this event indicate the level of
identifiability of these differences.
Metrics recorded under this event are keyed based on parameters determined
at runtime. Hence the metrics described in this file are not exhaustive.
See
//third_party/blink/public/common/privacy_budget/identifiability/identifiability_metric_builder.h
for details on how the metrics hash is determined.
</summary>
<metric name="GeneratorVersion.926">
<summary>
An integer identifying the &quot;generator&quot; version for this record.
Some identifiability study samples are derived from multiple factors which
are run though a digest function to derive the int64_t value. If the set
of factors change or the method of combining them changes, then the
resulting statistics cannot be aggregated with those from a prior version.
The name suffix (.926) was chosen so that the resulting metric hash as
determined by base::HashMetricName() has all 8 LSBs set to 0. Such a
metric hash does not collide with any other metric hash generated by
blink::IdentifiabilityMetricBuilder().
</summary>
</metric>
<metric name="StudyGeneration.626">
<summary>
An integer identifying the study &quot;generation.&quot; In case the study
parameters need to be tweaked to the point where results cannot be
aggregated across study parameter sets, this value can be changed to
partition the results.
The name suffix (.626) was chosen so that the resulting metric hash as
determined by base::HashMetricName() has all 8 LSBs set to 0. Such a
metric hash does not collide with any other metric hash generated by
blink::IdentifiabilityMetricBuilder().
</summary>
</metric>
</event>
<event name="InputEvent">
<owner>mmocny@chromium.org</owner>
<owner>sullivan@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Metrics associated with user input events. This event is recorded in Blink
and may not be recorded for the same page visits as events like PageLoad.
Consumers of this event's metrics should be aware of this when making
comparisons between InputEvent metrics and PageLoad metrics.
</summary>
<metric name="EventType" enum="InputEventTypeForResponsivenessMetric">
<summary>
The Event Type of the input event.
</summary>
<aggregation>
<history>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.InputDelay">
<summary>
Measures Input Delay, the duration between the hardware timestamp and the
start of event processing on the main thread for the meaningful input. In
ms. (go/FirstInputDelay)
</summary>
<aggregation>
<history>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.ProcessingFinishedToNextPaint">
<summary>
Measures the time in ms from when the event handlers finish processing the
input event to the time when the next paint caused by the input event is
performed.
</summary>
<aggregation>
<history>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.ProcessingTime">
<summary>
Measures Input Event processing time, the duration of event handlers
processing the input event. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="InputMethod.Assistive.AutocorrectV2">
<owner>mehrab@google.com</owner>
<summary>
Metrics recording a summary of user interactions with Autocorrect feature.
The event is recorded whenever an autocorrect suggestion is shown or a user
interacted with a suggestion to accept or reject it.
</summary>
<metric name="CompatibilitySummary.PK"
enum="IMEAutocorrectCompatibilitySummary">
<summary>
A summary of interactions with Physical Keyboard Autocorrect suggestions
for the purpose of identifying App Compatibility issues.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CompatibilitySummary.VK"
enum="IMEAutocorrectCompatibilitySummary">
<summary>
A summary of interactions with Virtual Keyboard Autocorrect suggestions
for the purpose of identifying App Compatibility issues.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="InputMethod.Assistive.Match">
<owner>jiwan@chromium.org</owner>
<summary>
Recorded when an assistive action could be triggered according to the
surrounding text.
</summary>
<metric name="Type" enum="IMEAssistiveAction">
<summary>
The type of the assistive suggestion which is triggered.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="InputMethod.LongpressDiacritics">
<owner>jopalmer@google.com</owner>
<owner>essential-inputs-team@google.com</owner>
<summary>
Recorded when a user uses the long press diacritics feature to insert
diacritics via long press with a physical keyboard.
</summary>
<metric name="Actions" enum="IMEPKLongpressDiacriticAction">
<summary>
Action taken by the user to interact with this feature.
</summary>
</metric>
</event>
<event name="InputMethod.NonCompliantApi">
<owner>shend@chromium.org</owner>
<summary>
Metrics indicating what Input Method Editor (IME) operations are behaving
incorrectly on an input field. This event is recorded whenever an IME
operation is executed on the input field but the result does not match the
IME's expectations (e.g. IME wants to insert 'a' but the input field
inserted 'b' instead).
</summary>
<metric name="NonCompliantOperation" enum="InputMethodApiOperation">
<summary>
The operation that behaved incorrectly.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="InstalledRelatedApps">
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Recorded before resolving a call to navigator.getInstalledRelatedApps().
</summary>
<metric name="Called">
<summary>
Always true.
</summary>
</metric>
</event>
<event name="Intervention.DocumentWrite.ScriptBlock" singular="True">
<obsolete>
Removed 12/2021.
</obsolete>
<owner>bmcquade@chromium.org</owner>
<summary>
Recorded for page loads where the document.write script block intervention
could apply.
</summary>
<metric name="Disabled.Reload">
<summary>
Records '1' if the document.write script block intervention could have
applied, but was disabled due to the page being reloaded.
</summary>
</metric>
<metric name="ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite">
<summary>
Measures the time in milliseconds that the HTML parser spent blocked on
the execution of scripts inserted from document.write, for main frame
documents that finished parsing.
</summary>
</metric>
<metric name="ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite">
<summary>
Measures the time in milliseconds that the HTML parser spent blocked on
the load of scripts inserted from document.write, for main frame documents
that finished parsing.
</summary>
</metric>
</event>
<event name="IOS.FindInPageSearchMatches">
<owner>thegreenfrog@chromium.org</owner>
<owner>michaeldo@chromium.org</owner>
<summary>
Logged when the FindInPage returns a user search request result. Starting
from M111, this is only logged at the end of the Find session i.e. when the
Find UI is dismissed.
</summary>
<metric name="HasMatches" enum="Boolean">
<summary>
True if there were matches.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="IOS.IsDefaultBrowser">
<owner>rkgibson@chromium.org</owner>
<summary>
As of iOS14, users will be able to set a default browser other than Safari.
When Chrome is the default browser, it will open all URL links, which is
likely to change certain stability metrics. Thus, it will be good to filter
those metrics by default browser status. This metrics records whether the
user was deemed to have set Chrome as the device's default browser. This
metric will be logged once per metrics log upload, and if the metric changes
mid-report, this just records the state at the very end of the report. Note:
this is tied to a source_id that is not going to be emitted.
</summary>
<metric name="IsDefaultBrowser" enum="Boolean">
<summary>
True if Chrome is set as default browser.
</summary>
</metric>
</event>
<event name="IOS.PageAddedToReadingList">
<owner>thegreenfrog@chromium.org</owner>
<summary>
Logged when the user adds a page to the Reading List.
</summary>
<metric name="AddedFromMessages" enum="Boolean">
<summary>
True if the page was added by the user tapping on the Messages prompt to
save to Reading List.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="IOS.PageReadability">
<owner>thegreenfrog@chromium.org</owner>
<summary>
Logged when the Distilibility score of the current page is returned and the
Reading List Message is shown. Muliplied by 10X to get tenth digit
granularity. 0.1 granularity will be recorded for scores between 0.5 and
1.5. Otherwise, the granularity will be 0.5.
</summary>
<metric name="DidAccept" enum="Boolean">
<summary>
True if the user tapped on the Messages prompt to save the current page to
Reading List.
</summary>
</metric>
<metric name="DistilibilityLongScore">
<summary>
Distilibility score value indicating the &quot;long readability&quot; of
the page.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DistilibilityScore">
<summary>
Distilibility score value indicating the &quot;readability&quot; of the
page.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="IOS.PageZoomChanged">
<owner>rkgibson@google.com</owner>
<summary>
Logged when the user changes their zoom level on iOS.
</summary>
<metric name="ContentSizeCategory" enum="IOSContentSizeCategory">
<summary>
The content size category the user is currently using.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="OverallZoomLevel">
<summary>
The overall zoom level. This is based on a combination of the user zoom
level and a multiplier from the user's content size category.
</summary>
</metric>
<metric name="UserZoomLevel">
<summary>
The current zoom multiplier (percentage-based, with 100 -&gt; 100%) the
user has chosen.
</summary>
</metric>
</event>
<event name="IOS.RendererGone">
<owner>olivierrobin@chromium.org</owner>
<summary>
Logged when WKWebView process is reported gone. Metrics will give
information of the context in which some website present sad tabs. It will
help debug some renderer issues either in Chrome or in WebKit.
</summary>
<metric name="AliveRecentlyRendererCount">
<summary>
The number of WKWebView alive in the last 2 seconds.
</summary>
</metric>
<metric name="AliveRendererCount">
<summary>
The number of WKWebView alive at the moment this renderer is gone.
</summary>
</metric>
<metric name="InForeground" enum="TabForegroundState">
<summary>
Whether the app/tab was in foregound or background. 0: tab in foreground,
app in foreground, 1: tab in background, app in foreground, 2: tab in
foreground, app in background, 3: tab in background, app in background.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SawMemoryWarning" enum="Boolean">
<summary>
Whether a memory warning was received less than 5 seconds before the
renderer process is gone.
</summary>
</metric>
</event>
<event name="IOS.URLMismatchInLegacyAndSlimNavigationManager">
<owner>ajuma@chromium.org</owner>
<owner>gambard@chromium.org</owner>
<summary>
Logged when LegacyNavigationManager and KWKBasedNavigationManager have
different last committed URLs. This means that either old or new navigation
system has a URL spoofing bug.
</summary>
<metric name="HasMismatch">
<summary>
True if there was a mismatch.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="JavascriptFrameworkPageLoad" singular="True">
<owner>houssein@chromium.org</owner>
<owner>npm@chromium.org</owner>
<summary>
Metrics stating whether the main frame of a page uses certain JavaScript
frameworks. This event is recorded when the page is going to be unloaded or
when the app enters the background on Android. The framework detection is
done when the document is loaded (similar to when load event is fired). If a
framework is used after this then it would not be detected. Note that a page
can use multiple frameworks at the same time, hence why this reports each
framework individually instead of a single enum.
</summary>
<metric name="AngularPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Angular JavaScript
framework.
</summary>
</metric>
<metric name="GatsbyPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Gatsby JavaScript
framework.
</summary>
</metric>
<metric name="NextJSPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Next.js JavaScript
framework.
</summary>
</metric>
<metric name="NuxtJSPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Nuxt.js JavaScript
framework.
</summary>
</metric>
<metric name="PreactPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Preact JavaScript
framework.
</summary>
</metric>
<metric name="ReactPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the React JavaScript
framework.
</summary>
</metric>
<metric name="SapperPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Sapper JavaScript
framework.
</summary>
</metric>
<metric name="SveltePageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Svelte JavaScript
framework.
</summary>
</metric>
<metric name="VuePageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the Vue JavaScript
framework.
</summary>
</metric>
<metric name="VuePressPageLoad" enum="Boolean">
<summary>
True if the page loaded in the main frame uses the VuePress JavaScript
framework.
</summary>
</metric>
</event>
<event name="Layout.DisplayCutout.StateChanged">
<obsolete>
Obsolete as of 08/2021.
</obsolete>
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Recorded every time the ViewportFit that is supplied by a frame changes or
the fullscreen state of a frame or its parent WebContents changes.
</summary>
<metric name="IsMainFrame">
<summary>
Records '1' if the frame that triggered this event is the main frame.
</summary>
</metric>
<metric name="SafeAreasPresent">
<summary>
Records whether each safe area was present. It will contain the first flag
(1) if the top safe area is present. Likewise the second for the left, the
third for the bottom and the forth for the right. If the safe area is
updated whilst we are allowed to extend into the cutout then we will use
the newest safe area values.
</summary>
</metric>
<metric name="ViewportFit.Applied">
<summary>
Contains the ViewportFit value that was applied by the WebContents. The
frame that is fullscreen will always propagate it's ViewportFit value.
This is stored as a ViewportFit enum (see display_cutout.mojom).
</summary>
</metric>
<metric name="ViewportFit.IgnoredReason">
<summary>
Records the reason why the ViewportFit value of this frame was not the
applied value. It will be '0' if the value was allowed. It will be '1' if
the ViewportFit value from the frame was blocked because the WebContents
was not fullscreen. It will be '2' flag if the ViewportFit value from the
frame was blocked because another frame is fullscreen.
</summary>
</metric>
<metric name="ViewportFit.Supplied">
<summary>
Contains the ViewportFit value that was supplied by the frame that
triggered the event. This is stored as a ViewportFit enum (see
display_cutout.mojom). It can never be kAuto as we ignore events when the
page is not trying to use the viewport fit API.
</summary>
</metric>
</event>
<event name="LiteVideo">
<obsolete>
Obsoleted December 2021.
</obsolete>
<owner>mcrouse@chromium.org</owner>
<owner>rajendrant@chromium.org</owner>
<summary>
Metrics that capture the state and result of the LiteVideo optimization.
This will be recorded once per frame when the associated render process
ends. Only for Lite mode users on Android.
</summary>
<metric name="BlocklistReason" enum="LiteVideoBlocklistReason">
<summary>
The reason that a navigation was blocklisted and will not have media
requests throttled.
</summary>
</metric>
<metric name="ThrottlingResult" enum="LiteVideoThrottleResult">
<summary>
The result for whether media requests associated with this navigation were
successfully throttled or stopped due to an opt-out event.
</summary>
</metric>
<metric name="ThrottlingStartDecision" enum="LiteVideoDecision">
<summary>
The decision for whether media requests associated with this frame will be
potentially throttled.
</summary>
</metric>
</event>
<event name="LoadCountsPerTopLevelDocument">
<owner>fdoray@chromium.org</owner>
<owner>chrome-catan@google.com</owner>
<summary>
Counts loads of each type that occurred on a top-level document. Recorded
when a top-level document is unloaded. This can be used to diagnose changes
to the &quot;Total pageloads&quot; shown on stability dashboard.
Exponential bucketing is applied to all counts. The bucketing function
preserves exact count up until 20.
</summary>
<metric name="NumMainFrameSameDocumentLoads_Hidden">
<summary>
Number of main frame same-document loads that occurred while the page was
hidden.
</summary>
</metric>
<metric name="NumMainFrameSameDocumentLoads_Visible">
<summary>
Number of main frame same-document loads that occurred while the page was
visible.
</summary>
</metric>
<metric name="NumSubFrameDifferentDocumentLoads_Hidden">
<summary>
Number of sub frame different-document loads that occurred while the page
was hidden.
</summary>
</metric>
<metric name="NumSubFrameDifferentDocumentLoads_Visible">
<summary>
Number of sub frame different-document loads that occurred while the page
was visible.
</summary>
</metric>
<metric name="NumSubFrameSameDocumentLoads_Hidden">
<summary>
Number of sub frame same-document loads that occurred while the page was
hidden.
</summary>
</metric>
<metric name="NumSubFrameSameDocumentLoads_Visible">
<summary>
Number of sub frame same-document loads that occurred while the page was
visible.
</summary>
</metric>
</event>
<event name="LoadingPredictor" singular="true">
<owner>sophiechang@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Metrics that reflect the accuracy of the predictions used by the Loading
Predictor. This event will be recorded once per page load on
DocumentOnLoadCompletedInPrimaryMainFrame().
</summary>
<metric name="CorrectSubresourceOriginPreconnectsInitiated">
<summary>
The number of subresource origin preconnects that were initiated by the
Loading Predictor for the navigation and were actually used by the page
load, excluding the main frame URL's origin. If more than 100 subresource
origins were preconnected to and were actually used by the page load, this
will be capped at 100.
</summary>
</metric>
<metric name="CorrectSubresourcePrefetchesInitiated">
<summary>
The number of subresource prefetches that were initiated by the Loading
Predictor for the navigation and were actually used by the page load. If
more than 100 subresources were prefetched and were actually used by the
page load, this will be capped at 100.
</summary>
</metric>
<metric name="LocalPredictionCorrectlyPredictedOrigins">
<summary>
The number of subresource origins that were correctly predicted by the
local prediction database. This will be recorded if there is a prediction
available in the local prediction database and does not necessarily mean
that the prediction was used. If more than 100 subresource origins were
correctly predicted, this will be capped at 100.
</summary>
</metric>
<metric name="LocalPredictionOrigins">
<summary>
The number of subresource origins that were predicted locally. This will
be recorded if there is a prediction available in the local prediction
database and does not necessarily mean that the prediction was used. If
more than 100 subresource origins were predicted, this will be capped at
100.
</summary>
</metric>
<metric name="NavigationStartToFirstSubresourcePrefetchInitiated">
<summary>
The time (in milliseconds) that elapsed between navigation start and the
first subresource prefetch that was initiated based on these predictions.
</summary>
</metric>
<metric name="NavigationStartToNavigationCommit">
<summary>
The time (in milliseconds) that elapsed between navigation start and the
commit finished.
</summary>
</metric>
<metric name="NavigationStartToOptimizationGuidePredictionArrived">
<summary>
The time (in milliseconds) that elapsed between navigation start and the
optimization guide prediction arriving for the navigation.
</summary>
</metric>
<metric name="OptimizationGuidePredictionCorrectlyPredictedOrigins">
<summary>
The number of subresource origins that were correctly predicted by the
Optimization Guide. This will be recorded if the Optimization Guide was
consulted for the page load and the Optimization Guide had a prediction
for it. If more than 100 subresource origins were correctly predicted,
this will be capped at 100.
</summary>
</metric>
<metric name="OptimizationGuidePredictionCorrectlyPredictedSubresources">
<summary>
The number of subresources that were correctly predicted by the
Optimization Guide. This will be recorded if the Optimization Guide was
consulted for the page load and the Optimization Guide had a prediction
for it. If more than 100 subresources were predicted, this will be capped
at 100.
</summary>
</metric>
<metric name="OptimizationGuidePredictionDecision"
enum="OptimizationGuideOptimizationGuideDecision">
<summary>
The decision coming from the Optimization Guide for whether there was a
prediction available for the Page Load. This will be recorded if the
Optimization Guide was consulted for the page load.
</summary>
</metric>
<metric name="OptimizationGuidePredictionOrigins">
<summary>
The number of subresource origins that were predicted by the Optimization
Guide. This will be recorded if the Optimization Guide was consulted for
the page load and the Optimization Guide had a prediction for it. If more
than 100 subresource origins were predicted, this will be capped at 100.
</summary>
</metric>
<metric name="OptimizationGuidePredictionSubresources">
<summary>
The number of subresources that were predicted by the Optimization Guide.
This will be recorded if the Optimization Guide was consulted for the page
load and the Optimization Guide had a prediction for it. If more than 100
subresources were predicted, this will be capped at 100.
</summary>
</metric>
<metric name="SubresourceOriginPreconnectsInitiated">
<summary>
The number of subresource origins that were initiated by the Loading
Predictor and were preconnected to, excluding the main frame URL's origin.
If more than 100 subresource origins were preconnected to, this will be
capped at 100.
</summary>
</metric>
<metric name="SubresourcePrefetchesInitiated">
<summary>
The number of subresource prefetches that were initiated by the Loading
Predictor for the navigation. If more than 100 subresources were
prefetched, this will be capped at 100.
</summary>
</metric>
</event>
<event name="LocalNetworkRequests">
<owner>uthakore@chromium.org</owner>
<owner>invernizzi@chromium.org</owner>
<summary>
Metrics that describe the resource request behavior of pages for which
navigation successfully commits. A separate entry is generated for every
unique IP address or localhost port number to which the loaded page makes a
resource request.
</summary>
<metric name="Count.Failed">
<summary>
The count of requests made by the page to the given resource for which a
response is not received or a network error occurs (i.e. |net_error| !=
|net::OK|) between the time navigation to the page commits and the time it
completes.
</summary>
</metric>
<metric name="Count.Successful">
<summary>
The count of requests made by the page to the given resource for which a
successful response is received (i.e. |net_error| == |net::OK|) between
the time navigation to the page commits and the time it completes.
</summary>
</metric>
<metric name="PortType">
<summary>
An enum value representing the type of port for requests to localhost. The
enum is defined in |LocalNetworkRequestsPageLoadMetricsObserver|. Possible
values are 1 for common web server ports, 2 for common database server
ports, 4 for common print server ports, 8 for common development server
ports, and 0 for all other ports.
</summary>
</metric>
<metric name="ResourceType">
<summary>
An enum value representing the type of resource requested. The enum is
defined in |LocalNetworkRequestsPageLoadMetricsObserver|. Possible values
are 0 for public resources requested by private pages, 1 for private
resources requested by public pages, 2 for private resources within the
same reserved IP space as the loaded private page, 4 for private resources
within a different reserved IP space than the loaded private page, 8 for
resources requested by public pages that are suspected to be routers, and
16 for localhost resources.
</summary>
</metric>
</event>
<event name="LoginDetection" singular="True">
<owner>rajendrant@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records the info about login detected for sites based on different
heuristics.
</summary>
<metric name="Page.LoginType" enum="LoginDetectionType">
<summary>
An enum for representing the different ways of user login to a site, such
as via passwords, via OAuth, etc. Recorded for every page load.
</summary>
</metric>
</event>
<event name="LookalikeUrl.NavigationSuggestion" singular="True">
<owner>meacer@chromium.org</owner>
<owner>cthomp@chromium.org</owner>
<summary>
Metrics recorded when a navigated URL's domain name is visually similar to a
popular domain or a domain that the user engaged with.
</summary>
<metric name="MatchType">
<summary>
An enum value representing the type of the match (popular domain, engaged
domain, etc.). The enum is defined in |LookalikeUrlBlockingPage|.
</summary>
</metric>
<metric name="TriggeredByInitialUrl" enum="Boolean">
<summary>
A boolean representing whether or not the warning was triggered by the
first URL in the chain, or whether the warning was triggered by the final
(committed) URL.
</summary>
</metric>
<metric name="UserAction">
<summary>
An enum value representing the decision the user made when shown an
interstitial (ignored, suggestion_accepted, etc.). The enum is defined in
|LookalikeUrlBlockingPage|.
</summary>
</metric>
</event>
<event name="MainFrameDownload">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<owner>yaoxia@chromium.org</owner>
<summary>
Measurement for top frame download. It is only recorded for downloads
originated from navigations or from HTML anchor download attributes.
</summary>
<metric name="HasGesture">
<summary>
A boolean denoting whether the download involves a transient user gesture.
</summary>
</metric>
<metric name="HasSandbox">
<summary>
A boolean denoting whether the download occurs in a sandboxed browsing
context.
</summary>
</metric>
</event>
<event name="MainFrameNavigation" singular="True">
<owner>thegreenfrog@chromium.org</owner>
<summary>
Metric associated with a main frame navigation. Currently implemented only
on iOS.
</summary>
<metric name="DidCommit" enum="Boolean">
<summary>
Set to 1 if the navigation successfully committed.
</summary>
</metric>
</event>
<event name="Media.Autoplay.Attempt">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when there is an attempt to autoplay (ie. no user gesture).
It will be recorded regardless of the result of this attempt.
</summary>
<metric name="AudioTrack">
<summary>
Whether the element had an audio track when autoplay was attempted.
</summary>
</metric>
<metric name="HighMediaEngagement">
<summary>
Whether the document has a high media engagement.
</summary>
</metric>
<metric name="Muted">
<summary>
Whether the element was muted when autoplay was attempted.
</summary>
</metric>
<metric name="Source">
<summary>
Source of the autoplay attempt: 0 for attribute; 1 for play().
</summary>
</metric>
<metric name="UserGestureRequired">
<summary>
Whether a user gesture was required per autoplay rules at the time of
attempt. By definition there is no user gesture on the stack when the
attempt is registered.
</summary>
</metric>
<metric name="UserGestureStatus">
<summary>
Reflects the current status of user gesture/activation. This is a bit
field with the following values: - 0b0001 if there is a user gesture on
the stack; - 0b0010 if there was a user gesture on the page (ie. was
activated); - 0b0100 if there was a user gesture propagated after a
navigation.
</summary>
</metric>
<metric name="VideoTrack">
<summary>
Whether the element had a video track when autoplay was attempted.
</summary>
</metric>
</event>
<event name="Media.Autoplay.AudioContext">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Records the AudioContext autoplay information.
</summary>
<metric name="SourceNodeStarted">
<summary>
A boolean indicating if start() was called for any source node associated
to the AudioContext.
</summary>
</metric>
<metric name="Status">
<summary>
Status of this AudioContext when the autoplay policy applies. It will
match the values from AudioContext::AutoplayStatus.
</summary>
</metric>
<metric name="UnlockType">
<summary>
How the AudioContext was unlocked if it was. It will match the values from
AudioContext::AutoplayUnlockType unless the AudioContext was never
unlocked in which case it will be equal to -1.
</summary>
</metric>
</event>
<event name="Media.Autoplay.Muted.UnmuteAction">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when there is an attempt to unmute an media that was
autoplaying following the rules of autoplay muted.
</summary>
<metric name="Result">
<summary>
0 means that the unmute failed because it happened without a user gesture.
1 means that it succeeded because it had a user gesture.
</summary>
</metric>
<metric name="Source">
<summary>
Similar to &quot;Source&quot; in &quot;Media.Autoplay.Attempt&quot; with
the addition of a value for both sources being used: 0 for attribute; 1
for play(); 2 for both attempted.
</summary>
</metric>
</event>
<event name="Media.BasicPlayback">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Core metrics associated with a media playback through WebMediaPlayerImpl.
Reported at the time of WatchTimeRecorder destruction or render process
termination; whichever comes first. There will be multiple entries for a
given playback; one for every PlaybackProperties change as well as one for
foreground and background. Records may be aggregated based on PlayerID and
correlated with the Media.WebMediaPlayerState event.
</summary>
<metric name="AudioCodec">
<summary>
media::AudioCodec enum value. Can be kUnknownAudioCodec even when HasAudio
is true because we don't always know the codec.
</summary>
</metric>
<metric name="AudioCodecProfile">
<summary>
media::AudioCodecProfile enum value. Can be AudioCodecProfile::kUnknown
even when HasAudio is true because we don't always know the codec profile.
</summary>
</metric>
<metric name="AudioDecoderName">
<summary>
Enumeration of audio decoder implementations, zero if none or unknown
(Cast, HLS, etc). See AudioDecoderType (media/base/decoder.h) for expected
values.
</summary>
</metric>
<metric name="AudioEncryptionScheme">
<summary>
media::EncryptionMode enum value. Can be kUnencrypted if IsEME is false or
if the audio track is unencrypted.
</summary>
</metric>
<metric name="AutoplayInitiated">
<summary>
Boolean value indicating whether the initial playback was initiated via
autoplay. Multilpe chunk records of the same player should have the same
value. Autoplay is defined as a playback starting before there was a user
activation on the page or without a user initiated same-domain navigation.
</summary>
</metric>
<metric name="CompletedRebuffersCount">
<summary>
Integer count of the number of times a previous rebuffer succeeded and
playback continued.
</summary>
</metric>
<metric name="CompletedRebuffersDuration">
<summary>
Sum in milliseconds of all completed rebuffering events. Only reported if
a rebuffering completion occurred.
</summary>
</metric>
<metric name="Duration">
<summary>
Duration in milliseconds, rounded to the most significant digit, of the
media being played. May be missing if the duration is unknown or infinite.
</summary>
</metric>
<metric name="HasAudio">
<summary>
Boolean value indicating the presence of audio.
</summary>
</metric>
<metric name="HasVideo">
<summary>
Boolean value indicating the presence of video.
</summary>
</metric>
<metric name="IsBackground">
<summary>
Boolean value indicating if this event is for a background playback.
</summary>
</metric>
<metric name="IsEME">
<summary>
Boolean value indicating if this event is for an EME playback.
</summary>
</metric>
<metric name="IsMSE">
<summary>
Boolean value indicating if this event is for an MSE playback. If false it
means this was a SRC playback.
</summary>
</metric>
<metric name="IsMuted">
<summary>
Boolean value indicating if this event is for a muted playback.
</summary>
</metric>
<metric name="IsTopFrame">
<summary>
Flag indicating whether the report comes from the top frame or some inner
frame. For privacy, metrics from inner frames are recorded with the top
frame's origin, so this flag helps separate top frame vs. embedded
playbacks.
</summary>
</metric>
<metric name="LastPipelineStatus">
<summary>
media::PipelineStatus enum value. Always 0 if the playback succeeded; all
other values indicate the playback ended in an error.
</summary>
</metric>
<metric name="MeanTimeBetweenRebuffers">
<summary>
Average number of milliseconds between rebuffering events. Only reported
if a rebuffering event occurred. Computed by dividing total watch time by
the number of rebuffering events.
</summary>
</metric>
<metric name="MediaStreamType" enum="MediaStreamType">
<summary>
Enum value indicating the type of MediaStream if the playback is from a
MediaStream, or kNonMediaStream otherwise.
</summary>
</metric>
<metric name="PlayerID">
<summary>
ID which corresponds to a given WebMediaPlayerImpl instance. May be linked
with Media.WebMediaPlayerState events to understand playback more deeply.
</summary>
</metric>
<metric name="RebuffersCount">
<summary>
Integer count of the number of times playback experienced rebuffering.
</summary>
</metric>
<metric name="VideoCodec">
<summary>
media::VideoCodec enum value. Can be kUnknownVideoCodec even when HasVideo
is true because we don't always know the codec.
</summary>
</metric>
<metric name="VideoCodecProfile">
<summary>
media::VideoCodecProfile enum value. Can be VIDEO_CODEC_PROFILE_UNKNOWN
even when HasVideo is true because we don't always know the codec profile.
</summary>
</metric>
<metric name="VideoDecoderName">
<summary>
Enumeration of video decoder implementations, zero if none or unknown
(Cast, HLS, etc). See VideoDecoderType (media/base/decoder.h) for expected
values.
</summary>
</metric>
<metric name="VideoEncryptionScheme">
<summary>
media::EncryptionMode enum value. Can be kUnencrypted if IsEME is false or
if the video track is unencrypted.
</summary>
</metric>
<metric name="VideoFramesDecoded">
<summary>
Integer count of the video frames decoded in this record.
</summary>
</metric>
<metric name="VideoFramesDropped">
<summary>
Integer count of the video frames dropped in this record. Should not
exceed VideoFramesDecoded.
</summary>
</metric>
<metric name="VideoNaturalHeight">
<summary>
Integer value indicating the natural height of the playback.
</summary>
</metric>
<metric name="VideoNaturalWidth">
<summary>
Integer value indicating the natural width of the playback.
</summary>
</metric>
<metric name="WatchTime">
<summary>
Watch time in milliseconds for this playback. See Media.WatchTime UMA
metrics.
</summary>
</metric>
<metric name="WatchTime.AC">
<summary>
Watch time on AC power in milliseconds for this playback. See
Media.WatchTime UMA metrics.
</summary>
</metric>
<metric name="WatchTime.Battery">
<summary>
Watch time on battery power in milliseconds for this playback. See
Media.WatchTime UMA metrics.
</summary>
</metric>
<metric name="WatchTime.DisplayFullscreen">
<summary>
Watch time for fullscreen in milliseconds for this playback. See
Media.WatchTime UMA metrics. Only reported for foreground playbacks.
</summary>
</metric>
<metric name="WatchTime.DisplayInline">
<summary>
Watch time for inline display in milliseconds for this playback. See
Media.WatchTime UMA metrics. Only reported for foreground playbacks.
</summary>
</metric>
<metric name="WatchTime.DisplayPictureInPicture">
<summary>
Watch time for picture in picture display in milliseconds for this
playback. See Media.WatchTime UMA metrics. Only reported for foreground
playbacks.
</summary>
</metric>
<metric name="WatchTime.NativeControlsOff">
<summary>
Watch time with no controls in milliseconds for this playback. See
Media.WatchTime UMA metrics. Only reported for foreground playbacks.
</summary>
</metric>
<metric name="WatchTime.NativeControlsOn">
<summary>
Watch time with native controls in milliseconds for this playback. See
Media.WatchTime UMA metrics. Only reported for foreground playbacks.
</summary>
</metric>
</event>
<event name="Media.EME.ApiPromiseRejection">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when an Encrypted Media Extensions (EME) API promise is
rejected. In most cases this indicates a failure.
</summary>
<metric name="Api" enum="EmeApiType">
<summary>
The EME API for which the promise is rejected.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="KeySystem" enum="MediaKeySystem">
<summary>
The key system associated with the current CDM.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SystemCode" enum="CdmSystemCode">
<summary>
A CDM specific code providing more details about the cause of rejection.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UseHardwareSecureCodecs" enum="Boolean">
<summary>
Whether hardware secure codecs are required for the current CDM.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Media.EME.CreateMediaKeys">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when createMediaKeys() is called as part of Encrypted Media
Extensions (EME) API.
</summary>
<metric name="IsAdFrame" enum="Boolean">
<summary>
Whether the frame is an ad frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsCrossOrigin" enum="Boolean">
<summary>
Whether the frame is Cross-Origin to the main frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsTopFrame" enum="Boolean">
<summary>
Whether the frame is the main frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="KeySystem" enum="MediaKeySystemLegacy">
<summary>
The key system associated with this call.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Media.EME.GetStatusForPolicy">
<owner>frs@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when the EME API GetStatusForPolicy promise is resolved.
</summary>
<metric name="IsAdFrame" enum="Boolean">
<summary>
Whether the frame is an ad frame. This is not set if the frame is null.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="KeySystem" enum="MediaKeySystem">
<summary>
The key system associated with the current CDM.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="MinHdcpVersion" enum="HdcpVersion">
<summary>
The minimum HDCP version requested for EME API GetStatusForPolicy.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UseHardwareSecureCodecs" enum="Boolean">
<summary>
Whether hardware secure codecs are required for the current CDM.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Media.EME.RequestMediaKeySystemAccess">
<owner>xhwang@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when RequestMediaKeySystemAccess() is called as part of
Encrypted Media Extensions (EME) API.
</summary>
<metric name="IsAdFrame" enum="Boolean">
<summary>
Whether the frame is an ad frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsCrossOrigin" enum="Boolean">
<summary>
Whether the frame is Cross-Origin to the main frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="IsTopFrame" enum="Boolean">
<summary>
Whether the frame is the main frame.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="KeySystem" enum="MediaKeySystemLegacy">
<summary>
The key system passed in requestMediaKeySystemAccess() call.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="VideoCapabilities" enum="Boolean">
<summary>
Whether there are any &quot;videoCapabilities&quot;.
</summary>
</metric>
<metric name="VideoCapabilities.HasEmptyRobustness" enum="Boolean">
<summary>
Whether there are any &quot;videoCapabilities&quot; with empty robustness.
</summary>
</metric>
<metric name="VideoCapabilities.HasHwSecureAllRobustness" enum="Boolean">
<summary>
Whether there are any &quot;videoCapabilities&quot; with robustness being
&quot;HW_SECURE_ALL&quot;.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Media.Engagement.SessionFinished">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
The Media Engagement index stores the number of significant media playbacks
per origin and the number of visits. From that we calculate a Media
Engagement Score.
To tweak the scoring function we are logging the total number of significant
media playbacks, the total number of visits, the calculated engagement score
and the new number of significant media playbacks that occurred this visit.
</summary>
<metric name="Engagement.IsHigh">
<summary>
Whether the Media Engagement Service considers the score to be high (we
are using a two threshold approach so there is one threshold to be
considered high and another one to lose that status to reduce jitter).
</summary>
</metric>
<metric name="Engagement.IsHigh.Changed">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
Whether the IsHigh bit changed during the current session.
</summary>
</metric>
<metric name="Engagement.IsHigh.Changes">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
Counts of IsHigh changing (from 0 to 1 or 1 to 0).
</summary>
</metric>
<metric name="Engagement.IsPreloaded">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
Whether the origin was preloaded (from the chrome://component) as a high
engagement origin.
</summary>
</metric>
<metric name="Engagement.Score">
<summary>
The calculated Media Engagement score for the current origin. The score is
calculated by dividing the number of significant media playbacks by the
number of visits. If the number of visits is below 5 then the score will
be zero. This score is taken from MediaEngagementService.
</summary>
</metric>
<metric name="Playbacks.AudioContextTotal">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The total number of significant media playbacks on this origin that came
from WebAudio / AudioContext.
</summary>
</metric>
<metric name="Playbacks.Delta">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The number of significant media playbacks on this origin during this
session (a visit to an origin on the same tab). A playback is determined
significant if it meets certain criteria such as a video size of at least
200x140px, is not muted, is playing, etc.
</summary>
</metric>
<metric name="Playbacks.MediaElementTotal">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The total number of significant media playbacks on this origin that came
from media elements.
</summary>
</metric>
<metric name="Playbacks.SecondsSinceLast">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The number of seconds between significant media playback on the last visit
and significant media playback on the current visit. If there was no
previous visit or significant media playback this visit it will be 0.
</summary>
</metric>
<metric name="Playbacks.Total">
<summary>
The total number of significant media playbacks on this origin.
</summary>
</metric>
<metric name="Player.Audible.Delta">
<summary>
The number of unique audio/video players on a page that was audible (made
sound) during a visit.
</summary>
</metric>
<metric name="Player.Audible.Total">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The delta from above but instead of a single visit, the total of all
deltas for all visits on this origin.
</summary>
</metric>
<metric name="Player.Significant.Delta">
<summary>
The number of unique audio/video players on a page that was audible (made
sound) and considered significant (played for at least 7 seconds) during a
visit.
</summary>
</metric>
<metric name="Player.Significant.Total">
<obsolete>
Deprecated 8/19 as part of https://crbug.com/998685
</obsolete>
<summary>
The delta from above but instead of a single visit, the total of all
deltas for all visits on this origin.
</summary>
</metric>
<metric name="Visits.Total">
<summary>
The total number of visits to this origin.
</summary>
</metric>
</event>
<event name="Media.Engagement.ShortPlaybackIgnored">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
The Media Engagement index stores the number of significant media playbacks
per origin and the number of audible players. From that we calculate a Media
Engagement Score.
Media with a short playback length is ignored so we are logging any time the
player is ignored with the length in msec. This will allow us to identify
whether sites are being penalized or there is abuse and allow us to tweak
the length considered &quot;short&quot;.
</summary>
<metric name="Length"/>
</event>
<event name="Media.Feed.Discover">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Media Feeds are out of band feeds of media recommendations that are fetched
by the browser. This records when we discover a feed that has been placed in
a meta tag on a website.
</summary>
<metric name="HasMediaFeed">
<summary>
Whether the site has a media feed.
</summary>
</metric>
</event>
<event name="Media.GlobalMediaControls.ActionButtonPressed">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Records when a user presses a button in the Global Media Controls. Records
no more than 100 actions per source per session. Records which button was
pressed (e.g. play, pause, next track, picture-in-picture).
</summary>
<metric name="MediaSessionAction" enum="MediaSessionAction">
<summary>
The action of the button that was pressed (e.g. play, pause, next track,
picture-in-picture).
</summary>
</metric>
</event>
<event name="Media.Kaleidoscope.Navigation">
<obsolete>
Deprecated as of 2020/12.
</obsolete>
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Kaleidoscope is a media recommendations feature in Chrome. This event is
recorded when a user selects a media recommendation and there is a
navigation to the new site from Kaleidoscope.
</summary>
<metric name="WasFromKaleidoscope">
<summary>
Whether the navigation was from Kaleiodscope.
</summary>
</metric>
</event>
<event name="Media.Learning.PredictionRecord">
<owner>liberato@chromium.org</owner>
<summary>
A record of some predicted value vs. an observation. If the prediction is
for a regression-style task (e.g., &quot;predict a number&quot; rather than
&quot;predict an enum value&quot;), then the predicted and observed values
are the numeric values, scaled by default to be in the integer range 0-100.
The exact scaling used depends on the particular regression problem. Please
see the LearningTask structure for the task of interest to find out how it
maps values into the [0, 100] output range.
A record is created for every prediction separately.
For example, in the MediaCapabilities experiments, each playback generates a
record. The predicted / observed values are the ratio of dropped to decoded
frames, expressed as a percentage scaled to 0-100.
</summary>
<metric name="LearningTask">
<summary>
The learning task to which this record applies. This is a persistent hash
of the |name| field in the LearningTask. Presumably, you'll want to
include only records of a particular task when analyzing results.
</summary>
</metric>
<metric name="ObservedValue">
<summary>
Observed value for this sample, scaled into the range [0, 100]. The exact
scaling factor depends on the particular task.
MediaCapabilities, for example, reports 100 * percentage_of_dropped_frames
in this field.
</summary>
</metric>
<metric name="PredictedValue">
<summary>
Predicted value for this sample, scaled into the range [0, 100]. The exact
scaling factor depends on the particular task.
MediaCapabilities, for example, reports 100 * percentage_of_dropped_frames
in this field.
</summary>
</metric>
<metric name="TrainingDataSize">
<summary>
Number of training examples that were used to train this model.
</summary>
</metric>
<metric name="TrainingDataTotalWeight">
<summary>
Total weight of all examples that were used to train this model.
</summary>
</metric>
</event>
<event name="Media.SiteMuted" singular="True">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Event recorded when a website tries to play audio but is muted by the sound
content setting.
</summary>
<metric name="MuteReason">
<summary>
Enum value giving the reason the site was muted. Defined as
|SoundContentSettingObserver::MuteReason|.
</summary>
</metric>
</event>
<event name="Media.VideoDecodePerfRecord">
<owner>chcunningham@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
A record of decoding performance metrics from a video playback with the
given stream characteristics (profile, resolution, fps). Also includes what
Media Capabilities API would claim for such a stream as a means of assessing
the API's accuracy.
</summary>
<metric name="Perf.ApiWouldClaimIsPowerEfficient">
<summary>
Boolean signaling whether MediaCapabilities would classify streams with
these characteristics as power efficient prior to considering this latest
record. MediaCapabilities prediction is accurate when this value matches
RecordIsPowerEfficient.
</summary>
</metric>
<metric name="Perf.ApiWouldClaimIsSmooth">
<summary>
Boolean signaling whether MediaCapabilities would classify streams with
these characteristics as smooth prior to considering this latest record.
MediaCapabilities prediction is accurate when this value matches
RecordIsSmooth.
</summary>
</metric>
<metric name="Perf.PastVideoFramesDecoded">
<summary>
Integer count of past video frames decoded for the given video type.
</summary>
</metric>
<metric name="Perf.PastVideoFramesDropped">
<summary>
Integer count of past video frames dropped for the given video type.
</summary>
</metric>
<metric name="Perf.PastVideoFramesPowerEfficient">
<summary>
Integer count of past video frames power efficient for the given video
type.
</summary>
</metric>
<metric name="Perf.RecordIsPowerEfficient">
<summary>
Boolean signaling whether MediaCapabilities would classify this isolated
playback record as power efficient.
</summary>
</metric>
<metric name="Perf.RecordIsSmooth">
<summary>
Boolean signaling whether MediaCapabilities would classify this isolated
playback record as smooth.
</summary>
</metric>
<metric name="Perf.VideoFramesDecoded">
<summary>
Integer count of the video frames decoded in this record.
</summary>
</metric>
<metric name="Perf.VideoFramesDropped">
<summary>
Integer count of the video frames dropped in this record. Should not
exceed VideoFramesDecoded.
</summary>
</metric>
<metric name="Perf.VideoFramesPowerEfficient">
<summary>
Integer count of the video frames decoded via power efficient means in
this record. Should not exceed VideoFramesDecoded.
</summary>
</metric>
<metric name="Video.CodecProfile">
<summary>
media::VideoCodecProfile enum value. Can be VIDEO_CODEC_PROFILE_UNKNOWN if
we don't know the video codec.
</summary>
</metric>
<metric name="Video.EME.KeySystem" enum="MediaKeySystem">
<summary>
Name of the KeySystem used during for an encrypted (EME) playback. Will be
unset when EME is not used.
</summary>
</metric>
<metric name="Video.EME.UseHwSecureCodecs">
<summary>
Boolean indicating whether content decryption module (CDM) was configured
to use hardware secure decoding. May be true or false for EME playbacks.
Will be unset for non-EME playbacks.
</summary>
</metric>
<metric name="Video.FramesPerSecond">
<summary>
Integer representing video frames per second. This is the cadence of video
frames as described by stream timestamps multiplied by
HTMLMediaELement.playbackRate.
</summary>
</metric>
<metric name="Video.InTopFrame">
<summary>
Flag indicating whether the record comes from the top frame or some inner
frame. For privacy, metrics from inner frames are recorded with the top
frame's origin, so this flag helps separate top frame vs. embedded
playbacks.
</summary>
</metric>
<metric name="Video.NaturalHeight">
<summary>
Integer representing height of video natural size.
</summary>
</metric>
<metric name="Video.NaturalWidth">
<summary>
Integer representing width of video natural size.
</summary>
</metric>
<metric name="Video.PlayerID">
<summary>
ID which corresponds to a given WebMediaPlayerImpl instance. May be linked
with Media.WebMediaPlayerState events to understand playback more deeply.
</summary>
</metric>
</event>
<event name="Media.WatchTime">
<obsolete>
Deprecated 8/2017 in favor Media.BasicPlayback
</obsolete>
<owner>dalecurtis@chromium.org</owner>
<summary>
Watch time is defined as the amount of elapsed media time for audio+video
media aggregated per player instance. A minimum of 7 seconds of unmuted,
foreground media must be watched to start watch time monitoring. Watch time
is checked on a regular basis and reported upon one of the stop events
mentioned below or at player destruction if none occur prior.
Any one of paused, hidden, or muted is sufficient to stop watch time metric
reports. Each of these has a hysteresis where if the state change is undone
within some time, the watch time will be counted as uninterrupted.
Power events (on/off battery power) have a similar hysteresis, but unlike
the aforementioned properties, will not stop metric collection.
Native controls events have a similar behavior than power events.
Each seek event will result in a new watch time metric being started and the
old metric finalized as accurately as possible.
</summary>
<metric name="Audio.AC"/>
<metric name="Audio.All"/>
<metric name="Audio.Battery"/>
<metric name="Audio.EME"/>
<metric name="Audio.MSE"/>
<metric name="Audio.NativeControlsOff"/>
<metric name="Audio.NativeControlsOn"/>
<metric name="Audio.SRC"/>
<metric name="AudioVideo.AC"/>
<metric name="AudioVideo.All"/>
<metric name="AudioVideo.Background.AC"/>
<metric name="AudioVideo.Background.All"/>
<metric name="AudioVideo.Background.Battery"/>
<metric name="AudioVideo.Background.EME"/>
<metric name="AudioVideo.Background.MSE"/>
<metric name="AudioVideo.Background.SRC"/>
<metric name="AudioVideo.Battery"/>
<metric name="AudioVideo.DisplayFullscreen"/>
<metric name="AudioVideo.DisplayInline"/>
<metric name="AudioVideo.DisplayPictureInPicture"/>
<metric name="AudioVideo.EME"/>
<metric name="AudioVideo.MSE"/>
<metric name="AudioVideo.NativeControlsOff"/>
<metric name="AudioVideo.NativeControlsOn"/>
<metric name="AudioVideo.SRC"/>
</event>
<event name="Media.WebAudio.AudioContext.AudibleTime">
<owner>hongchan@chromium.org</owner>
<owner>mjwilson@chromium.org</owner>
<owner>webaudio-dev@chromium.org</owner>
<summary>
Records the AudioContext audible time information.
</summary>
<metric name="AudibleTime">
<summary>
Audible time in milliseconds for this event.
</summary>
</metric>
<metric name="IsMainFrame">
<summary>
Indicates whether the event is fired from main frame.
</summary>
</metric>
</event>
<event name="Media.WebMediaPlayerState">
<owner>dalecurtis@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Final state of WebMediaPlayerImpl instance. Records only immutable playback
properties. Contains a PlaybackID which links to Media.BasicPlayback events.
</summary>
<metric name="AudioEncryptionType" enum="MediaEncryptionType">
<summary>
Encryption type of the audio stream such as whether audio is encrypted and
if so whether it has clear lead.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ContainerName">
<summary>
media::container_names::MediaContainerName enum value. Only recorded for
!IsMSE src=URL playbacks, this is the container of the media being played
back; E.g., mp4, avi, mp3, etc.
</summary>
</metric>
<metric name="FinalPipelineStatus" enum="PipelineStatus">
<summary>
media::PipelineStatus enum value. Always 0 if the playback succeeded; all
other values indicate the playback ended in an error.
</summary>
</metric>
<metric name="IsEME">
<summary>
Boolean value indicating if this event is for an EME playback. Note: EME
can be attached anytime during the lifecycle of a WebMediaPlayerImpl, but
once attached can't be removed.
</summary>
</metric>
<metric name="IsHardwareSecure" enum="Boolean">
<summary>
Boolean value indicating whether the EME playback is using hardware secure
pipeline. For clear playback, this will always be false.
</summary>
</metric>
<metric name="IsMSE">
<summary>
Boolean value indicating if this event is for an MSE playback. If false it
means this was a SRC playback.
</summary>
</metric>
<metric name="IsTopFrame">
<summary>
Flag indicating whether the report comes from the top frame or some inner
frame. For privacy, metrics from inner frames are recorded with the top
frame's origin, so this flag helps separate top frame vs. embedded
playbacks.
</summary>
</metric>
<metric name="KeySystem" enum="MediaKeySystem">
<summary>
For EME playback, this is the key system used. For clear playback, this
will always be the default value 0 (kUnknownKeySystemForUkm).
</summary>
</metric>
<metric name="PlayerID">
<summary>
ID which corresponds to a given WebMediaPlayerImpl instance. May be linked
with Media.BasicPlayback events to understand a playback more deeply.
</summary>
</metric>
<metric name="RendererType" enum="MediaRendererType">
<summary>
Type of media::Renderer used for the playback. In most cases we do not
support dynamically changing RendererType during one playback.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TimeToFirstFrame">
<summary>
Time in milliseconds from when WebMediaPlayerImpl starts loading until the
first video frame has been shown.
</summary>
</metric>
<metric name="TimeToMetadata">
<summary>
Time in milliseconds from when WebMediaPlayerImpl starts loading until
metadata is known.
</summary>
</metric>
<metric name="TimeToPlayReady">
<summary>
Time in milliseconds from when WebMediaPlayerImpl starts loading until it
has buffered enough to start playback.
</summary>
</metric>
<metric name="URLScheme">
<summary>
media::mojom::MediaURLScheme enum value. Only recorded for !IsMSE src=URL
playbacks, this is the scheme of that URL; E.g., http, https, filesystem,
etc.
</summary>
</metric>
<metric name="VideoEncryptionType" enum="MediaEncryptionType">
<summary>
Encryption type of the video stream such as whether video is encrypted and
if so whether it has clear lead.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="MediaRouter.CastWebSenderExtensionLoadUrl" singular="True">
<owner>rwkeane@chromium.org</owner>
<owner>openscreen-eng@google.com</owner>
<summary>
Records that the a resource has been loaded from the Media Router Component
Extension.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="MediaRouter.SiteInitiatedMirroringStarted">
<owner>muyaoxu@google.com</owner>
<owner>openscreen-eng@google.com</owner>
<summary>
Recorded whenever user starts a site-initiated mirroring session via Media
Router.
</summary>
<metric name="AllowAudioCapture" enum="BooleanAllowed">
<summary>
Whether audio capture is allowed in the cast session. If allowed, audio
playback will happen on the receiver side. If not allowed, audio playback
will happen on the sender side.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="MediaRouter.TabMirroringStarted">
<owner>takumif@chromium.org</owner>
<owner>openscreen-eng@google.com</owner>
<summary>
Recorded whenever user starts a tab mirroring session via Media Router.
</summary>
<metric name="AudioState" enum="WebContentsAudioState">
<summary>
The audio playback state of the WebContents at the start of the tab
mirroring session.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Memory.Experimental">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
Metrics associated with memory consumption, in MB.
</summary>
<metric name="ArrayBuffer">
<summary>
Measure of memory consumed by Array Buffer.
</summary>
</metric>
<metric name="BlinkGC">
<summary>
Measure of memory consumed by Oilpan.
</summary>
</metric>
<metric name="BlinkGC.AllocatedObjects">
<summary>
Measure of memory consumed by live allocations made from Oilpan.
</summary>
</metric>
<metric name="CanvasResourceProvider.SkSurface">
<summary>
Measure of memory used due to CanvasResourceProvider's SkSurface.
</summary>
</metric>
<metric name="CommandBuffer">
<summary>
Measure of memory consumed by GL command buffer.
</summary>
</metric>
<metric name="Discardable">
<summary>
Measure of memory consumed by Discardable memory service.
</summary>
</metric>
<metric name="DownloadService">
<summary>
Measure of memory used by download service.
</summary>
</metric>
<metric name="Extensions.ValueStore">
<summary>
Measure of memory consumed by Key Value Store databases of extensions.
</summary>
</metric>
<metric name="FontCaches">
<summary>
Measure of memory used by font platform and shape caches in renderer
process.
</summary>
</metric>
<metric name="GpuMemory">
<summary>
Measure of GPU memory used by Chrome.
</summary>
</metric>
<metric name="History">
<summary>
Approximate measure of memory consumed by History service.
</summary>
</metric>
<metric name="IsVisible">
<summary>
Indicates whether the tab is visible or not at the time of metric
collection.
</summary>
</metric>
<metric name="JavaHeap">
<summary>
Measure of memory consumed by java heap on Android.
</summary>
</metric>
<metric name="LevelDatabase">
<summary>
Measure of memory consumed by unaccounted level databases.
</summary>
</metric>
<metric name="Malloc">
<summary>
Measure of memory allocated by malloc, that is not classified by other
metrics.
</summary>
</metric>
<metric name="Malloc.AllocatedObjects">
<summary>
Measure of total memory used by objects allocated using malloc.
</summary>
</metric>
<metric name="Net">
<obsolete>
Deprecated as of 09/2021.
</obsolete>
<summary>
Measure of memory allocated by network sockets and caches.
</summary>
</metric>
<metric name="Net.UrlRequestContext">
<obsolete>
Deprecated as of 09/2021.
</obsolete>
<summary>
Measure of memory allocated by all network requests.
</summary>
</metric>
<metric name="NumberOfAdSubframes">
<summary>
The number of ad subframes that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfArrayBufferContents">
<summary>
The number of arraybuffer contents that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by closing/removal.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing_After10sSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by closing/removal, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByClosing_After1minSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by closing/removal, that
happened at least 1 minute after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByNavigation">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by navigating away.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByNavigation_After10sSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by navigating away, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByNavigation_After1minSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by navigating away, that
happened at least 1 minute after detaching.
</summary>
</metric>
<metric name="NumberOfCallsInDetachedWindowByOtherReason">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by another reason.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByOtherReason_After10sSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by another reason, that
happened at least 10 seconds after detaching.
</summary>
</metric>
<metric
name="NumberOfCallsInDetachedWindowByOtherReason_After1minSinceDetaching">
<obsolete>
Deprecated as of 01/2020.
</obsolete>
<summary>
The number of function calls in a window detached by another reason, that
happened at least 1 minute after detaching.
</summary>
</metric>
<metric name="NumberOfDetachedScriptStates">
<summary>
The number of detached ScriptState that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfDocuments">
<summary>
The number of documents that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfExtensions">
<summary>
The number of extensions that are served from the associated renderer
process.
</summary>
</metric>
<metric name="NumberOfFrames">
<summary>
The number of frames that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfLayoutObjects">
<summary>
The number of layout objects that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfMojoHandles">
<summary>
The number of mojo handles stored in HandleTable.
</summary>
</metric>
<metric name="NumberOfNodes">
<summary>
The number of nodes that the associated renderer owns.
</summary>
</metric>
<metric name="NumberOfWebMediaPlayers">
<summary>
The number of web media players in the associated renderer.
</summary>
</metric>
<metric name="OmniboxSuggestions">
<summary>
Measure of memory used due to URL indexing and autocomplete suggestions.
</summary>
</metric>
<metric name="PartitionAlloc">
<summary>
Measure of memory allocated by PartitionAlloc allocator.
</summary>
</metric>
<metric name="PartitionAlloc.AllocatedObjects">
<summary>
Measure of total memory used by objects allocated using PartitionAlloc.
</summary>
</metric>
<metric name="PartitionAlloc.Partitions.ArrayBuffer">
<summary>
Measure of memory used by Array Buffer partition in PartitionAlloc.
</summary>
</metric>
<metric name="PartitionAlloc.Partitions.Buffer">
<summary>
Measure of memory used by Buffer partition in PartitionAlloc.
</summary>
</metric>
<metric name="PartitionAlloc.Partitions.FastMalloc">
<summary>
Measure of memory used by Fast Malloc partition in PartitionAlloc.
</summary>
</metric>
<metric name="PartitionAlloc.Partitions.Layout">
<summary>
Measure of memory used by Layout partition in PartitionAlloc.
</summary>
</metric>
<metric name="PrivateMemoryFootprint">
<summary>
Measure of total private memory consumed by process.
</summary>
<aggregation>
<history>
<index fields="metrics.ProcessType"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PrivateSwapFootprint">
<summary>
Measure of private swap memory consumed by a process. Available on Linux
and Android.
</summary>
</metric>
<metric name="ProcessType">
<summary>
Type of process (e.g. browser, renderer, GPU --- see
services/resource_coordinator/public/mojom/memory_instrumentation/memory_instrumentation.mojom)
of associated metrics.
</summary>
<aggregation>
<history>
<statistics export="False">
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Resident">
<summary>
Size of process' working set.
</summary>
</metric>
<metric name="SharedMemoryFootprint">
<summary>
Measure of total shared memory consumed by process.
</summary>
</metric>
<metric name="SiteStorage">
<summary>
Measure of memory used due to web storage APIs in browser process.
</summary>
</metric>
<metric name="SiteStorage.BlobStorage">
<summary>
Measure of memory used by in-memory blob file API in browser process.
</summary>
</metric>
<metric name="SiteStorage.IndexDB">
<summary>
Measure of memory used due to IndexedDB API in browser process.
</summary>
</metric>
<metric name="SiteStorage.LocalStorage">
<summary>
Measure of memory used due to Local Storage API in browser process.
</summary>
</metric>
<metric name="SiteStorage.SessionStorage">
<summary>
Measure of memory used due to Session Storage API in browser process.
</summary>
</metric>
<metric name="Skia">
<summary>
Measure of memory used by Skia.
</summary>
</metric>
<metric name="Skia.SkGlyphCache">
<summary>
Measure of memory used by Skia Glyph Cache.
</summary>
</metric>
<metric name="Skia.SkResourceCache">
<summary>
Measure of memory used by Skia Resource Cache.
</summary>
</metric>
<metric name="Sqlite">
<summary>
Measure of memory used by all sqlite databases.
</summary>
</metric>
<metric name="Sync">
<summary>
Measure of memory used by Sync storage.
</summary>
</metric>
<metric name="TabRestore">
<summary>
Approximate measure of memory used by Tab restore service.
</summary>
</metric>
<metric name="TimeSinceLastNavigation">
<summary>
The time in seconds since the Tab navigated. Only emitted for tabs that
are not sharing a process.
</summary>
</metric>
<metric name="TimeSinceLastVisibilityChange">
<summary>
The time in seconds since the Tab changed visibility. Only emitted for
tabs that are not sharing a process.
</summary>
</metric>
<metric name="Total2.PrivateMemoryFootprint">
<summary>
Measure of total private memory consumed by all processes.
</summary>
</metric>
<metric name="Total2.SharedMemoryFootprint">
<summary>
Measure of total shared memory consumed by all processes.
</summary>
</metric>
<metric name="UI">
<summary>
Measure of memory used by Android UI bitmaps.
</summary>
</metric>
<metric name="Uptime">
<summary>
Process uptime.
</summary>
</metric>
<metric name="V8">
<summary>
Measure of memory consumed by V8.
</summary>
<aggregation>
<history>
<index fields="metrics.ProcessType"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="V8.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in V8.
</summary>
<aggregation>
<history>
<index fields="metrics.ProcessType"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="V8.Main">
<summary>
Measure of memory consumed by the main isolate of V8.
</summary>
</metric>
<metric name="V8.Main.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the main isolate of V8.
</summary>
</metric>
<metric name="V8.Main.GlobalHandles">
<summary>
Measure of memory consumed by global handles in V8.
</summary>
</metric>
<metric name="V8.Main.GlobalHandles.AllocatedObjects">
<summary>
Measure of memory consumed by used global handles in V8.
</summary>
</metric>
<metric name="V8.Main.Heap">
<summary>
Measure of memory consumed by the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.CodeLargeObjectSpace">
<summary>
Measure of memory consumed by the code large object space of the main heap
of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.CodeLargeObjectSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the code large object space
of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.CodeSpace">
<summary>
Measure of memory consumed by the code space of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.CodeSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the code space of the main
heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.LargeObjectSpace">
<summary>
Measure of memory consumed by the large object space of the main heap of
V8.
</summary>
</metric>
<metric name="V8.Main.Heap.LargeObjectSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the large object space of
the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.MapSpace">
<summary>
Measure of memory consumed by the map space of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.MapSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the map space of the main
heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.NewLargeObjectSpace">
<summary>
Measure of memory consumed by the new large object space of the main heap
of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.NewLargeObjectSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the new large object space
of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.NewSpace">
<summary>
Measure of memory consumed by the new space of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.NewSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the new space of the main
heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.OldSpace">
<summary>
Measure of memory consumed by the old space of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.OldSpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the old space of the main
heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.ReadOnlySpace">
<summary>
Measure of memory consumed by the read-only space of the main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Heap.ReadOnlySpace.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in the read-only space of the
main heap of V8.
</summary>
</metric>
<metric name="V8.Main.Malloc">
<summary>
Measure of memory allocated by malloc in the main isolate of V8.
</summary>
</metric>
<metric name="V8.Workers">
<summary>
Measure of memory consumed by worker isolates of V8.
</summary>
</metric>
<metric name="V8.Workers.AllocatedObjects">
<summary>
Measure of memory consumed by live objects in worker isolates of V8.
</summary>
</metric>
<metric name="WebCache">
<summary>
Measure of memory consumed by all resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.CSSStylesheetResources">
<summary>
Measure of memory consumed by CSS Stylesheet resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.EncodedSizeDuplicatedInDataUrls">
<summary>
Measure of memory consumed by data URLs of Image resources in Blink Web
Cache.
</summary>
</metric>
<metric name="WebCache.FontResources">
<summary>
Measure of memory consumed by Font resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.ImageResources">
<summary>
Measure of memory consumed by Image resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.OtherResources">
<summary>
Measure of memory consumed by other resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.ScriptResources">
<summary>
Measure of memory consumed by Script resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.V8CodeCache">
<summary>
Measure of memory consumed by V8 code cache held by Script resources in
Blink Web Cache.
</summary>
</metric>
<metric name="WebCache.XSLStylesheetResources">
<summary>
Measure of memory consumed by XSL Stylesheet resources in Blink Web Cache.
</summary>
</metric>
<metric name="WebMediaPlayer.Audio">
<summary>
Measure of total memory used by media/webmediaplayer/audio.
</summary>
</metric>
<metric name="WebMediaPlayer.DataSource">
<summary>
Measure of total memory used by media/webmediaplayer/data_source.
</summary>
</metric>
<metric name="WebMediaPlayer.Demuxer">
<summary>
Measure of total memory used by media/webmediaplayer/demuxer.
</summary>
</metric>
<metric name="WebMediaPlayer.Video">
<summary>
Measure of total memory used by media/webmediaplayer/video.
</summary>
</metric>
</event>
<event name="Memory.TabFootprint">
<owner>tommckee@chromium.org</owner>
<summary>
Measure of memory used by the processes that host an instance of a tab.
Intended as a high-level metric for analyzing effective memory use of
individual sites.
</summary>
<metric name="MainFrameProcessPMF">
<summary>
Measure of private memory, in MB, consumed by the render process dedicated
to hosting the main frame. Undefined if the main frame is hosted by a
render process used by other tabs. If this is undefined, TabPMF will be
undefined.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SubFrameProcessPMF.Excluded">
<summary>
Number of render processes that were blocked from contributing to
SubFrameProcessPMF.Total. A process can have its contribution blocked if
the process has responsibilities outside the scope of the relevant tab. If
this is non-zero, TabPMF will be undefined.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SubFrameProcessPMF.Included">
<summary>
Number of render processes that contributed to SubFrameProcessPMF.Total.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SubFrameProcessPMF.Total">
<summary>
Measure of total private memory, in MB, consumed by the render processes
dedicated to hosting sub-frames of the tab. Note that, if a render process
hosts frames of other tabs, it isn't considered to be 'dedicated' and so
it doesn't contribute to this total.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TabPMF">
<summary>
Measure of private memory, in MB, consumed by all render processes
dedicated to hosting some part of a tab. Undefined if there are processes
responsible for hosting parts of this tab while hosting parts of other
tabs.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="MixedContentAutoupgrade.ResourceRequest">
<owner>carlosil@chromium.org</owner>
<summary>
Status and Network error or HTTP response code for a resource request that
was autoupgraded to HTTPS as part of the mixed content autoupgrade
experiment.
</summary>
<metric name="Code">
<summary>
The HTTP response or network error code for an autoupgraded request.
</summary>
</metric>
<metric name="Status">
<summary>
An enum with 0 representing started, 1 failed, and 2 response received.
</summary>
</metric>
</event>
<event name="MobileFriendliness" singular="True">
<owner>kumagi@google.com</owner>
<owner>gaul@google.com</owner>
<metric name="AllowUserZoom" enum="Boolean">
<summary>
Whether the page allows the user to zoom in/out.
</summary>
</metric>
<metric name="BadTapTargetsRatio">
<obsolete>
Deprecated 12/2022 in favor of MobileFriendliness.TappedBadTargets.
</obsolete>
<summary>
Percentage of tap targets whose center position is within another tap
target (expanded by a margin). The detail of the algorithm is
go/bad-tap-target-ukm. If evaluation time budget exceeded, this will be is
-2.
</summary>
</metric>
<metric name="SmallTextRatio">
<summary>
Percentage of small font text area in total text area.
</summary>
</metric>
<metric name="TextContentOutsideViewportPercentage">
<summary>
Percentage of pixels of text and images horizontally outside the viewport,
relative to the frame width.
</summary>
</metric>
<metric name="ViewportDeviceWidth" enum="Boolean">
<summary>
Whether the width of the viewport specified as device-width or not.
</summary>
</metric>
<metric name="ViewportHardcodedWidth">
<summary>
Specified hardcoded viewport width in CSS pixels.
</summary>
</metric>
<metric name="ViewportInitialScaleX10">
<summary>
Specified initial viewport scaling multiplied by 10. 1 means 0.1, 100
means 10. [1-100].
</summary>
</metric>
</event>
<event name="MobileFriendliness.TappedBadTargets">
<owner>kumagi@google.com</owner>
<owner>gaul@google.com</owner>
<metric name="CloseDisplayEdge" enum="Boolean">
<summary>
The distance from the center position of tapped target to display's edge
is less than 5mm.
</summary>
</metric>
<metric name="HighlyZoomed" enum="Boolean">
<summary>
Whether the page is manually 100%+ zoomed when tapped.
</summary>
</metric>
<metric name="TooClose" enum="Boolean">
<summary>
Whether the center of the tapped tap target is close less than 5mm to
other tap target's edge.
</summary>
</metric>
<metric name="TooSmall" enum="Boolean">
<summary>
Whether the tapped tap target is small as both width and height is less
than 7mm.
</summary>
</metric>
<metric name="Zoomed" enum="Boolean">
<summary>
Whether the page is manually 20%+ zoomed when tapped.
</summary>
</metric>
</event>
<event name="MobileMenu.DirectShare">
<owner>sayman@chromium.org</owner>
<summary>
User pressed 'Share' in the app menu. The intent most recently used to share
was invoked directly. See also MobileMenu.Share.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="MobileMenu.FindInPage">
<owner>frechette@chromium.org</owner>
<summary>
User pressed 'Find in page' in the app menu.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred (typically only records
true values).
</summary>
</metric>
</event>
<event name="MobileMenu.Share">
<owner>sayman@chromium.org</owner>
<summary>
User pressed 'Share' in the app menu. A picker was shown. See also
MobileMenu.DirectShare.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="Navigation.IDNA2008Transition" singular="True">
<owner>meacer@google.com</owner>
<owner>chrome-trusty-transport@google.com</owner>
<summary>
Recorded upon 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>
<metric name="Character" enum="IDNA2008DeviationCharacter">
<summary>
The deviation character in the URLs eTLD+1. Chrome's URL parsing code
normalizes deviation characters so the characters don't appear in the
recorded URL. This is recorded to make the deviation character
identification simpler.
</summary>
</metric>
</event>
<event name="Navigation.ReceivedResponse">
<owner>miketaylr@chromium.org</owner>
<owner>potassium-katabolism@google.com</owner>
<summary>
Recorded when the navigation receives a response from the networking layer.
Only recorded for main frames (i.e. top-level frames).
</summary>
<metric name="HasAcceptCHFrame">
<summary>
A boolean value representing whether the navigation included the
processing of an ACCEPT_CH ALPS frame.
</summary>
</metric>
<metric name="NavigationFirstResponseLatency">
<summary>
The duration (in milliseconds) for how long it took from the time the
navigation loader is created to the time the navigation loader receives
the response from the networking layer.
</summary>
</metric>
</event>
<event name="NavigationPredictorAnchorElementMetrics">
<owner>ryansturm@chromium.org</owner>
<summary>
Metrics that describe an anchor element's data. This event is emitted at
most 10 times per page load, once for each of the top n URLs on a page, and
the order of the events is randomized. If there is no nth anchor element, no
value is returned.
</summary>
<metric name="AnchorIndex">
<summary>
The index of the clicked-on anchor element in the tracked list.
</summary>
</metric>
<metric name="BucketedPathHash">
<summary>
The anchor element's href URL path is hashed, then bucketed using 10
different buckets. The bucket ({0, 1, ..., 9}) the hash falls into is
logged in this field.
</summary>
</metric>
<metric name="ContainsImage">
<summary>
1 if the anchor element contains an image.
</summary>
</metric>
<metric name="FontSize">
<summary>
The bucketed font size of the anchor element, according to its computed
style. 1 corresponds to a pixel font size in [0, 10), 2 corresponds to a
fonts size in [10, 18) and 3 is logged when the font size is 18 pixels or
larger.
</summary>
</metric>
<metric name="HasTextSibling">
<summary>
1 if the anchor element has an immediate text sibling, 0 otherwise.
</summary>
</metric>
<metric name="IsBold">
<summary>
1 if the anchor's computed style's font-weight is greater than 500, 0
otherwise.
</summary>
</metric>
<metric name="IsInIframe">
<summary>
1 if the anchor element is in an iframe.
</summary>
</metric>
<metric name="IsURLIncrementedByOne">
<summary>
1 if the anchor element's target URL and the document's source URL only
differ by one number, and the target URL increments that number in the
source URL by 1.
</summary>
</metric>
<metric name="NavigationStartToLinkLoggedMs">
<summary>
The time in ms between navigation start and the moment this entry was
logged. Exponentially bucketed using GetExponentialBucketMin a value of
1.3.
</summary>
</metric>
<metric name="PathDepth">
<summary>
The number of slashes in the anchor element's href URL path. Truncated at
5.
</summary>
</metric>
<metric name="PathLength">
<summary>
The number of characters in the anchor element's href URL path. Buckets of
size 10, truncated at 100.
</summary>
</metric>
<metric name="PercentClickableArea">
<summary>
The percent of the total document area that this anchor element's
clickable area occupies.
</summary>
</metric>
<metric name="PercentVerticalDistance">
<summary>
How far down the document the top of the anchor element is, expressed as a
ratio with the total document height.
</summary>
</metric>
<metric name="SameOrigin">
<summary>
1 if the anchor element's target URL and the document's source URL are the
same origin.
</summary>
</metric>
</event>
<event name="NavigationPredictorPageLinkClick">
<owner>ryansturm@chromium.org</owner>
<summary>
Sent on an in-page link click.
</summary>
<metric name="AnchorElementIndex">
<summary>
An integer (0-indexed), corresponding to the index of that anchor element
in the list of top ten anchor elements on that page, sorted by their
navigation scores. If an anchor element is clicked that is not in
NavigationPredictorAnchorElementMetrics, -1 is returned.
</summary>
</metric>
<metric name="HrefUnchanged">
<summary>
1 if the href of the anchor element at the time the click is handled is
the same as the href when the element was created. 0 if the href changed.
</summary>
</metric>
<metric name="NavigationStartToLinkClickedMs">
<summary>
The time in milliseconds between the moment an entry for the anchor
element was logged to UKM and the moment the user clicked on it.
Exponentially bucketed, 1.3 factor.
</summary>
</metric>
</event>
<event name="NavigationPredictorPageLinkMetrics" singular="True">
<owner>ryansturm@chromium.org</owner>
<summary>
Metrics that describe aggregate information about the links within a page.
Some anchor elements present on a page may not be represented in these
metrics, if they are outside the viewport or if their placement in the page
is after the 40th anchor element. This event is emitted at most once per
page load. Unless otherwise specified, each of the aggregate metrics is
bucketted with exponential buckets of size 1.3.
</summary>
<metric name="MedianLinkLocation">
<summary>
The median vertical link location in the viewport, as a ratio of the
distance from the top of the link to the visible top of the page.
Bucketted with a linear bucket size of 10.
</summary>
</metric>
<metric name="NumberOfAnchors.ContainsImage">
<summary>
The total number of links in the page that are images.
</summary>
</metric>
<metric name="NumberOfAnchors.InIframe">
<summary>
The total number of links in the page in any iframe.
</summary>
</metric>
<metric name="NumberOfAnchors.SameHost">
<summary>
The total number of links in the page that point to the same origin as the
current page's origin.
</summary>
</metric>
<metric name="NumberOfAnchors.Total">
<summary>
The total number of links within a page.
</summary>
</metric>
<metric name="NumberOfAnchors.URLIncremented">
<summary>
The total number of links on the page, where each link only differs from
the current page's URL by a number, and that number is incremented by 1 in
the link.
</summary>
</metric>
<metric name="TotalClickableSpace">
<summary>
The total clickable space in the entire page, expressed as a ratio of the
visible clickable region to the entire viewport region.
</summary>
</metric>
<metric name="Viewport.Height">
<summary>
The height of the viewport, in pixels.
</summary>
</metric>
<metric name="Viewport.Width">
<summary>
The width of the viewport, in pixels.
</summary>
</metric>
</event>
<event name="NavigationPredictorPreloadOnHover">
<owner>ryansturm@chromium.org</owner>
<owner>domenic@chromium.org</owner>
<owner>isaboori@google.com</owner>
<summary>
This event records required data to assess and fine-tune the preloading
on-hover and on pointer down heuristics, and is submitted once per mouse
over, mouse out, mouse down and mouse up events for randomly selected anchor
elements.
</summary>
<metric name="HoverNotTakenMs">
<summary>
Duration that the user was hovering over the anchor element and it did not
result in a navigation to that link. Exponentially bucketed using
GetExponentialBucketMin with a spacing of 1.3.
</summary>
</metric>
<metric name="HoverTakenMs">
<summary>
Duration that the user was hovering over the anchor element and it
resulted in a navigation to that link. Exponentially bucketed using
GetExponentialBucketMin with a spacing of 1.3.
</summary>
</metric>
<metric name="MouseDownNotTakenMs">
<summary>
Time since the user pressed the left/middle mouse button over the anchor
element and that did not result in a navigation to that link.
Exponentially bucketed using GetExponentialBucketMin with a spacing of
1.3.
</summary>
</metric>
<metric name="MouseDownTakenMs">
<summary>
Time since the user presses the left/middle mouse button over the anchor
element and that resulted in a navigation to that link. Exponentially
bucketed using GetExponentialBucketMin with a spacing of 1.3.
</summary>
</metric>
</event>
<event name="NavigationPredictorRendererWarmup">
<obsolete>
Removed in M91.
</obsolete>
<owner>robertogden@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Internal feature metrics for a feature that decides whether to start a spare
renderer on pages where Chrome heuristically determines that a cross-origin
page load is likely to occur based on the anchor elements on the page being
cross-origin and/or whether the current page is a search engine result page.
</summary>
<metric name="CrossOriginLinksRatio">
<summary>
An int in the range [0, 100] to represent a percentage of the ratio of the
links on a page that are cross-origin to the source document. Recorded
when there are 1 or more links on a page.
</summary>
</metric>
<metric name="DidWarmup" enum="Boolean">
<summary>
A bool that is set if a spare renderer was started. Also set on
counter-factual arms when the same criteria were met.
</summary>
</metric>
<metric name="PageIndependentStatusBitMask">
<summary>
A bitmask, recorded on every page when the feature flag is enabled. 0b0001
- Set if the feature is in a cooldown period following the last renderer
warmup. 0b0010 - Set if the browser already had a spare renderer. 0b0100 -
Set if the device memory is below the experiment threshold.
</summary>
</metric>
<metric name="WasDSESRP" enum="Boolean">
<summary>
A bool that is set if the page is a search result page for the browser's
default search engine
</summary>
</metric>
</event>
<event name="NavigationPredictorUserInteractions">
<owner>ryansturm@chromium.org</owner>
<owner>isaboori@google.com</owner>
<summary>
Metrics that describe user interaction with an anchor element. This event is
emitted once per randomly selected anchor elements.
</summary>
<metric name="AnchorIndex">
<summary>
The index of the anchor element in NavigationPredictor's |top_urls_|.
</summary>
</metric>
<metric name="IsInViewport">
<summary>
1 if anchor element is in viewport, otherwise 0.
</summary>
</metric>
<metric name="IsPointerHoveringOver">
<summary>
1 if the pointer is hovering over the anchor element, otherwise 0.
</summary>
</metric>
<metric name="MaxEnteredViewportToLeftViewportMs">
<summary>
Maximum time between the moment the anchor element entered the viewport
and the moment it left the viewport in milliseconds. Exponentially
bucketed using GetExponentialBucketMin a value of 1.3.
</summary>
</metric>
<metric name="MaxHoverDwellTimeMs">
<summary>
Maximum dwelltime of pointer hovering over the anchor element in
milliseconds. Exponentially bucketed using GetExponentialBucketMin a value
of 1.3.
</summary>
</metric>
<metric name="PointerHoveringOverCount">
<summary>
How many times the pointer was hovering over the anchor element.
Exponentially bucketed using GetExponentialBucketMin a value of 1.3.
</summary>
</metric>
</event>
<event name="NavigationThrottleDeferredTime">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
Information recorded about a navigation throttle when a navigation is
deferred at any stage of the navigation. Only recorded for main frame
navigations that were deferred and later resumed.
</summary>
<metric name="DurationOfNavigationDeferralMs">
<summary>
The duration from the start of the navigation deferral until the throttle
resumes the navigation recorded in milliseconds.
</summary>
</metric>
<metric name="NavigationThrottleEventType">
<summary>
An enum representing each event that can cause deferral method
(WillFailRequest, WillProcessResponse, WillRedirectRequest,
WillStartRequest). See NavigationThrottleRunner::Event for enum details.
</summary>
</metric>
<metric name="NavigationThrottleNameHash">
<summary>
A (MD5) hash of the logging name string which represents a unique
navigation throttle class (subclass of NavigationThrottle). See
NavigationThrottle::GetNameForLogging().
</summary>
</metric>
</event>
<event name="NavigationTiming" singular="True">
<owner>nhiroki@chromium.org</owner>
<owner>chrome-loading@google.com</owner>
<summary>
Metrics associated with main frame navigation.
</summary>
<metric name="EarlyHintsForFinalRequest">
<obsolete>
Deprecated 09/2021
</obsolete>
<owner>nhiroki@chromium.org</owner>
<owner>chrome-loading@google.com</owner>
<summary>
The time relative to navigation start that the headers of the 103 Early
Hints response are received in reply to the final HTTP request for the
main resource of a main frame navigation.
</summary>
</metric>
<metric name="EarlyHintsForFirstRequest">
<obsolete>
Deprecated 09/2021
</obsolete>
<owner>nhiroki@chromium.org</owner>
<owner>chrome-loading@google.com</owner>
<summary>
The time relative to navigation start that the headers of the 103 Early
Hints response are received in reply to the first HTTP request for the
main resource of a main frame navigation.
</summary>
</metric>
<metric name="FinalLoaderCallback">
<summary>
The time relative to navigation start that a callback for the navigation
loader is last invoked for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="FinalRequestStart">
<summary>
The time relative to navigation start that the final HTTP request is sent
for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="FinalResponseStart">
<summary>
The time relative to navigation start that the headers of the final HTTP
response are received for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="FirstLoaderCallback">
<summary>
The time relative to navigation start that a callback for the navigation
loader is first invoked for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="FirstRequestStart">
<summary>
The time relative to navigation start that the first HTTP request is sent
for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="FirstResponseStart">
<summary>
The time relative to navigation start that the headers of the first HTTP
response are received for the main resource of a main frame navigation.
</summary>
</metric>
<metric name="NavigationCommitSent">
<summary>
The time relative to navigation start that navigation commit message for a
main frame navigation is sent to a renderer process.
</summary>
</metric>
</event>
<event name="Net.LegacyTLSVersion">
<obsolete>
Deprecated as of 2/2023.
</obsolete>
<owner>davidben@chromium.org</owner>
<summary>
Recorded when a resource is loaded using TLS 1.0 or TLS 1.1.
</summary>
<metric name="IsAdResource">
<summary>
Boolean value representing whether the request is for an ad resource. Only
set if IsSubresource is true.
</summary>
</metric>
<metric name="IsMainFrame">
<summary>
Boolean value representing whether the request is in the main frame or not
(if false, the request is from a subframe).
</summary>
</metric>
<metric name="IsSubresource">
<summary>
Boolean value representing whether the request is for a subresource. If
false, then the request was a main frame page load.
</summary>
</metric>
</event>
<event name="Network.CacheTransparency">
<obsolete>
Deprecated in Jan 2023 in favor of Network.CacheTransparency2.
</obsolete>
<owner>nidhijaju@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
Metrics for Cache Transparency which aims to allow a list of pervasive
payloads to be specified and cached in a single-keyed cache to improve
loading performance. Recorded for each navigation and subresource load.
</summary>
<metric name="FoundPervasivePayload" enum="Boolean">
<summary>
Records whether a requested resource's URL matched with any of the URLs in
the Cache Transparency Pervasive Payloads List.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TotalBytesFetched">
<summary>
Records the total bytes fetched by the network.
</summary>
</metric>
</event>
<event name="Network.CacheTransparency2">
<owner>nidhijaju@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
Metrics for Cache Transparency which aims to allow a list of pervasive
payloads to be specified and cached in a single-keyed cache to improve
loading performance. Recorded for each navigation and subresource load.
</summary>
<metric name="FoundPervasivePayload" enum="Boolean">
<summary>
Records whether a requested resource's URL matched with any of the URLs in
the Cache Transparency Pervasive Payloads List.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PervasiveBytesFetched">
<summary>
Records the number of bytes fetched by the network for pervasive payloads
on a page.
</summary>
</metric>
<metric name="TotalBytesFetched">
<summary>
Records the total bytes fetched by the network.
</summary>
</metric>
</event>
<event name="NewTabPage.HistoryClusters">
<owner>sophiechang@chromium.org</owner>
<owner>tiborg@chromium.org</owner>
<summary>
Metrics related to a History Clusters module shown on the New Tab Page.
Recorded for each History Clusters module shown on a 1P New Tab Page load,
which can be multiple for a page load.
</summary>
<metric name="BelongsToBoostedCategory" enum="Boolean">
<summary>
Cluster is of a boosted category.
</summary>
</metric>
<metric name="DidEngageWithModule" enum="Boolean">
<summary>
Whether the user engaged with the module.
</summary>
</metric>
<metric name="LayoutTypeShown" enum="NTPHistoryClustersModuleDisplayLayout">
<summary>
The layout type that was shown to the user for this module.
</summary>
</metric>
<metric name="MinutesSinceMostRecentVisit">
<summary>
Minutes since the shown cluster's most recent visit, exponentially
bucketed using GetExponentialBucketMin with a spacing of 1.3.
</summary>
</metric>
<metric name="NumAbandonedCarts">
<summary>
Number of abandoned carts associated with the cluster.
</summary>
</metric>
<metric name="NumTotalVisits">
<summary>
Number of total visits in the same cluster including ones that are not
necessarily shown in the module.
</summary>
</metric>
<metric name="NumUniqueHosts">
<summary>
Number of unique hosts represented in the cluster.
</summary>
</metric>
<metric name="NumVisitsWithImage">
<summary>
Number of visits with an image to show.
</summary>
</metric>
</event>
<event name="NoStatePrefetch" singular="True">
<owner>tbansal@chromium.org</owner>
<summary>
Metrics related to NoStatePrefetch that are recorded using the same UKM IDs
as PageLoad.
</summary>
<metric name="PrefetchedRecently.FinalStatus">
<summary>
Final status of the nostate prefetch if one was recently attempted for
either the committed URL of this navigation or for any URL in the redirect
chain for the main frame resource for this navigation. page. Recorded as
enum PrerenderFinalStatus in //tools/metrics/histograms/enums.xml.
</summary>
</metric>
<metric name="PrefetchedRecently.Origin">
<summary>
Triggering origin of the nostate prefetch if one was recently attempted
for either the committed URL of this navigation or for any URL in the
redirect chain for the main frame resource for this navigation. Recorded
as enum PrerenderOrigin in //tools/metrics/histograms/enums.xml.
</summary>
</metric>
<metric name="PrefetchedRecently.PrefetchAge">
<summary>
Records the time (in milliseconds) from the start of the nostate prefetch
to the time of commit of this navigation. Metric is recorded down to the
nearest power of 2. Recorded only if a nostate prefetch was recently
attempted for either the committed URL of this navigation or for any URL
in the redirect chain for the main frame resource for this navigation.
</summary>
</metric>
</event>
<event name="Notification">
<owner>peter@chromium.org</owner>
<summary>
A notification event corresponds with the entire lifespan of a single
notification, and will be logged to UKM when the notification is deleted
from the notification database.
</summary>
<metric name="ClosedReason">
<summary>
Enum for how the notification was closed. {user, developer, unknown}
</summary>
</metric>
<metric name="DidReplaceAnotherNotification">
<summary>
Boolean value representing whether a tag is present and a previously shown
notification has been replaced. For UKM logging, we treat a replacement
notification as a new notification.
</summary>
</metric>
<metric name="DidUserOpenSettings">
<summary>
Boolean value indicating whether the user accessed the Chrome provided
settings from the notification.
</summary>
</metric>
<metric name="HasBadge">
<summary>
Boolean value representing if a badge URL was included.
</summary>
</metric>
<metric name="HasIcon">
<summary>
Boolean value representing if an icon URL was included.
</summary>
</metric>
<metric name="HasImage">
<summary>
Boolean value representing if an image URL was included.
</summary>
</metric>
<metric name="HasRenotify">
<summary>
Boolean value representing whether default notification indicators (sound,
vibration, light) should be played again if the notification is replacing
an older notification.
</summary>
</metric>
<metric name="HasTag">
<summary>
Boolean value representing if a tag is present.
</summary>
</metric>
<metric name="IsSilent">
<summary>
Boolean value representing whether default notification indicators (sound,
vibration, light) should be suppressed.
</summary>
</metric>
<metric name="NumActionButtonClicks">
<summary>
Number of clicks on developer provided action buttons.
</summary>
</metric>
<metric name="NumActions">
<summary>
Number of developer specified actions that can be taken.
</summary>
</metric>
<metric name="NumClicks">
<summary>
Number of clicks, excluding action buttons. I.e. clicks on the
notification itself.
</summary>
</metric>
<metric name="RequireInteraction">
<summary>
Boolean value representing whether the notification should remain onscreen
indefinitely, rather than being auto-minimized to the notification center
(if allowed by platform).
</summary>
</metric>
<metric name="TimeUntilClose">
<summary>
The length of time, in ms, between when the notification was triggered and
when it was closed.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TimeUntilFirstClick">
<summary>
Time, in ms, between when the notification is shown and the first click.
</summary>
</metric>
<metric name="TimeUntilLastClick">
<summary>
Time, in ms, between when the notification is shown and the last click.
</summary>
</metric>
</event>
<event name="OfflineMeasurements">
<obsolete>
Removed M100. No longer used.
</obsolete>
<owner>curranmax@chromium.org</owner>
<summary>
Data collected by the OfflineMeasurementsBackgroundTask. At a regular
interval the background task checks the state of the system including how
the user is interacting with the system and whether the system is online or
offline. The data for each run of the background task is persisted to prefs.
Upon a successful navigation in Chrome, all data in prefs are logged to UKM
and then cleared. This means that the first page load of a session will have
a burst of events being recorded, but subsequent page loads will likely have
no events. The background task is scheduled when Chrome opens, and it will
continue to run even if Chrome is not running.
</summary>
<metric name="DurationMillis">
<summary>
The time, in milliseconds, since the last background task ran. This value
is bucketed using ukm::GetExponentialBucketMinForUserTiming.
</summary>
</metric>
<metric name="IsAirplaneModeEnabled" enum="BooleanEnabled">
<summary>
Whether airplane mode was enabled when the background task ran.
</summary>
</metric>
<metric name="IsRoaming" enum="Boolean">
<summary>
Whether the device was roaming when the background task ran. This field is
only set if we can determine whether the network was roaming or not. This
means in cases where the HTTP probe was cancelled or we ecountered an
error while getting whether the network is roaming or not that this field
will be null.
</summary>
</metric>
<metric name="LocalHourOfDayStart">
<summary>
The local hour when the background task ran. In the range of 0 to 23
inclusive.
</summary>
</metric>
<metric name="ProbeResult" enum="OfflineMeasurementsHttpProbeResult">
<summary>
The result of the HTTP probe when the background task ran.
</summary>
</metric>
<metric name="UserState" enum="OfflineMeasurementsUserState">
<summary>
How the user is interacting with the device when the background task ran.
</summary>
</metric>
</event>
<event name="OfflinePages.SavePageRequested">
<obsolete>
Deprecated 03/2019
</obsolete>
<owner>petewil@chromium.org</owner>
<metric name="RequestedFromForeground">
<summary>
Metrics that measure which URLs the user is requesting offline page copies
of, and whether they were requested from the foreground or background UI.
The value is 1 if requested from the foreground, 0 from background.
</summary>
</metric>
</event>
<event name="Omnibox.EditUrlSuggestion.Share">
<owner>nyquist@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
User pressed 'Share' while viewing edit URL suggestions which shares the
current URL.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="OmniboxSecurityIndicator.FormSubmission">
<owner>meacer@chromium.org</owner>
<summary>
Recorded when a form is submitted on an HTTPS page. Used to understand any
regression introduced by updated omnibox security indicators.
</summary>
<metric name="Submitted">
<summary>
Placeholder metric, always true.
</summary>
</metric>
</event>
<event name="OptimizationGuide" singular="True">
<owner>sophiechang@chromium.org</owner>
<summary>
Optimization guide metrics associated with a page load. It is recorded when
the optimization guide was consulted in making a decision for the page load.
See //components/optimization_guide/.
</summary>
<metric name="HintGenerationTimestamp">
<obsolete>
Obsolete as of 04/2020.
</obsolete>
<summary>
The timestamp, in seconds from epoch, that the server generated the hint
for the optimization applied on the page load.
</summary>
</metric>
<metric name="HintSource">
<obsolete>
Obsolete as of 04/2020.
</obsolete>
<summary>
The |optimization_guide::proto::HintSource| for the optimization that was
applied on the page load.
</summary>
</metric>
<metric name="NavigationHintsFetchAttemptStatus"
enum="OptimizationGuideRaceNavigationFetchAttemptStatus">
<summary>
An enum value representing the status of a fetch attempt for the page load
and what it contains (i.e. hosts or URLs). Captured at the start of the
navigation.
</summary>
</metric>
<metric name="NavigationHintsFetchRequestLatency">
<summary>
The duration (in milliseconds) for how long it took from the request to go
out to when it was usable on the client. Only recorded if a fetch was
initiated for the navigation. Will be recorded as INT64_MAX if the request
did not complete successfully.
</summary>
</metric>
<metric name="NavigationHostCovered"
enum="OptimizationGuideNavigationHostCoveredStatus">
<obsolete>
Obsolete as of 04/2020.
</obsolete>
<summary>
An enum value representing whether Chrome had a hint cached for the
navigation or had attempted to fetch a hint from the remote Optimization
Guide Service in the last 7 days. The enum is defined in
|optimization_guide::NavigationHostCoveredStatus|.
</summary>
</metric>
<metric name="PainfulPageLoadModelPredictionScore">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The score output after evaluating the painful page load model. If
populated, this is 100x the fractional value output by the model
evaluation. This will be a value between 0 and 100.
</summary>
</metric>
<metric name="PainfulPageLoadModelVersion">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The server-generated version of the painful page load model that was
evaluated for the page load.
</summary>
</metric>
<metric name="PredictionModelFeatureEffectiveConnectionType">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The |net::EffectiveConnectionType| at the time a prediction was requested.
Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeatureIsSameOriginNavigation">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
Whether the current navigatation is the same origin as the previous one at
the time a prediction was requested. Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeatureNavigationToFCPSessionMean">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The average navigation to first contentful paint for the current session
at the time a prediction was requested. Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeatureNavigationToFCPSessionStdDev">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The standard deviation of navigation to first contentful paint for page
loads in the current session at the time a prediction was requested.
Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeaturePageTransition">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The |ui::PageTransition| of the current navigation at the time a
prediction was requested. Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeaturePreviousPageLoadNavigationToFCP">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The navigation to to first contentful paint for the previous page load at
the time a prediction was requested. Recorded once per page load.
</summary>
</metric>
<metric name="PredictionModelFeatureSiteEngagementScore">
<obsolete>
Obsolete as of 04/2021.
</obsolete>
<summary>
The site engagement score of the host of the current navigation at the
time a prediction was requested. Recorded once per page load.
</summary>
</metric>
<metric name="RegisteredOptimizationTargets">
<summary>
A bitmask of the optimization targets that were registered at the start of
the page load where each flipped bit corresponds to its int value in
|optimization_guide::proto::OptimizationTarget|.
</summary>
</metric>
<metric name="RegisteredOptimizationTypes">
<summary>
A bitmask of the optimization types that were registered at the start of
the page load where each flipped bit corresponds to its int value in
|optimization_guide::proto::OptimizationTarget|.
</summary>
</metric>
</event>
<event name="OptimizationGuideAutotuning">
<obsolete>
Removed 8/2021.
</obsolete>
<owner>sophiechang@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Metrics associated with an autotuning event initiated by the Optimization
Guide.
</summary>
<metric name="OptimizationType">
<summary>
The |optimization_guide::proto::OptimizationType| that is being tuned.
</summary>
</metric>
<metric name="TuningVersion">
<summary>
The version of the tuning group for the optimization type that was served.
</summary>
</metric>
</event>
<event name="PageContentAnnotations" singular="True">
<obsolete>
Removed in 10/2022.
</obsolete>
<owner>chrome-intelligence-core@google.com</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Metrics on the content annotations of the page, one record per page load
commit and has an annotation calculated on it. The metrics are recorded in a
RAPPOR-style with low-entropy so only aggregate analysis can be performed.
</summary>
<metric name="VisibilityScore">
<summary>
Records a low entropy respresentation of the visibility score output by a
content annotations model. The low entropy value is calculated using a
RAPPOR-style calculation to enable analysis only on aggregated results.
The raw score is between 0 and 1, scaled to between 0 and 100. The score
is then placed into one of 16 linearly spaced buckets by dividing the
score by the bucket size and taking the floor. The resulting bucket value
has noise added with a probability of .5 where the noise is randomly
applied to each individual bit.
</summary>
</metric>
</event>
<event name="PageContentAnnotations2" singular="True">
<owner>chrome-intelligence-core@google.com</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Metrics on the content annotations of the page, one record per page load
commit and has an annotation calculated on it. The metrics are recorded in a
RAPPOR-style with low-entropy so only aggregate analysis can be performed.
</summary>
<metric name="VisibilityScore">
<summary>
Records a low entropy respresentation of the visibility score output by a
content annotations model. The low entropy value is calculated using a
RAPPOR-style calculation to enable analysis only on aggregated results.
The raw score is between 0 and 1, scaled to between 0 and 100. The score
is then placed into one of 16 linearly spaced buckets by dividing the
score by the bucket size and taking the floor. The resulting bucket value
has noise added with a probability of .5 where the noise is randomly
applied to each individual bit.
</summary>
</metric>
</event>
<event name="PageDomainInfo">
<owner>uthakore@chromium.org</owner>
<owner>invernizzi@chromium.org</owner>
<summary>
Metrics that describe the domain of pages that successfully commit. One
event is generated per page load that commits. Currently associated with
LocalNetworkRequests UKM metric collection.
</summary>
<metric name="DomainType">
<summary>
An enum value representing the type of domain of the loaded page. The enum
is defined in |LocalNetworkRequestsPageLoadMetricsObserver|. Possible
values are 0 for unknown (should never be logged), 1 for pages with public
domains, 2 for pages with private domains (IP addresses that are part of a
reserved IP space not including localhost), or 4 for localhost.
</summary>
</metric>
</event>
<event name="PageForegroundSession">
<owner>sullivan@chromium.org</owner>
<summary>
Total time in foreground in milliseconds, recorded each time the page is
backgrounded. May be recorded multiple times for a single page visit.
</summary>
<metric name="ForegroundDuration">
<summary>
Total time in foreground in milliseconds, recorded each time the page is
backgrounded.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForegroundNumInputEvents">
<summary>
The number of Input Events, including click, tap, key press, cancellable
touchstart, or pointer down followed by apointer up. This metric gets
recorded each time the page is backgrounded.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForegroundTotalAdjustedInputDelay">
<summary>
sum(max(Input Delay - 50, 0)), recorded each time the page is
backgrounded. The Input Delay refers to the duration between the hardware
timestamp and the start of event processing on the main thread for the
meaningful input. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForegroundTotalInputDelay">
<summary>
sum(Input Delay), recorded each time the page is backgrounded. The Input
Delay refers to the duration between the hardware timestamp and the start
of event processing on the main thread for the meaningful input. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PageInfoBubble">
<owner>dullweber@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
Recorded when an action on the Page Info Bubble (aka Origin Info Bubble or
WebsiteSettings Bubble) is taken. May be recorded multiple times for a
single page visit.
</summary>
<metric name="ActionTaken" enum="WebsiteSettingsAction">
<summary>
Records an enum value representing which action on the Page Info Bubble
was taken.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PageLoad" singular="True">
<owner>sullivan@chromium.org</owner>
<owner>chrome-metrics-team@google.com</owner>
<summary>
Core metrics associated with web page loads.
</summary>
<metric name="CpuTime">
<summary>
Amount of CPU wall time over the duration of a page load, while the page
is in the foreground. Measured in milliseconds.
</summary>
</metric>
<metric name="DayOfWeek">
<summary>
The day of the week when the page load was initiated. The time is measured
in the local time zone according to the system clock. Only collected for
page loads that start while on foreground.
</summary>
</metric>
<metric name="DocumentTiming.NavigationToDOMContentLoadedEventFired">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the DOMContentLoaded event is fired, for main frame
documents.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DocumentTiming.NavigationToLoadEventFired">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the load event is fired, for main frame documents.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DurationSinceLastVisitSeconds">
<summary>
The duration since the last visit to this URL in seconds, if the user has
visited the URL before. Recorded as -1 if the user has not visited the URL
before, or if the History service is unavailable or slow to respond. Any
duration that exceeds 30 days will be recorded as 30 days, so in practice,
if this duration indicates 30 days, it can be anything from 30 to the
maximum duration that local history is stored.
</summary>
</metric>
<metric name="Experimental.InputToNavigationStart">
<summary>
Measures the time in milliseconds from when the OS level input event
occurred which triggered a navigation, until the navigation was started.
Only set if the code can trace back to the original input event. Some
known cases where it is missing: crbug.com/889223 crbug.com/893162
crbug.com/897837 crbug.com/897840
</summary>
</metric>
<metric
name="Experimental.LayoutInstability.CumulativeShiftScoreAtFirstOnHidden">
<summary>
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes) until the first time the
page moves from the foreground to the background. This metric's integral
value is 100x the fractional cumulative layout shift score described in
the explainer. Stable since M98. Log of major changes:
http://bit.ly/chrome-speed-metrics-changelog. This metric is trying to
record the layout shift values which are not able to be recorded in
LayoutInstability.CumulativeShiftScore for some reasons.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="Experimental.LayoutInstability.MaxCumulativeShiftScoreAtFirstOnHidden.SessionWindow.Gap1000ms.Max5000ms">
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window until the first time the page moves from
the foreground to the background. The gap between two consecutive shifts
in a window is not bigger than 1000ms and the maximum window size is
5000ms. This metric's integral value is 100x the fractional cumulative
layout shift score described in the explainer. This metric is trying to
record the layout shift values which are not able to be recorded in
LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms
for some reasons.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Experimental.Navigation.UserInitiated">
<summary>
True if this navigation was initiated by user input. For renderer
navigations, only true if the code can trace back to the original input
event. Some known cases where it is missing: crbug.com/889223
crbug.com/897837 crbug.com/897840
</summary>
</metric>
<metric name="Experimental.NavigationToInteractive">
<obsolete>
Removed 2/2020. Do not use Time to Interactive as a RUM metric.
</obsolete>
<summary>
Measures Time to Interactive, a metric based on main thread and network
heuristics to approximate the point in time when the page feels
interactive to the user. See https://goo.gl/TFw6xz for detailed
explanation. This histogram uses First Meaningful Paint as the lower bound
for quiescent windows. The unit of time is ms.
</summary>
</metric>
<metric name="Experimental.PageLoadType" enum="PageVisitFinalStatus">
<obsolete>
Renamed in 11/2021, use PageVisitFinalStatus instead.
</obsolete>
<summary>
Determines the PageLoadType for this page load. That is, records whether
the page was never foregrounded, was foregrounded but did not reach FCP,
or did reach FCP. The metric is recorded at the end of each page load. As
usual with PageLoad metrics, we consider app backgrounding on Android to
be the end of page load as well as the app could be evicted by Android
anytime after that happens.
</summary>
</metric>
<metric name="Experimental.PaintTiming.NavigationToFirstMeaningfulPaint">
<obsolete>
Removed on 11/2022
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the first meaningful paint (http://bit.ly/ttfmp-doc), for main
frame documents.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Experimental.PaintTiming.NavigationToLargestContentPaint">
<obsolete>
Deprecated 7/2019, replaced by
PaintTiming.NavigationToLargestContentfulPaint.MainFrame.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport. See http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric
name="Experimental.PaintTiming.NavigationToLargestContentPaintAllFrames">
<obsolete>
Deprecated 7/2019, replaced by
PaintTiming.NavigationToLargestContentfulPaint
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport. Compared with NavigationToLargestContentPaint,
this is the aggregate results from all frames, while
NavigationToLargestContentPaint is only for main frame. See
http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric name="Experimental.PaintTiming.NavigationToLargestImagePaint">
<obsolete>
Removed on 01/2020
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest image within
viewport after the image finishes loading. The value is recorded at the
end of each page load. See http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric
name="Experimental.PaintTiming.NavigationToLargestImagePaint.BeforeUserInput">
<obsolete>
Deprecated 01/2019
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest image within
viewport after the image finishes loading, before user input. See
http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric name="Experimental.PaintTiming.NavigationToLargestTextPaint">
<obsolete>
Removed on 01/2020
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest text within
viewport. The value is recorded at the end of each page load. See
http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric
name="Experimental.PaintTiming.NavigationToLargestTextPaint.BeforeUserInput">
<obsolete>
Deprecated 01/2019
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest text within
viewport, before user input. See http://bit.ly/fcp_plus_plus for more
details.
</summary>
</metric>
<metric name="Experimental.PaintTiming.NavigationToLastImagePaint">
<obsolete>
Deprecated on March 2019. This metric as a page load metric hasn't shown a
good correlation with user experience.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the last image within
viewport after the image finishes loading. The value is recorded at the
end of each page load. See http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric name="Experimental.PaintTiming.NavigationToLastTextPaint">
<obsolete>
Deprecated on March 2019. This metric as a page load metric hasn't shown a
good correlation with user experience.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the last Text within
viewport. The value is recorded at the end of each page load. See
http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric name="Experimental.TotalForegroundDuration">
<obsolete>
Deprecated on November 2021, replaced by
PageTiming.TotalForegroundDuration.
</obsolete>
<summary>
The total amount of time the page spent in the foreground, in
milliseconds. Note that this metric adds all foreground durations
occurring for the page. For example: if the page starts foregrounded
during 1 second, then goes to the background for a while, then is
foregrounded again for 2 seconds, and then is unloaded, this metric
reports 3 seconds. To see metrics about consecutive foreground sessions,
see the PageForegroundSession event instead. This metric is recorded at
the end of each page load. As usual with PageLoad metrics, we consider app
backgrounding on Android to be the end of page load as well as the app
could be evicted by Android anytime after that happens.
</summary>
</metric>
<metric name="HourOfDay">
<summary>
The hour of the day when the page load was initiated. The time is measured
in the local time zone according to the system clock. Only collected for
page loads that start while on foreground.
</summary>
</metric>
<metric
name="InteractiveTiming.AverageUserInteractionLatencyOverBudget.MaxEventDuration">
<summary>
The average value of user interaction latency above budget of a page load,
in ms. For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.AverageUserInteractionLatencyOverBudget.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The average value of user interaction latency above budget of a page load,
in ms. For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay">
<obsolete>
Deprecated on January 2019 in favor of InteractiveTiming.FirstInputDelay2,
which correctly excludes some scrolling cases that were previously not
excluded from this metric.
</obsolete>
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed
explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay.SkipFilteringComparison">
<obsolete>
Removed in January 2020 as the experiment is launched.
</obsolete>
<summary>
For comparing FirstInputDelay metrics in the SkipTouchEventFilter
experiment. Measures First Input Delay, the duration between the hardware
timestamp and the start of event processing on the main thread for the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay2">
<obsolete>
Removed on February 2019 in favor of InteractiveTiming.FirstInputDelay3
which brings the metric more in line with the EventTiming API.
</obsolete>
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed
explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay3">
<obsolete>
Removed in July 2019 in favor of InteractiveTiming.FirstInputDelay4 which
includes events which were previously filtered.
</obsolete>
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed
explanation. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.FirstInputDelay4">
<summary>
Measures First Input Delay, the duration between the hardware timestamp
and the start of event processing on the main thread for the first
meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed
explanation. In ms. Log of major changes:
http://bit.ly/chrome-speed-metrics-changelog
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.FirstInputProcessingTimes">
<summary>
Measures First Input Processing Time, the duration of event handlers
processing the first input event. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp">
<obsolete>
Deprecated on January 2019 in favor of
InteractiveTiming.FirstInputTimestamp2, which correctly excludes some
scrolling cases that were previously not excluded from this metric.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp.SkipFilteringComparison">
<obsolete>
Removed in Jaunary 2020 as the experiment is launched.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
This metric is used for comparing FirstInputTimestamp metrics in the
SkipTouchEventFilter experiment.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp2">
<obsolete>
Removed on February 2019 in favor of
InteractiveTiming.FirstInputTimestamp3 which brings the metric more in
line with the EventTiming API.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp3">
<obsolete>
Removed in July 2019 in favor of InteractiveTiming.FirstInputTimestamp4
which includes events which were previously filtered.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputTimestamp4">
<summary>
The duration between navigation start and the hardware timestamp of the
first meaningful input per navigation. See https://goo.gl/tr1oTZ for a
detailed explanation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.FirstScrollDelay">
<summary>
Measures the time, in milliseconds, from when a user starts scrolling
until the result shows up on screen if the scroll was the first scroll
since navigation.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.FirstScrollTimestamp">
<summary>
The duration between navigation start and the timestamp of the first
scroll per navigation. In ms. This is rounded down to the nearest
exponential bucket.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputDelay">
<obsolete>
Deprecated on January 2019 in favor of
InteractiveTiming.LongestInputDelay2, which correctly excludes some
scrolling cases that were previously not excluded from this metric.
</obsolete>
<summary>
Measures longest Input Delay, the longest duration between the hardware
timestamp and the start of event processing on the main thread for the
meaningful input per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputDelay2">
<obsolete>
Removed on February 2019 in favor of InteractiveTiming.LongestInputDelay3
which brings the metric more in line with the EventTiming API.
</obsolete>
<summary>
Measures longest Input Delay, the longest duration between the hardware
timestamp and the start of event processing on the main thread for the
meaningful input per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputDelay3">
<obsolete>
Removed on September 2019 in favor of InteractiveTiming.LongestInputDelay4
which includes events which otherwise would have been filtered.
</obsolete>
<summary>
Measures longest Input Delay, the longest duration between the hardware
timestamp and the start of event processing on the main thread for the
meaningful input per navigation. In ms.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.LongestInputDelay4">
<summary>
Measures longest Input Delay, the longest duration between the hardware
timestamp and the start of event processing on the main thread for the
meaningful input per navigation. In ms.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.LongestInputTimestamp">
<obsolete>
Deprecated on January 2019 in favor of
InteractiveTiming.LongestInputTimestamp2, which correctly excludes some
scrolling cases that were previously not excluded from this metric.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
meaningful input with longest queuing delay per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputTimestamp2">
<obsolete>
Removed on February 2019 in favor of
InteractiveTiming.LongestInputTimestamp3 which brings the metric more in
line with the EventTiming API.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
meaningful input with longest queuing delay per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputTimestamp3">
<obsolete>
Removed on February 2019 in favor of
InteractiveTiming.LongestInputTimestamp4 which includes inputs which would
have previously been filtered.
</obsolete>
<summary>
The duration between navigation start and the hardware timestamp of the
meaningful input with longest queuing delay per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.LongestInputTimestamp4">
<summary>
The duration between navigation start and the hardware timestamp of the
meaningful input with longest queuing delay per navigation. In ms.
</summary>
</metric>
<metric name="InteractiveTiming.NumInputEvents">
<summary>
The number of Input Events, including click, tap, key press, cancellable
touchstart, or pointer down followed by a pointer up.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.NumInteractions">
<summary>
The number of distinct user interactions. See definition of user
interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
</metric>
<metric
name="InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile.MaxEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of a high percentile of user interaction latency above
budget of a page load, in ms. For this metric, we measure the latency of
user interactions by Responsiveness.UserInteraction.MaxEventDuration and
we deduct a budget from the original value. If the latency value is below
the budget, it will be treated as 0 ms. Each type of interaction has its
own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of a high percentile of user interaction latency above
budget of a page load, in ms. For this metric, we measure the latency of
user interactions by Responsiveness.UserInteraction.TotalEventDuration and
we deduct a budget from the original value. If the latency value is below
the budget, it will be treated as 0 ms. Each type of interaction has its
own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency above
budget of a page load, in ms. For this metric, we measure the latency of
user interactions by Responsiveness.UserInteraction.MaxEventDuration and
we deduct a budget from the original value. If the latency value is below
the budget, it will be treated as 0 ms. Each type of interaction has its
own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.SlowUserInteractionLatencyOverBudget.HighPercentile2.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
An approximation of a high percentile of user interaction latency above
budget of a page load, in ms. For this metric, we measure the latency of
user interactions by Responsiveness.UserInteraction.TotalEventDuration and
we deduct a budget from the original value. If the latency value is below
the budget, it will be treated as 0 ms. Each type of interaction has its
own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.SumOfUserInteractionLatencyOverBudget.MaxEventDuration">
<summary>
The sum of user interaction latency above budget of a page load, in ms.
For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.SumOfUserInteractionLatencyOverBudget.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The sum of user interaction latency above budget of a page load, in ms.
For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="InteractiveTiming.TotalAdjustedInputDelay">
<summary>
sum(max(Input Delay - 50, 0)). The Input Delay refers to the duration
between the hardware timestamp and the start of event processing on the
main thread for the meaningful input. In ms.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.TotalInputDelay">
<summary>
sum(Input Delay). The Input Delay refers to the duration between the
hardware timestamp and the start of event processing on the main thread
for the meaningful input. In ms.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="InteractiveTiming.TotalUserInteractionLatencyOverBudget.MaxEventDuration">
<obsolete>
Deprecated 10/2021. Replaced by
&quot;InteractiveTiming.SumOfUserInteractionLatencyOverBudget.MaxEventDuration&quot;.
</obsolete>
<summary>
The sum of user interaction latency above budget of a page load, in ms.
For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.TotalUserInteractionLatencyOverBudget.TotalEventDuration">
<obsolete>
Deprecated 10/2021. Replaced by
&quot;InteractiveTiming.SumOfUserInteractionLatencyOverBudget.TotalEventDuration&quot;.
</obsolete>
<summary>
The sum of user interaction latency above budget of a page load, in ms.
For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.UserInteractionLatency.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency of a
page load, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="InteractiveTiming.UserInteractionLatencyAtFirstOnHidden.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency of a
page load, in ms. For this metric, we measure the latency of user
interactions by Responsiveness.UserInteraction.MaxEventDuration. We record
it when a page is moved from the foreground to the background for the
first time. This metric is trying to record the INP values which are not
able to be recorded in
InteractiveTiming.UserInteractionLatency.HighPercentile2.MaxEventDuration
for some reasons.
</summary>
</metric>
<metric name="InteractiveTiming.WorstUserInteractionLatency.MaxEventDuration">
<summary>
The maximum value of user interaction latency of a page load, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration. Each type of interaction
has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.WorstUserInteractionLatency.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency of a page load, in ms. For
this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration. Each type of
interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.WorstUserInteractionLatencyOverBudget.MaxEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page load,
in ms. For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric
name="InteractiveTiming.WorstUserInteractionLatencyOverBudget.TotalEventDuration">
<obsolete>
Deprecated March 2022 for
SlowUserInteractionLatency.HighPercentile2.MaxEventDuration
</obsolete>
<summary>
The maximum value of user interaction latency above budget of a page load,
in ms. For this metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.TotalEventDuration and we reduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="IsCrossProcessNavigation">
<owner>altimin@chromium.org</owner>
<owner>arthursonzogni@chromium.org</owner>
<summary>
Whether the navigation resulted in the main frame being hosted in a
different renderer process than the current document or not.
</summary>
</metric>
<metric name="IsExistingBookmark" enum="Boolean">
<summary>
Marked true if the page was already bookmarked when the navigation
committed.
</summary>
</metric>
<metric name="IsExistingPartOfTabGroup" enum="Boolean">
<summary>
Marked true if the page was already part of a tab group when the
navigation committed.
</summary>
</metric>
<metric name="IsNewBookmark" enum="Boolean">
<summary>
Roughly: measures if the page was newly bookmarked. Specifically: this is
marked true if the page was not bookmarked when the navigation committed,
and is bookmarked at the end of the page lifetime.
Note, this means this boolean is mutually exclusive with
IsExistingBookmark.
Also note, this means that a page that is bookmarked, and then
sebsequently un-bookmarked is counted as false.
</summary>
</metric>
<metric name="IsNTPCustomLink" enum="Boolean">
<summary>
Marked true if the page has been explicitly added (by the user) to the
list of custom links displayed in the NTP. Links added to the NTP by
History TopSites don't count for this. Always false on Android, because
Android does not have NTP custom links.
</summary>
</metric>
<metric name="IsPlacedInTabGroup" enum="Boolean">
<summary>
Roughly: measures if the page was added to a tab group. Specifically: this
is marked true if the page was not part of a tab group when the navigation
committed, and is part of a tab group at the end of the page lifetime.
Note, this means this boolean is mutually exclusive with
IsExistingPartOfTabGroup.
Also note, this means that a page that is added, and then sebsequently
removed from a tab group is counted as false.
</summary>
</metric>
<metric name="IsScopedSearchLikeNavigation" enum="Boolean">
<summary>
Marked true if the page was eligible for a scoped search when the
navigation committed.
</summary>
</metric>
<metric name="IsSignedExchangeInnerResponse">
<obsolete>
Migrated to the PageLoad.SignedExchange event. The presence of that event
indicates the associated source was served via signed exchange.
</obsolete>
<summary>
Set to 1 if the main resource is an inner response of a signed exchange.
</summary>
</metric>
<metric
name="LayoutInstability.AverageCumulativeShiftScore.SessionWindow.Gap5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the average cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window. The gap between two consecutive shifts
in a window is not bigger than 5000ms. This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric name="LayoutInstability.CumulativeShiftScore">
<summary>
Deprecated as of 04/23. It is still reported, but most users should use
PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms.
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes) during the session. This
metric's integral value is 100x the fractional cumulative layout shift
score described in the explainer. Stable since M79; previous versions are
experimental and subject to fluctuation between releases. Log of major
changes: http://bit.ly/chrome-speed-metrics-changelog
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LayoutInstability.CumulativeShiftScore.BeforeInputOrScroll">
<summary>
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes) during the session, before
any user input or scroll (in any frame). This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric name="LayoutInstability.CumulativeShiftScore.MainFrame">
<summary>
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred in the main frame during the session. This metric's integral
value is 100x the fractional cumulative layout shift score described in
the explainer.
</summary>
</metric>
<metric
name="LayoutInstability.CumulativeShiftScore.MainFrame.BeforeInputOrScroll">
<summary>
Measures the cumulative layout shift (bit.ly/lsm-explainer) that has
occurred in the main frame during the session, before any user input or
scroll. This metric's integral value is 100x the fractional cumulative
layout shift score described in the explainer.
</summary>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window. The gap between two consecutive shifts
in a window is not bigger than 1000ms. This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms">
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window. The gap between two consecutive shifts
in a window is not bigger than 1000ms and the maximum window size is
5000ms. This metric's integral value is 100x the fractional cumulative
layout shift score described in the explainer.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SessionWindowByInputs.Gap1000ms.Max5000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a session window. The gap between two consecutive shifts
in a window is not bigger than 1000ms or segmented by a user input. The
maximum window size is 5000ms. This metric's integral value is 100x the
fractional cumulative layout shift score described in the explainer.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SlidingWindow.Duration1000ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 1000ms sliding window. This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SlidingWindow.Duration300ms">
<obsolete>
Deprecated 06/2021.
</obsolete>
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred in a 300ms sliding window. This metric's integral value is
100x the fractional cumulative layout shift score described in the
explainer.
</summary>
</metric>
<metric name="LayoutStability.JankScore">
<obsolete>
Removed July 2019 in favor of LayoutInstability.CumulativeShiftScore.
</obsolete>
<summary>
Measures the amount of layout jank (bit.ly/lsm-explainer) that has
occurred on the page (including all subframes) during the session. This
metric's integral value is 100x the fractional jank score described in the
explainer.
</summary>
</metric>
<metric name="LayoutStability.JankScore.MainFrame">
<obsolete>
Removed July 2019 in favor of
LayoutInstability.CumulativeShiftScore.MainFrame.
</obsolete>
<summary>
Measures the amount of layout jank (bit.ly/lsm-explainer) that has
occurred in the main frame during the session. This metric's integral
value is 100x the fractional jank score described in the explainer.
</summary>
</metric>
<metric name="LayoutStability.JankScore.MainFrame.BeforeInputOrScroll">
<obsolete>
Removed July 2019 in favor of
LayoutInstability.CumulativeShiftScore.MainFrame.BeforeInputOrScroll.
</obsolete>
<summary>
Measures the amount of layout jank (bit.ly/lsm-explainer) that has
occurred in the main frame during the session, before any user input or
document scroll. This metric's integral value is 100x the fractional jank
score described in the explainer.
</summary>
</metric>
<metric name="MainDocumentSequenceNumber">
<owner>altimin@chromium.org</owner>
<owner>arthursonzogni@chromium.org</owner>
<summary>
An id for the main frame's document associated with the current
navigation. It doesn't change for same-document navigations and when
navigating back to the same document. Unique during the browsing session.
</summary>
</metric>
<metric name="MainFrameResource.ConnectDelay">
<summary>
The duration between the start of the connection establishment to the end
of the connection establishment to the origin of the main frame request.
In ms.
</summary>
</metric>
<metric name="MainFrameResource.DNSDelay">
<summary>
The duration between the start of the DNS resolution to the end for the
origin of the main frame request. In ms.
</summary>
</metric>
<metric name="MainFrameResource.HttpProtocolScheme">
<summary>
HTTP Protocol scheme of the connection using which the main frame response
was fetched. Recorded as HttpProtocolScheme enum in
tools/metrics/histograms/enum.xml.
</summary>
</metric>
<metric name="MainFrameResource.NavigationStartToReceiveHeadersStart">
<summary>
The duration from the start of the navigation to the start of the response
headers being received. In ms.
</summary>
</metric>
<metric name="MainFrameResource.NavigationStartToRequestStart">
<summary>
The duration from the start of the navigation to the start of the main
frame request. This includes the time to process any redirects on the main
frame request. In ms.
</summary>
</metric>
<metric name="MainFrameResource.RedirectCount">
<summary>
The number of main frame redirects that occurred before commit. Unset if
there were no redirects.
</summary>
</metric>
<metric name="MainFrameResource.RequestHadCookies" enum="Boolean">
<summary>
A boolean indicating if any mainpage request in the redirect chain or
committed request had cookies set on it. Only set when a query result was
received from the cookie manager before event recording.
</summary>
</metric>
<metric name="MainFrameResource.RequestHasNoStore" enum="Boolean">
<summary>
A boolean indicating if any mainpage resource has a 'Cache-control:
no-store' response header. Recorded only for main frame request.
</summary>
</metric>
<metric name="MainFrameResource.RequestStartToReceiveHeadersEnd">
<summary>
The duration from when the request was started to the time when its
response headers were received. Recorded only for the main frame request.
In ms.
</summary>
</metric>
<metric name="MainFrameResource.RequestStartToSendStart">
<summary>
The duration from when the request was started to the time when its
request headers were sent. Recorded only for the main frame request. In
ms.
</summary>
</metric>
<metric name="MainFrameResource.SendStartToReceiveHeadersEnd">
<summary>
The duration from when the request headers were sent to when its response
headers were received. Recorded only for the main frame request. In ms.
</summary>
</metric>
<metric name="MainFrameResource.SocketReused">
<summary>
True if the socket was reused when establishing connection to the origin
of the main frame request.
</summary>
</metric>
<metric name="Navigation.PageEndReason">
<obsolete>
Deprecated May 2020 in favor of Navigation.PageEndReason2.
</obsolete>
<summary>
The |page_load_metrics::PageEndReason| for the main frame navigation of
this page load.
</summary>
</metric>
<metric name="Navigation.PageEndReason2" enum="PageEndReason">
<obsolete>
Deprecated Jan 2021 in favor of Navigation.PageEndReason3.
</obsolete>
<summary>
The |page_load_metrics::PageEndReason| for the main frame navigation of
this page load. Replaced Navigation.PageEndReason at the end of May 2020
to reduce occurrences of page_load_metrics::PageEndReason::END_NONE by
setting the value to page_load_metrics::PageEndReason::END_HIDDEN when the
metric is recorded after the page became hidden.
</summary>
</metric>
<metric name="Navigation.PageEndReason3" enum="PageEndReason">
<summary>
The |page_load_metrics::PageEndReason| for the main frame navigation of
this page load. Replaced Navigation.PageEndReason2 on January 2021 to get
rid of END_HIDDEN and use END_APP_BACKGROUND on cases where the metrics
are flushed and the app enters the background.
</summary>
</metric>
<metric name="Navigation.PageTransition">
<summary>
The |ui::PageTransition| for the main frame navigation of this page load.
</summary>
</metric>
<metric name="NavigationEntryOffset">
<owner>altimin@chromium.org</owner>
<owner>arthursonzogni@chromium.org</owner>
<summary>
Difference between the last committed navigation entry index before and
after the commit of this navigation.
</summary>
</metric>
<metric name="Net.CacheBytes">
<obsolete>
Deprecated 06/2019 in favor of Net.CacheBytes2.
</obsolete>
<summary>
The total number of body bytes loaded from cache for all resources on the
page. This is rounded down to the nearest exponential bucket (with a
bucket spacing factor of 1.3).
</summary>
</metric>
<metric name="Net.CacheBytes2">
<summary>
The total number of body bytes loaded from cache for all resources on the
page. This includes the http and memory cache. This is rounded down to the
nearest exponential bucket (with a bucket spacing factor of 1.3).
</summary>
</metric>
<metric name="Net.DownstreamKbpsEstimate.OnNavigationStart">
<owner>tbansal@chromium.org</owner>
<summary>
The downstream throughput (in kilobits per second) for this page load, at
the time the navigation for this page load was initiated.
</summary>
</metric>
<metric name="Net.EffectiveConnectionType.OnNavigationStart">
<obsolete>
Deprecated 7/2017 in favor of
Net.EffectiveConnectionType2.OnNavigationStart.
</obsolete>
<summary>
The |net::EffectiveConnectionType| at the time the navigation for this
page load was initiated.
</summary>
</metric>
<metric name="Net.EffectiveConnectionType2.OnNavigationStart">
<summary>
The |SystemProfileProto::Network::EffectiveConnectionType| at the time the
navigation for this page load was initiated.
</summary>
</metric>
<metric name="Net.ErrorCode.OnFailedProvisionalLoad">
<summary>
The |net::Error| code for this page load. Only logged for failed
provisional navigations.
</summary>
</metric>
<metric name="Net.HttpResponseCode">
<summary>
The HTTP response code (e.g., 200, 404, etc.) associated with the main
frame page load.
</summary>
</metric>
<metric name="Net.HttpRttEstimate.OnNavigationStart">
<summary>
The HTTP round trip time estimate for this page load, at the time the
navigation for this page load was initiated.
</summary>
</metric>
<metric name="Net.ImageBytes">
<obsolete>
Deprecated 09/2021 in favor of Net.ImageBytes2.
</obsolete>
<summary>
The total number of bytes loaded from the network for images on the page.
This is rounded down to the nearest exponential bucket (with a bucket
spacing factor of 1.3). On mobile this only records bytes up until the
page/app is backgrounded.
</summary>
</metric>
<metric name="Net.ImageBytes2">
<summary>
The total number of bytes loaded from the network for images on the page.
This is rounded down to the nearest exponential bucket (with a bucket
spacing factor of 1.3). On mobile this only records bytes up until the
page/app is backgrounded.
</summary>
</metric>
<metric name="Net.ImageSubframeBytes">
<obsolete>
Deprecated 09/2021 in favor of Net.ImageSubframeBytes2.
</obsolete>
<summary>
The total number of bytes loaded from the network for images on the
subframes of the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.3). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.ImageSubframeBytes2">
<summary>
The total number of bytes loaded from the network for images on the
subframes of the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.3). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.JavaScriptBytes">
<obsolete>
Deprecated 09/2021 in favor of Net.JavaScriptBytes2.
</obsolete>
<summary>
The sum of decoded body lengths of all JavaScript resources that completed
loading on the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 10). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.JavaScriptBytes2">
<summary>
The sum of decoded body lengths of all JavaScript resources that completed
loading on the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.3). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.JavaScriptMaxBytes">
<obsolete>
Deprecated 09/2021 in favor of Net.JavaScriptMaxBytes2.
</obsolete>
<summary>
The max of decoded body lengths of all JavaScript resources that completed
loading on the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 10). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.JavaScriptMaxBytes2">
<summary>
The max of decoded body lengths of all JavaScript resources that completed
loading on the page. This is rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.3). On mobile this only records
bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.MediaBytes">
<obsolete>
Deprecated 09/2021 in favor of Net.MediaBytes2.
</obsolete>
<summary>
The total number of bytes loaded from the network for media (video, audio)
on the page. This is rounded down to the nearest exponential bucket (with
a bucket spacing factor of 1.3). On mobile this only records bytes up
until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.MediaBytes2">
<summary>
The total number of bytes loaded from the network for media (video, audio)
on the page. This is rounded down to the nearest exponential bucket (with
a bucket spacing factor of 1.3). On mobile this only records bytes up
until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.NetworkBytes">
<obsolete>
Deprecated 03/2019 in favor of Net.NetworkBytes2.
</obsolete>
<summary>
The total number of body bytes loaded from the network for all resources
on the page. This is rounded down to the nearest exponential bucket (with
a bucket spacing factor of 1.3).
</summary>
</metric>
<metric name="Net.NetworkBytes2">
<summary>
The total number of bytes loaded from the network for all resources on the
page, including incomplete resources and headers. This is rounded down to
the nearest exponential bucket (with a bucket spacing factor of 1.3). On
mobile this only records bytes up until the page/app is backgrounded.
</summary>
</metric>
<metric name="Net.TransportRttEstimate.OnNavigationStart">
<summary>
The transport round trip time estimate for this page load, at the time the
navigation for this page load was initiated.
</summary>
</metric>
<metric name="OmniboxUrlCopied" enum="Boolean">
<summary>
Marked true if the user copied the page's URL from the omnibox at any time
for this page load.
</summary>
</metric>
<metric name="PageTiming.ForegroundDuration">
<summary>
For page loads that start in the foreground, measures the duration of time
in milliseconds until one of the following events occurs: the load of the
main resource fails, the page load is stopped, the tab hosting the page is
closed, the render process hosting the page goes away, a new navigation
which later commits is initiated in the same tab, or the tab hosting the
page is backgrounded. This metric has a very long tail, for pages that
spend a long period of time in the foreground. As such, use of the mean or
tail values are not recommended.
</summary>
</metric>
<metric name="PageTiming.NavigationToFailedProvisionalLoad">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the provisional load failed. Only measures provisional
loads that failed in the foreground.
</summary>
</metric>
<metric name="PageTiming.TotalForegroundDuration">
<summary>
The total amount of time the page spent in the foreground, in
milliseconds. Note that this metric adds all foreground durations
occurring for the page. For example: if the page starts foregrounded
during 1 second, then goes to the background for a while, then is
foregrounded again for 2 seconds, and then is unloaded, this metric
reports 3 seconds. To see metrics about consecutive foreground sessions,
see the PageForegroundSession event instead. This metric is recorded at
the end of each page load. As usual with PageLoad metrics, we consider app
backgrounding on Android to be the end of page load as well as the app
could be evicted by Android anytime after that happens.
</summary>
</metric>
<metric name="PageTiming.UserTimingMarkFullyLoaded">
<summary>
When the page UserTiming mark API is called with the standard
'mark_fully_loaded' name to mark that the page is fully loaded. If the
mark is called more than once, the last is used.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PageTiming.UserTimingMarkFullyVisible">
<summary>
When the page UserTiming mark API is called with the standard
'mark_fully_visible' name to mark that the page is fully visible. If the
mark is called more than once, the last is used.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PageTiming.UserTimingMarkInteractive">
<summary>
When the page UserTiming mark API is called with the standard
'mark_interactive' name to mark that the page is interactive. If the mark
is called more than once, the last is used.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PageVisitFinalStatus" enum="PageVisitFinalStatus">
<summary>
Determines the final status for this page load. That is, records whether
the page was never foregrounded, was foregrounded but did not reach FCP,
or did reach FCP. The metric is recorded at the end of each page load. As
usual with PageLoad metrics, we consider app backgrounding on Android to
be the end of page load as well as the app could be evicted by Android
anytime after that happens.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaintBPP"
enum="BitsPerPixelExponential">
<summary>
Measures the ratio of image file size (in bits) to displayed pixels for
the LCP candidate. Bucketed into roughly exponential intervals to account
for the wide range of encountered values (less than 1:100000 to greater
than 10000:1). This metric is recorded whenever the LCP candidate is an
image, and omitted when it is text.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaintImageLoadEnd">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the LCP element(image) finishes loading. For
animated images, this is when the image resource finishes loading
completely, not the first frame time. See web.dev/optimize-lcp for more
details. This metric is not recorded when the LCP element is text or
video.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaintImageLoadStart">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the LCP element(image) starts loading. See
web.dev/optimize-lcp for more details. This metric is not recorded when
the LCP element is text or video.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaintRequestPriority"
enum="NetRequestPriority">
<summary>
Resource loading priority used for the LCP candidate. This metric is
recorded whenever the LCP candidate is an image, and omitted when it is
text or video.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaintType">
<summary>
Indicates that type of the LargestContentfulPaint candidate. This value is
a packed set of flags, defined in
third_party/blink/public/common/performance/largest_contentful_paint_type.h
</summary>
</metric>
<metric name="PaintTiming.NavigationToExperimentalLargestContentfulPaint">
<obsolete>
Replaced by PaintTiming.NavigationToLargestContentfulPaint2 on Oct 2020.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, across all frames. Differs from
PaintTiming.NavigationToLargestContentfulPaint in that this experimental
version includes content that has been removed.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="PaintTiming.NavigationToExperimentalLargestContentfulPaint.MainFrame">
<obsolete>
Replaced by PaintTiming.NavigationToLargestContentfulPaint2.MainFrame on
Oct 2020.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, in the main frame. Differs from
PaintTiming.NavigationToLargestContentfulPaint.MainFrame in that this
experimental version includes content that has been removed.
</summary>
</metric>
<metric name="PaintTiming.NavigationToFirstContentfulPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints content. A contentful paint
includes a paint of text, image, SVG, or canvas. Log of major changes:
http://bit.ly/chrome-speed-metrics-changelog
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.gender"/>
<index fields="profile.gender,profile.generation"/>
<index fields="profile.generation"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PaintTiming.NavigationToFirstPaint">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the first paint is performed.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PaintTiming.NavigationToLargestContentfulPaint">
<obsolete>
Replaced by PaintTiming.NavigationToLargestContentfulPaint2. No longer
reported from Nov 2021.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, across all frames. See http://bit.ly/fcp_plus_plus
for more details. Stable since M79; previous versions are experimental and
subject to fluctuation between releases. Log of major changes:
http://bit.ly/chrome-speed-metrics-changelog Note: Will be replaced by
PaintTiming.NavigationToLargestContentfulPaint2.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PaintTiming.NavigationToLargestContentfulPaint.MainFrame">
<obsolete>
Replaced by PaintTiming.NavigationToLargestContentfulPaint2.MainFrame. No
longer reported from Nov 2021.
</obsolete>
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, in the main frame. See http://bit.ly/fcp_plus_plus
for more details. Note: Will be replaced by
PaintTiming.NavigationToLargestContentfulPaint2.MainFrame.
</summary>
</metric>
<metric name="PaintTiming.NavigationToLargestContentfulPaint2">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, across all frames. See http://bit.ly/fcp_plus_plus
for more details. Log of major changes:
http://bit.ly/chrome-speed-metrics-changelog. Version 2 differs from the
first version in that it includes content that has been removed from the
page.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="PaintTiming.NavigationToLargestContentfulPaint2.CrossSiteSubFrame">
<summary>
Similar to PaintTiming.NavigationToLargestContentfulPaint2, this measures
the time in milliseconds from the navigation start of the top-level frame
to the time when the page first paints the largest content (text or image)
in the cross-site subframe which is the top candidate of largest
contentful paint. This metric is computed separately from the page-level
LCP, it's recorded even in page loads where the page-level LCP is not that
cross-site LCP.
</summary>
</metric>
<metric name="PaintTiming.NavigationToLargestContentfulPaint2.MainFrame">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, in the main frame. Includes content that has been
removed from the page. See http://bit.ly/fcp_plus_plus for more details.
</summary>
</metric>
<metric name="PaintTiming.NavigationToLargestContentfulPaint2AtFirstOnHidden">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time when the page first paints the largest content (text or
image) within viewport, across all frames. Recorded at the point when a
page which has been opened in the foreground is moved to the background
for the first time. See http://bit.ly/fcp_plus_plus for more details. Log
of major changes: http://bit.ly/chrome-speed-metrics-changelog. This
metric is trying to record the LCP values which are not able to be
recorded in PaintTiming.NavigationToLargestContentfulPaint2 for some
reasons.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ParseTiming.NavigationToParseStart">
<summary>
Measures the time in milliseconds from navigation timing's navigation
start to the time the parser started, for main frame documents.
</summary>
</metric>
<metric name="RefreshRateThrottled" enum="Boolean">
<summary>
Records whether the refresh rate is throttled (capped to 30Hz) by Power
Saver Mode for this Page Load, when the navigation starts. It is possible
but very unlikely for this to change mid navigation, for instance due to a
change by the user in settings or the battery being recharged above 20%.
</summary>
</metric>
<metric name="SiteEngagementScore">
<owner>mcrouse@chromium.org</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Measures the Site Engagement Score for the committed URL rounded to the
nearest 10.
</summary>
</metric>
<metric name="SiteInstanceRenderProcessAssignment"
enum="SiteInstanceProcessAssignment">
<summary>
Records how the main frame's site instance was assigned to a renderer
process.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SoftNavigationCount">
<summary>
Number of soft navigations detected by heuristics. See
https://bit.ly/soft-navigation
Soft navigations are JS-driven same-document navigations that are using
the history API or the new Navigation API, triggered by a user gesture and
meaningfully modify the DOM, replacing the previous content with new one.
</summary>
</metric>
<metric name="ThirdPartyCookieBlockingEnabledForSite" enum="Boolean">
<owner>dullweber@chromium.org</owner>
<owner>huanzhong@chromium.org</owner>
<summary>
Records whether third party cookie blocking was enabled for a site. Only
recorded for users who enabled the cookie controls ui.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WasCached">
<summary>
Set to 1 if the main resource was served from cache.
</summary>
</metric>
<metric name="WasDiscarded" enum="Boolean">
<summary>
Records whether the Page Load is the result of the page having previously
been discarded because of performance interventions or critical memory
pressure.
</summary>
</metric>
</event>
<event name="PageLoad.CacheTransparencyEnabled" singular="True">
<owner>nidhijaju@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
Recorded for page loads where Cache Transparency is enabled.
</summary>
</event>
<event name="PageLoad.FromGoogleSearch" singular="True">
<owner>sullivan@chromium.org</owner>
<owner>mushan@chromium.org</owner>
<summary>
Recorded for page loads that were navigated to via Google Search.
</summary>
<metric name="GoogleSearchMode" enum="GoogleSearchMode">
<summary>
Google Search mode used by the user. This corresponds to the tab (e.g. web
result, image results, video results, etc.) the user is on. This
information is extracted from the tbm query parameter on the Search URL.
</summary>
</metric>
</event>
<event name="PageLoad.Internal" singular="True">
<owner>npm@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Debugging metrics for the PageLoad event that do not require the same amount
of sampling.
</summary>
<metric name="PaintTiming.ExperimentalLargestContentfulPaint.ContentType"
enum="LargestContentType">
<obsolete>
Replaced by PaintTiming.LargestContentfulPaint.ContentType. No longer
reported from Nov 2021.
</obsolete>
<summary>
Records whether the page's experimental version of largest contentful
paint, whose timestamp is measured by
PageLoad.PaintTiming.NavigationToLargestContentfulPaint, comes from text
or image. This value is sampled and not on the PageLoad event, so it is
not always recorded whenever
PageLoad.PaintTiming.NavigationToLargestContentfulPaint is recorded.
</summary>
</metric>
<metric
name="PaintTiming.ExperimentalLargestContentfulPaint.TerminationState"
enum="LargestContentfulPaint.TerminationState">
<obsolete>
Replaced by PaintTiming.LargestContentfulPaint.TerminationState. No longer
reported from Nov 2021.
</obsolete>
<summary>
Records the state of the experimental largest contentful paint algorithm
at the time in which the browser attempts to record
PageLoad.PaintTiming.NavigationToLargestContentfulPaint. This state
depends on whether there was an experimental largest contentful paint
candidate or not and the foreground state of the page. This value is
sampled and not on the PageLoad event, so it is not always recorded
whenever the browser attempts to record
PageLoad.PaintTiming.NavigationToLargestContentfulPaint.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaint.ContentType"
enum="LargestContentType">
<summary>
Records whether the page's largest contentful paint, whose timestamp is
measured by PageLoad.PaintTiming.NavigationToLargestContentfulPaint2,
comes from text or image. This value is sampled and not on the PageLoad
event, so it is not always recorded whenever
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2 is recorded.
</summary>
</metric>
<metric name="PaintTiming.LargestContentfulPaint.TerminationState"
enum="LargestContentfulPaint.TerminationState">
<summary>
Records the state of the largest contentful paint algorithm at the time in
which the browser attempts to record
PageLoad.PaintTiming.NavigationToLargestContentfulPaint2. This state
depends on whether there was a largest contentful paint candidate or not
and the foreground state of the page. This value is sampled and not on the
PageLoad event, so it is not always recorded whenever the browser attempts
to record PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.
</summary>
</metric>
</event>
<event name="PageLoad.PervasivePayloadsEnabled" singular="True">
<owner>nidhijaju@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<summary>
Recorded for page loads where the pervasive payloads list is inputted to
Chrome.
</summary>
</event>
<event name="PageLoad.ServiceWorkerControlled" singular="True">
<owner>wanderview@chromium.org</owner>
<owner>asamidoi@chromium.org</owner>
<summary>
Recorded for page loads controlled by a service worker.
</summary>
</event>
<event name="PageLoad.SignedExchange" singular="True">
<owner>horo@chromium.org</owner>
<summary>
Recorded for page loads which main resource is an inner response of a signed
exchange.
</summary>
<metric name="ServedFromGoogleCache">
<summary>
Set to 1 if the main resource was served from Google's cache server.
</summary>
</metric>
</event>
<event name="PageLoadCapping" singular="True">
<obsolete>
Deprecated as of 3/2019.
</obsolete>
<owner>ryansturm@chromium.org</owner>
<summary>
Metrics related to PageLoadCapping that are recorded using the same UKM IDs
as PageLoad.
</summary>
<metric name="FinalState">
<summary>
Set to 1 when the InfoBar was shown, but not acted upon. Set to 2 when the
page was paused, but not resumed. Set to 3 when the page was resumed. If
the InfoBar was not shown, this metrics is not recorded.
</summary>
</metric>
</event>
<event name="PageLoadInitiatorForAdTagging" singular="True">
<owner>yaoxia@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
Metrics about the initiator context of a page load (e.g. whether certain
condition was true and/or what triggered the page load). Recorded when a
page commits. The metrics are specific to ad related conditions or purposes.
</summary>
<metric name="FromAdClick" enum="Boolean">
<summary>
Whether the page was opened due to a click on an ad.
</summary>
</metric>
<metric name="FromUser" enum="Boolean">
<summary>
Whether the navigation occurred due to a user action. This includes
omnibox navigations as well as renderer initiated navigations with user
activation.
</summary>
</metric>
</event>
<event name="PageWithPassword">
<owner>battre@chromium.org</owner>
<summary>
Metrics about websites that contain password forms and the user's
interactions with them. No events are created for pages that don't contain
password forms.
</summary>
<metric name="FormManagerAvailable">
<summary>
Records whether Chrome was sufficiently aware of forms during various
stages of saving a credential on the site, or whether saving was aborted
due to absence of the corresponding form manager. Values correspond to the
enum PasswordManagerMetricsRecorder::FormManagerAvailable.
</summary>
</metric>
<metric name="PageLevelUserAction">
<summary>
Records if the user interacts with the password manager in a way that
cannot (reliably) be attributed to a specific PasswordFormManager. Values
correspond to the enum
PasswordManagerMetricsRecorder::PageLevelUserAction.
</summary>
</metric>
<metric name="ProvisionalSaveFailure">
<summary>
Records a provisional save failure in case the password manager cannot
offer to save a credential. Recorded values correspond to the enum
PasswordManagerMetricsRecorder::ProvisionalSaveFailure.
</summary>
</metric>
<metric name="UserModifiedPasswordField">
<summary>
Records a 1 for every page on which a user has modified a password text
field - regardless of how many password fields a page contains or the user
modifies.
</summary>
</metric>
</event>
<event name="PaintPreviewCapture" singular="True">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>vollick@chromium.org</owner>
<summary>
Metrics related to the performance of capturing Paint Previews.
</summary>
<metric name="BlinkCaptureTime">
<summary>
The amount of time spent painting in Blink to record a Paint Preview of
the main frame.
</summary>
</metric>
<metric name="CompressedOnDiskSize">
<summary>
The compressed on-disk size in KB of the captured artifacts. This is
rounded down to the nearest exponential bucket (with a bucket ratio of
1.3).
</summary>
</metric>
</event>
<event name="PasswordForm">
<owner>battre@chromium.org</owner>
<summary>
Metrics about password forms on websites and the user's interactions with
them. A separate event is generated for each password form discovered on a
site.
</summary>
<metric name="Context.FormSignature">
<summary>
Records a low entropy hash of the form signature in order to be able to
distinguish two forms on the same site.
</summary>
</metric>
<metric name="DynamicFormChanges">
<summary>
Records a bitmask of password form changes after the first time this form
is seen by Password Manager. Recorded once per a form when the form is
removed from DOM. Bit 0 - changes in number of fields, bit 1 - changes in
fields renderer ids, bit 2 - changes in autocomplete attributes, bit 3 -
changes in form control types, bit 4 - changes in field names.
</summary>
</metric>
<metric name="Fill.FirstFillingResultInRenderer"
enum="PasswordManagerFirstRendererFillingResult">
<summary>
Records whether the PasswordAutofillAgent in the renderer manages to fill
credentials as instructed by the browser or records a failure reason
otherwise. Only the outcome of the first attempt to fill is recorded.
This is replicated as PasswordManager.FirstFillingResultInRenderer in UMA.
</summary>
</metric>
<metric name="Fill.FirstWaitForUsernameReason"
enum="PasswordManagerFirstWaitForUsernameReason">
<summary>
This metric records why the browser instructs the renderer not to fill the
credentials on page load but to wait for the user to confirm the
credential to be filled. Only the value of the first decision to fill is
recorded.
This is replicated as PasswordManager.FirstWaitForUsernameReason in UMA.
</summary>
</metric>
<metric name="FillOnLoad">
<summary>
Deprecated in November 2018, because the decision this metric supported
was made. Records the comparison of the old and new decision about filling
a form on load. Should only be logged for fillig with non-PSL matched
credentials, in non-Incognito mode. Values are from
password_manager::PasswordFormMetricsRecorder::FillOnLoad.
</summary>
</metric>
<metric name="Generation.GeneratedPassword" enum="Boolean">
<summary>
Records '1' if the user has generated a password on this form.
</summary>
</metric>
<metric name="Generation.GeneratedPasswordModified" enum="Boolean">
<summary>
Records '1' if the user has modified a generated a password on this form.
</summary>
</metric>
<metric name="Generation.PopupShown" enum="PasswordGenerationPopupShown">
<summary>
Records an entry if (and only if) a popup was shown.
</summary>
</metric>
<metric name="Generation.SpecPriority">
<obsolete>
Deprecated 09/2019.
</obsolete>
<summary>
Reports the priority of a PasswordGenerationRequirementsSpec for a
generated password. This can be used for debugging as a 0 means that no
spec was used, a 10 means that the spec came from autofill and was crowd
sourced, a 20 means that it was overridden per domain and a 30 means that
is was overridden for the form.
</summary>
</metric>
<metric name="ManagerFill.Action">
<summary>
Records for each password form (and HTTP auth), whether the password
manager has filled/provided credentials. Recorded values correspond to the
enum ManagerAutofillEvent.
</summary>
</metric>
<metric name="ManagerFill.Assistance" enum="PasswordManagerFillingAssistance">
<summary>
Records for each successful submission the degree to which the user has
been assisted by the password manager.
This is replicated as PasswordManager.FillingAssistance in UMA.
</summary>
</metric>
<metric name="ParsingComparison">
<obsolete>
Deprecated 09/2019.
</obsolete>
<summary>
Records comparison result of old and new password form parsing algorithms.
Metric is recorded on a password form detection. Recorded values
correspond to the enum
password_manager::PasswordFormMetricsRecorder::ParsingComparisonResult.
</summary>
</metric>
<metric name="ParsingOnSavingDifference">
<obsolete>
Deprecated 09/2019.
</obsolete>
<summary>
Records the comparison of the old and new password form parsing for
saving. Multiple values from the
password_manager::PasswordFormMetricsRecorder::ParsingOnSavingDifference
bitmask can be combined.
</summary>
</metric>
<metric name="ReadonlyWhenFilling">
<summary>
Records the readonly status encoded with parsing success after parsing for
filling. The |value| is constructed as follows: The least significant bit
says whether parsing succeeded (1) or not (0). The rest, shifted by one
bit to the right is the FormDataParser::ReadonlyPasswordFields
representation of the readonly status.
</summary>
</metric>
<metric name="ReadonlyWhenSaving">
<summary>
Records the readonly status encoded with parsing success after parsing for
creating pending credentials. The |value| is constructed the same way as
for ReadonlyWhenFilling.
</summary>
</metric>
<metric name="Saving.Prompt.Interaction" enum="PasswordBubbleDismissalReason">
<summary>
Records how the user interacted with a saving prompt.
</summary>
</metric>
<metric name="Saving.Prompt.Shown" enum="Boolean">
<summary>
Records, for each password form seen by the password manager, whether the
user was shown a prompt that asked for permission to save new credentials.
In case a store() via the Credential Management API, a virtual password
form is created, for which this metric is recorded.
</summary>
</metric>
<metric name="Saving.Prompt.Trigger" enum="PasswordBubbleTrigger">
<summary>
Records the trigger of each password save bubble that was shown to the
user to ask for permission to save new credentials.
</summary>
</metric>
<metric name="Saving.ShowedManualFallbackForSaving">
<summary>
Records if a manual fallback for saving option was shown to the user (on
Android this is recorded, even though the UI does not exist at the
moment). This is a bit mask. 1 means a prompt was shown, 2 means the
prompt was due to a generated password, 4 means the prompt was due to an
update.
</summary>
</metric>
<metric name="Submission.Indicator" enum="SubmissionIndicatorEvent">
<summary>
Records the event that led the password manager to believe the submission
was successful. Metrics is recorded only when the password is saved.
</summary>
</metric>
<metric name="Submission.Observed" enum="Boolean">
<summary>
Records whether a submission of a password form has been observered. The
values 0 and 1 correspond to false and true respectively.
</summary>
</metric>
<metric name="Submission.SubmissionResult"
enum="PasswordFormSubmissionResult">
<summary>
Records the outcome of a password form submission.
</summary>
</metric>
<metric name="Submission.SubmittedFormType" enum="PasswordFormType">
<summary>
Records the classification of a form at submission time.
This is replicated as PasswordManager.SubmittedFormType in UMA.
</summary>
</metric>
<metric name="SuppressedAccount.Generated.HTTPSNotHTTP">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were stored for an HTTPS
origin while the password form was seen on an HTTP origin. If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally auto-generated
(as opposed to user typed). Recorded values correspond to the enum
SuppressedAccountExistence.
</summary>
</metric>
<metric name="SuppressedAccount.Generated.PSLMatching">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were for an origin that was
only PSL-matching the origin of the observed form (see the suffix
description for the possible classes of such near-matches). If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally auto-generated
(as opposed to user typed). Recorded values correspond to the enum
SuppressedAccountExistence.
</summary>
</metric>
<metric name="SuppressedAccount.Generated.SameOrganizationName">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were for an origin that was
only matching the visited origin if the TLD is stripped. If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally auto-generated
(as opposed to user typed). Recorded values correspond to the enum
SuppressedAccountExistence.
</summary>
</metric>
<metric name="SuppressedAccount.Manual.HTTPSNotHTTP">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were stored for an HTTPS
origin while the password form was seen on an HTTP origin. If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally entered by the
user (as opposed to auto-generated). Recorded values correspond to the
enum SuppressedAccountExistence.
</summary>
</metric>
<metric name="SuppressedAccount.Manual.PSLMatching">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were for an origin that was
only PSL-matching the origin of the observed form (see the suffix
description for the possible classes of such near-matches). If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally entered by the
user (as opposed to auto-generated). Recorded values correspond to the
enum SuppressedAccountExistence.
</summary>
</metric>
<metric name="SuppressedAccount.Manual.SameOrganizationName">
<obsolete>
Deprecated 03/2019.
</obsolete>
<summary>
Records, for each password form seen by the password manager, whether
there were `suppressed` credentials, meaning stored credentials that were
not filled, that were suppressed because they were for an origin that was
only matching the visited origin if the TLD is stripped. If there were
such credentials, the histogram also records whether the username and
password of such suppressed credentials matched those submitted. This
recording happens only for credentials that were originally entered by the
user (as opposed to auto-generated). Recorded values correspond to the
enum SuppressedAccountExistence.
</summary>
</metric>
<metric name="Updating.Prompt.Interaction"
enum="PasswordBubbleDismissalReason">
<summary>
Records how the user interacted with an updating prompt.
</summary>
</metric>
<metric name="Updating.Prompt.Shown" enum="Boolean">
<summary>
Records, for each password form seen by the password manager, whether the
user was shown a prompt that asked for permission to update existing
credentials.
</summary>
</metric>
<metric name="Updating.Prompt.Trigger" enum="PasswordBubbleTrigger">
<summary>
Records the trigger of each password update bubble that was shown to the
user to ask for permission to update existing credentials.
</summary>
</metric>
<metric name="User.Action">
<obsolete>
Deprecated. Use new user actions (&quot;User.Action....&quot;) instead.
</obsolete>
<summary>
Records what the user does with all UI entry points of the password
manager UI, like bubbles, context menus, forms, form fields, etc. in
relation to a given form. Recorded values correspond to the enum
PasswordFormMetricsRecorder::DetailedUserAction. In contrast to
User.ActionSimplified, this metric is intended to be extended over time.
</summary>
</metric>
<metric name="User.Action.CorrectedUsernameInForm">
<summary>
Counts how many times the user corrected a username in a password form.
This is only populated if events happened.
</summary>
</metric>
<metric name="User.Action.EditedUsernameInBubble">
<summary>
Counts how many times the user edited a username in a password save/update
bubble. This is only populated if events happened.
</summary>
</metric>
<metric name="User.Action.SelectedDifferentPasswordInBubble">
<summary>
Counts how many times the user selected a different password in a
save/update bubble. This is only populated if events happened.
</summary>
</metric>
<metric name="User.Action.TriggeredManualFallbackForSaving">
<summary>
Counts how many times the user triggered the manual fallback for password
saving. This is only populated if events happened.
</summary>
</metric>
<metric name="User.Action.TriggeredManualFallbackForUpdating">
<obsolete>
Deprecated. Use TriggeredManualFallbackForSaving instead.
</obsolete>
<summary>
Counts how many times the user triggered the manual fallback for password
updating. This is only populated if events happened.
</summary>
</metric>
<metric name="User.ActionSimplified">
<obsolete>
Deprecated as of 12/11/2019.
</obsolete>
<summary>
Records what the user does with a form. Recorded values correspond to the
enum password_manager::UserAction.
</summary>
</metric>
</event>
<event name="PasswordManager.LeakWarningDialog">
<owner>jkeitel@google.com</owner>
<owner>chrome-duplex@google.com</owner>
<summary>
Metrics related to leak warnings shown on login and password reset. Leak
warning dialogs in Chrome aim to inform users about leaked credentials and
advise to change them. We collect type of the dialog that is shown and the
response of the user to it.
</summary>
<metric name="PasswordLeakDetectionDialogDismissalReason"
enum="PasswordLeakDetectionDialogDismissalReason">
<summary>
Records the response to the password leak dialog.
</summary>
</metric>
<metric name="PasswordLeakDetectionDialogType"
enum="PasswordLeakDetectionDialogType">
<summary>
Records the type of the password leak dialog.
</summary>
</metric>
</event>
<event name="PasswordManager.PasswordChangeFlowDuration">
<owner>kolos@chromium.org</owner>
<owner>jkeitel@google.com</owner>
<summary>
Metrics related to password change flows. Chrome offers users several entry
points for password change flows, e.g. from Password Checkup in Settings or
on a leak warning dialog during sign in with compromised credentials. We
collect the duration of and the success rate of such password change flows.
</summary>
<metric name="Duration">
<summary>
The time that passed during the start of the flow and the end of the flow
in seconds.
</summary>
</metric>
<metric name="EndEvent"
enum="PasswordManager.PasswordChangeSuccessTracker.EndEvent">
<summary>
Records how the flow was ended, e.g. whether it ended with a generated
password from a manual flow, a password reset link, etc.
</summary>
</metric>
<metric name="EntryPoint"
enum="PasswordManager.PasswordChangeSuccessTracker.EntryPoint">
<summary>
Records the entry point of the password change flow, e.g. whether it was
from settings or during login.
</summary>
</metric>
<metric name="StartEvent"
enum="PasswordManager.PasswordChangeSuccessTracker.StartEvent">
<summary>
Records how the flow was started, e.g. whether it was a manual from
settings, a manual flow will a well-known/.change-password URL, etc.
</summary>
</metric>
</event>
<event name="PasswordManager.PasswordChangeTriggered">
<owner>brunobraga@google.com</owner>
<owner>chrome-duplex@google.com</owner>
<summary>
Metrics related to password change. The Password Checkup in Chrome Settings
aims to help users find their leaked passwords. After getting list of
compromised passwords, user can trigger password change.
</summary>
<metric name="PasswordChangeType" enum="PasswordChangeType">
<summary>
Records what type of password change the user triggers.
</summary>
</metric>
</event>
<event name="PasswordManager.PasswordFillingIOS">
<owner>theocristea@google.com</owner>
<owner>kazinova@google.com</owner>
<owner>vsemeniuk@google.com</owner>
<summary>
Records password filling for IOS. The metric records whether the password
filling is successful upon suggestion click.
</summary>
<metric name="FillingSuccess" enum="BooleanSuccess">
<summary>
A boolean indicating success or failure.
</summary>
</metric>
</event>
<event name="PasswordManager.WellKnownChangePasswordResult">
<owner>kazinova@google.com</owner>
<owner>vasilii@chromium.org</owner>
<summary>
Metrics related to the usage and support of .well-known/change-password. The
.well-known/change-password standard is defined to redirect to the sites
change password form. We collect whether a site supports the standard or
not. https://wicg.github.io/change-password-url/
</summary>
<metric name="WellKnownChangePasswordResult"
enum="WellKnownChangePasswordResult">
<summary>
Records if a site supports .well-known/change-password and if a url
override was used or not.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PaymentApp.CheckoutEvents">
<owner>rouslan@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<summary>
Records checkout events as well as completion status for the invoked payment
app when its origin is shown inside the payment handler modal window. This
metric uses the specific PAYMENT_APP_ID ukm_source_id which is generated
from the app's origin.
</summary>
<metric name="CompletionStatus" enum="PaymentRequestFlowCompletionStatus">
<summary>
How the Payment Request ended. This metric will only get recorded if a
non-autofill payment app gets invoked to handle the request.
</summary>
</metric>
<metric name="Events">
<summary>
Bitfield representing the events that occurred during the Payment Request.
This metric will only get recorded if a non-autofill payment app gets
invoked to handle the request. Values defined in the Event enum of
components/payments/core/journey_logger.h.
</summary>
</metric>
<metric name="Events2">
<summary>
The 2.0 version of Events. Bitfield representing the events that occurred
during the Payment Request. This metric will only get recorded if a
non-autofill payment app gets invoked to handle the request. Values
defined in the Event2 enum of components/payments/core/journey_logger.h.
</summary>
</metric>
</event>
<event name="PaymentRequest.CheckoutEvents">
<owner>rouslan@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<metric name="CompletionStatus">
<summary>
How the Payment Request ended. Values defined in the CompletionStatus enum
of components/payments/core/journey_logger.h.
</summary>
</metric>
<metric name="Events">
<summary>
Bitfield representing the events that occurred during the Payment Request.
Values defined in the Event enum of
components/payments/core/journey_logger.h.
</summary>
</metric>
<metric name="Events2">
<summary>
The 2.0 version of Events. Bitfield representing the events that occurred
during the Payment Request. Values defined in the Event2 enum of
components/payments/core/journey_logger.h.
</summary>
</metric>
</event>
<event name="PaymentRequest.TransactionAmount">
<owner>rouslan@chromium.org</owner>
<owner>web-payments-team@google.com</owner>
<metric name="Category">
<summary>
Tranaction size can be zero, micro, or regular. Values defined in the
TransactionSize enum of components/payments/core/journey_logger.h.
</summary>
</metric>
<metric name="CompletionStatus" enum="Boolean">
<summary>
Whether the transaction has been triggered or completed.
</summary>
</metric>
</event>
<event name="Pepper.Broker" singular="True">
<owner>raymes@chromium.org</owner>
<summary>
Event recorded when a flash instance connects to the broker, resulting in a
channel being opened to the broker process.
</summary>
</event>
<event name="PerfectHeuristics" singular="True">
<obsolete>
Implementation for these experiments were removed in M94.
</obsolete>
<owner>dom@chromium.org</owner>
<owner>chrome-loading@google.com</owner>
<summary>
Metrics recorded for the various Perfect Heuristics experiments being run.
</summary>
<metric name="delay_async_script_execution_before_finished_parsing"
enum="Boolean">
<summary>
Set to 1 when blink::ScriptRunner sees an async script before the
associated document has finished parsing.
</summary>
</metric>
<metric name="DelayCompetingLowPriorityRequests" enum="Boolean">
<summary>
Set to 1 when blink::ResourceLoadScheduler delays competing low priority
requests. See https://crbug.com/1112515 for details.
</summary>
</metric>
</event>
<event name="PerformanceAPI.LongAnimationFrame">
<owner>nrosenthal@chromium.org</owner>
<summary>
This event is associated with the LongAnimationFrame Web Platform API. The
metrics are recorded when a long animation frame is detected and reported to
the page. For more details see https://crbug.com/1392685.
</summary>
<metric name="DidPause" enum="Boolean">
<summary>
True if there was a pause (sync XHR, dialog) during the long frame.
</summary>
</metric>
<metric name="Duration.DelayDefer">
<summary>
A positive or negative duration in milliseconds, representing the time
between the desired time for rendering the frame and rendering it in
practice. Positive means delayed, negative means deferred.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.EffectiveBlocking">
<summary>
The duration in milliseconds, representing the time the LoAF was blocking.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSCompilation">
<summary>
The total duration of long-script JS compilation, in milliseconds.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSExecution">
<summary>
The total duration of long-script JS execution, not including compilation,
in milliseconds.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSExecution.EventListeners">
<summary>
The total duration spent in event listeners (e.g. onclick).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSExecution.PromiseHandlers">
<summary>
The total duration spent in promise resolve/reject tasks.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSExecution.ScriptBlocks">
<summary>
The total duration spent in script blocks (script element, import)
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.LongScript.JSExecution.UserCallbacks">
<summary>
The total duration spent in user callbacks (e.g. requestAnimationFrame).
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.StyleAndLayout.Forced">
<summary>
The total duration of forced style and layout in long scripts.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.StyleAndLayout.RenderPhase">
<summary>
The total duration of the style and layout lifecycle phase, not including
forced style and layout.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.Total">
<summary>
The duration of the long animation frame in milliseconds. Mirrors the
value reported in PerformanceEntry.duration.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PerformanceAPI.LongTask">
<owner>hpayer@chromium.org</owner>
<owner>mlippautz@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>
This event is associated with the LongTask Web Platform API. The metrics are
recorded when a long task is detected and reported to the page. For more
details see the design doc linked in https://crbug.com/1173527.
</summary>
<metric name="Duration">
<summary>
The duration of the long task in microseconds. Mirrors the value reported
in PerformanceEntry.duration.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.V8.Execute">
<summary>
The total time in microseconds that is V8 spent in main-thread V8,
including JS-time, but without time spent in callbacks to blink.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.V8.GC">
<summary>
The total time in microseconds that V8 spent collecting garbage within the
long task.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.V8.GC.Full.Atomic">
<summary>
The total time in microseconds that V8 spent in the atomic pause of the
full garbage collector within the long task.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.V8.GC.Full.Incremental">
<summary>
The total time in microseconds that V8 spent in the incremental pause of
the full garbage collector within the long task.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Duration.V8.GC.Young">
<summary>
The total time in microseconds that V8 spent in the young garbage
collector within the long task.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="StartTime">
<summary>
The duration in millseconds between the document navigation start and the
long task start. Mirrors the value reported in PerformanceEntry.startTime.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PerformanceAPI.Memory">
<owner>hpayer@chromium.org</owner>
<owner>mlippautz@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>
This event is associated with the performance.measureUserAgentSpecificMemory
API. The metrics are recorded when the memory measurement is reported to the
page. All values represent memory consumption in KB.
</summary>
<metric name="Dom">
<summary>
The total DOM memory measured in KB.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="JavaScript">
<summary>
The total JavaScript memory measured in KB.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="JavaScript.DedicatedWorker">
<summary>
The total JavaScript memory in the DedicatedWorker scope measured in KB.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Shared">
<summary>
The total shared memory measured in KB.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PerformanceAPI.Memory.Legacy">
<owner>hpayer@chromium.org</owner>
<owner>mlippautz@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>
This event is associated with the performance.memory API. The metrics are
recorded when the memory measurement is reported to the page. All values
represent memory consumption in KB.
</summary>
<metric name="JavaScript">
<summary>
The JavaScript memory (usedJSHeapSize) measured in KB.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="PerformanceManager.PageResourceUsage">
<owner>anthonyvd@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<summary>
Metrics detailing the estimated resources used by pages. The resources of a
renderer process are allocated to all pages hosted in that process using the
algorithm in performance_manager::ProcessMetricsDecorator. An event is
collected for each open page every 5 minutes.
</summary>
<metric name="PrivateFootprintEstimate">
<summary>
The estimated private footprint of the page, in kilobytes.
</summary>
</metric>
<metric name="ResidentSetSizeEstimate">
<summary>
The estimated resident set size of the page, in kilobytes.
</summary>
</metric>
</event>
<event name="PerformanceManager.PageTimelineState">
<owner>anthonyvd@chromium.org</owner>
<owner>spvw@chromium.org</owner>
<summary>
Metrics detailing the lifecycle state of tabs over the course of the
execution of the browser. One slice is collected on a heartbeat every approx
100 minutes on average (but dependent on PRNG). A slice is a collection of
PageTimelineState UKM events. One PageTimelineState is recorded for each
browser tab when a slice is collected.
</summary>
<metric name="BatterySaverMode" enum="Boolean">
<summary>
True if Batter Saver Mode is enabled at the time this event is recorded.
</summary>
</metric>
<metric name="ChangedFaviconOrTitleInBackground" enum="Boolean">
<summary>
True if this page has been observed to change its favicon or title when in
the background.
</summary>
</metric>
<metric name="CurrentState" enum="PageState">
<summary>
The state the tab was in when the slice was recorded.
</summary>
</metric>
<metric name="HasNotificationPermission" enum="Boolean">
<summary>
True if this page has been granted the notification permission.
</summary>
</metric>
<metric name="HighEfficiencyMode" enum="Boolean">
<summary>
True if High Efficiency Mode is enabled at the time this event is
recorded.
</summary>
</metric>
<metric name="IsActiveTab" enum="Boolean">
<summary>
True if this page is the active tab in its tab strip.
</summary>
</metric>
<metric name="IsCapturingMedia" enum="Boolean">
<summary>
True if this page is capturing media (audio/video/screen).
</summary>
</metric>
<metric name="IsConnectedToDevice" enum="Boolean">
<summary>
True if this page is connected to a BT or USB device.
</summary>
</metric>
<metric name="IsPlayingAudio" enum="Boolean">
<summary>
True if this page is playing audio.
</summary>
</metric>
<metric name="PrivateFootprint">
<summary>
The total memory footprint of this page at the moment the sample was
recorded, in kilobytes.
</summary>
</metric>
<metric name="ResidentSetSize">
<summary>
The total resident set size of this page at the moment the sample was
recorded, in kilobytes.
</summary>
</metric>
<metric name="SliceId">
<summary>
A strictly increasing ID used to order slices in relation to each other.
This is not zero for the first slice, but rather is a randomly chosen
number to make it more difficult to derive exact browser uptime.
A &quot;slice&quot; is a collection of PageTimelineStates recorded at the
same time.
</summary>
</metric>
<metric name="TabId">
<summary>
A monotonically increasing generated id assigned to a tab, enabling
analysis of a tab's lifecycle across several slices. This is necessary
because a URL isn't sufficient to identify a tab: multiple tabs can be
open for the same URL, and a tab containing foo.com and be closed, with
another re-opened between two slice snapshots.
</summary>
</metric>
<metric name="TimeInCurrentState">
<summary>
The time in milliseconds spent in the current state. Exponentially
bucketed.
</summary>
</metric>
<metric name="TimeSinceCreation">
<summary>
Time in milliseconds since this tab was created. Exponentially bucketed.
</summary>
</metric>
<metric name="TimeSinceLastSlice">
<summary>
The time in milliseconds since the last slice was recorded. Exponentially
bucketed.
</summary>
</metric>
<metric name="TotalForegroundTime">
<summary>
Cumulative time in milliseconds spent in foreground by this tab since its
creation. Exponentially bucketed.
</summary>
</metric>
</event>
<event name="PeriodicBackgroundSyncEventCompleted">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
A website can register to periodically update itself in the background using
a service worker. Updates can be done in response to the periodicsync event.
Logged when a periodicsync event completes and returns a status. We collect
information about retries of this event.
</summary>
<metric name="MaxAttempts">
<summary>
Integer value of the maximum number of allowed retries.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="NumAttempts">
<summary>
Integer value of the number of retries / sync events dispatched.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Status" enum="ServiceWorkerEventStatus">
<summary>
The enum value of the completion status, defined in
blink::ServiceWorkerStatusCode.
</summary>
</metric>
</event>
<event name="PeriodicBackgroundSyncRegistered">
<owner>nator@chromium.org</owner>
<owner>rayankans@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
A website can register to periodically update itself in the background using
a service worker. Updates can be done in response to the periodicsync event
after a periodic Background Sync registration has been created. Logged when
a periodic Background Sync registration is created. We collect information
about this registration request.
</summary>
<metric name="IsReregistered" enum="Boolean">
<summary>
Boolean for whether a registration with this tag has already been created.
</summary>
</metric>
<metric name="MinIntervalMs">
<summary>
Integer value of the minimum interval, in milliseconds, of periodicsync
events requested by the origin for this registration. This number is
exponentially bucketed and uses the UKM GetExponentialBucketMin method
with a value of 2.0 for spacing.
</summary>
</metric>
</event>
<event name="Permission">
<owner>timloh@chromium.org</owner>
<summary>
Metrics for a user's permission actions, logged when a permission prompt is
resolved or when a permission is revoked. Grouped (microphone+camera)
permission prompts are reported separately.
</summary>
<metric name="Action">
<summary>
An enum of type PermissionAction. One of GRANTED, DENIED, DISMISSED or
IGNORED.
</summary>
</metric>
<metric name="Gesture">
<summary>
An enum of type PermissionRequestGestureType, whether the prompt was
initiated by a user gesture.
</summary>
</metric>
<metric name="PermissionAutoRevocationHistory"
enum="PermissionAutoRevocationHistory">
<summary>
An enum of type PermissionAutoRevocationHistory, representing whether the
permission has been automatically revoked in the past at least once.
</summary>
</metric>
<metric name="PermissionType">
<summary>
An enum of type ContentSettingsType.
</summary>
</metric>
<metric name="PredictionsApiResponse.GrantLikelihood"
enum="PredictionGrantLikelihood">
<summary>
An enum of type PermissionUmaUtil::PredictionGrantLikelihood describing
the likelihood returned by the Web Permission Predictions Service, if the
service was successfully queried.
</summary>
</metric>
<metric name="PredictionsApiResponse.Heldback" enum="Boolean">
<summary>
A boolean that records whether the response by the permissions prediction
service was held back.
</summary>
</metric>
<metric name="PriorDismissals">
<summary>
The number of dismissed prompts for the given (origin, permission) pair,
capped at 10 dismissals.
</summary>
</metric>
<metric name="PriorIgnores">
<summary>
The number of ignored prompts for the given (origin, permission) pair,
capped at 10 ignores.
</summary>
</metric>
<metric name="PromptDisposition">
<summary>
An enum of type PermissionPromptDisposition. The UI used to display a
permission prompt, if any.
</summary>
</metric>
<metric name="PromptDispositionReason"
enum="PermissionPromptDispositionReason">
<summary>
An enum of type PermissionPromptDispositionReason. The reason why the
particular prompt disposition was used, if any.
</summary>
</metric>
<metric name="SatisfiedAdaptiveTriggers">
<summary>
A bitmask consisting of flags defined in enum type AdaptiveTriggers. A bit
is set if the corresponding adaptive triggering condition has been
satisfied at least once in the past for the user. This metric is not
recorded for users who don't have the activation dry run enabled.
</summary>
</metric>
<metric name="Source">
<summary>
An enum of type PermissionSourceUI. The UI surface for this action.
</summary>
</metric>
<metric name="Stats.AllPrompts.Count">
<summary>
Total number of prompts shown to the user in the last 28 days. The count
is bucketed. The bucket minimums being 20, 15, 12, 10, 9, 8, 7, 6, 5, 4
and 0. The correct bucket is the first one that is smaller or equal to the
prompt count.
</summary>
</metric>
<metric name="Stats.AllPrompts.DenyRate">
<summary>
What percentage of prompts from the last 28 days did the user deny.
Aggregated across all origins, all PermissionTypes and all
PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPrompts.DismissRate">
<summary>
What percentage of prompts from the last 28 days did the user dismiss.
Aggregated across all origins, all PermissionTypes and all
PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPrompts.GrantRate">
<summary>
What percentage of prompts from the last 28 days did the user grant.
Aggregated across all origins, all PermissionTypes and all
PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPrompts.IgnoreRate">
<summary>
What percentage of prompts from the last 28 days did the user ignore.
Aggregated across all origins, all PermissionTypes and all
PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPromptsOfType.Count">
<summary>
Total number of prompts shown to the user in the last 28 days for the
currently requested permission type. The count is bucketed. The bucket
minimums being 20, 15, 12, 10, 9, 8, 7, 6, 5, 4 and 0. The correct bucket
is the first one that is smaller or equal to the prompt count.
</summary>
</metric>
<metric name="Stats.AllPromptsOfType.DenyRate">
<summary>
What percentage of prompts from the last 28 days did the user deny.
Aggregated across all origins, the current requested PermissionType and
all PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPromptsOfType.DismissRate">
<summary>
What percentage of prompts from the last 28 days did the user dismiss.
Aggregated across all origins, the current requested PermissionType and
all PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPromptsOfType.GrantRate">
<summary>
What percentage of prompts from the last 28 days did the user grant.
Aggregated across all origins, the current requested PermissionType and
all PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.AllPromptsOfType.IgnoreRate">
<summary>
What percentage of prompts from the last 28 days did the user ignore.
Aggregated across all origins, the current requested PermissionType and
all PromptDisposition. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPrompts.Count">
<summary>
Total number of loud UI prompts shown to the user in the last 28 days. The
count is bucketed. The bucket minimums being 20, 15, 12, 10, 9, 8, 7, 6, 5
,4 and 0. The correct bucket is the first one that is smaller or equal to
the prompt count.
</summary>
</metric>
<metric name="Stats.LoudPrompts.DenyRate">
<summary>
What percentage of prompts from the last 28 days did the user deny.
Aggregated across all origins, all PermissionTypes and loud UI
PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPrompts.DismissRate">
<summary>
What percentage of prompts from the last 28 days did the user dismiss.
Aggregated across all origins, all PermissionTypes and loud UI
PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPrompts.GrantRate">
<summary>
What percentage of prompts from the last 28 days did the user grant.
Aggregated across all origins, all PermissionTypes and loud UI
PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPrompts.IgnoreRate">
<summary>
What percentage of prompts from the last 28 days did the user ignore.
Aggregated across all origins, all PermissionTypes and loud UI
PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPromptsOfType.Count">
<summary>
Total number of loud UI prompts shown to the user in the last 28 days for
the currently requested permission type. The count is bucketed. The bucket
minimums being 20, 15, 12, 10, 9, 8, 7, 6, 5, 4 and 0. The correct bucket
is the first one that is smaller or equal to the prompt count.
</summary>
</metric>
<metric name="Stats.LoudPromptsOfType.DenyRate">
<summary>
What percentage of prompts from the last 28 days did the user deny.
Aggregated across all origins, currently requested PermissionType and loud
UI PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPromptsOfType.DismissRate">
<summary>
What percentage of prompts from the last 28 days did the user dismiss.
Aggregated across all origins, currently requested PermissionType and loud
UI PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPromptsOfType.GrantRate">
<summary>
What percentage of prompts from the last 28 days did the user grant.
Aggregated across all origins, currently requested PermissionType and loud
UI PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="Stats.LoudPromptsOfType.IgnoreRate">
<summary>
What percentage of prompts from the last 28 days did the user ignore.
Aggregated across all origins, currently requested PermissionType and loud
UI PromptDispositions only. Rounded to the nearest 10%.
</summary>
</metric>
<metric name="TimeToDecision">
<summary>
Time (in milliseconds) taken by the user to make a decision on a
permission prompt after it was displayed, if at all. Ignoring a prompt
doesn't count as a decision.
</summary>
</metric>
</event>
<event name="PermissionUsage">
<owner>engedy@chromium.org</owner>
<owner>ravjit@chromium.org</owner>
<owner>permissions-dev@chromium.org</owner>
<summary>
Metrics for usage of capabilities gated behind permission prompts. One event
is recorded per permission type for each page load that uses that permission
type.
</summary>
<metric name="PermissionType">
<summary>
An enum of type ContentSettingsType.
</summary>
</metric>
</event>
<event name="Plugins.FlashInstance">
<owner>tommycli@chromium.org</owner>
<summary>
Recorded when a Flash object instance is created.
</summary>
</event>
<event name="Popup.Closed">
<owner>csharrison@chromium.org</owner>
<owner>jkarlin@chromium.org</owner>
<summary>
A popup window was closed.
</summary>
<metric name="EngagementTime">
<summary>
The time (in ms, rounded down to the nearest power of 2) a popup
WebContents is visible / foregrounded, until it is closed. Keyed by the
popup opener's URL (not the URL of the popup).
</summary>
</metric>
<metric name="NumActivationInteractions">
<summary>
Integer value representing how many mouse down, touch start user, or raw
key down interactions the popup had. This is capped at 50.
</summary>
</metric>
<metric name="NumGestureScrollBeginInteractions">
<summary>
Integer value representing how many gesture scroll begin user interactions
the popup had. This is capped at 50.
</summary>
</metric>
<metric name="NumInteractions">
<summary>
Integer value representing how many user interactions the popup had. This
is capped at 100. See IsUserInteractionInputType in web_contents_impl for
what an interaction is. Currently it is a mouse, scroll begin, touch
start, or raw key down event.
</summary>
</metric>
<metric name="RedirectCount">
<summary>
The number of redirects taken by the pop-up's initial navigation. This
does not include javascript navigations initiated by the opening document
for the pop-up.
</summary>
</metric>
<metric name="SafeBrowsingStatus" enum="PopupSafeBrowsingStatus">
<summary>
The site's safe browsing status if the pop-up's navigation commits.
</summary>
</metric>
<metric name="Trusted">
<summary>
Boolean value representing whether the popup was opened via some trusted
event (e.g. context menu, ctrl-click, etc).
</summary>
</metric>
<metric name="UserInitiatedClose">
<summary>
Boolean value to represent whether the popup was closed by user gesture.
</summary>
</metric>
<metric name="WindowOpenDisposition" enum="WindowOpenDisposition">
<summary>
The UI window open disposition used when creating the web contents of the
pop-up. Set by the browser process when the pop up tracker is created.
</summary>
</metric>
</event>
<event name="Popup.Page" singular="True">
<owner>justinmiron@google.com</owner>
<summary>
Page level pop-up statistics.
</summary>
<metric name="Allowed" enum="Boolean">
<summary>
Whether a user has, explicitly, allowed all popups on the last committed
url of a page. The user's site level popup content setting is queried when
a page that opened a popup is destroyed. Only emitted when at least one
popup has been opened and the last committed page url is valid.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Portal.Activate">
<owner>lfg@chromium.org</owner>
<summary>
A portal was activated. A portal activation enables a seamless transition
between different pages. See the portals explainer for more details:
https://github.com/WICG/portals/blob/master/README.md.
</summary>
<metric name="PaintTiming.PortalActivationToFirstPaint">
<summary>
When this page load happened inside a Portal, this metrics records the
time in milliseconds between the portal activation and the first paint
after activation.
</summary>
</metric>
<metric name="PortalActivation">
<summary>
Measures the time between LCP and the portal activation. Uses exponential
bucketing with a spacing of 2, with the units in milliseconds.
</summary>
</metric>
<metric name="PortalActivationBeforeLCP" enum="Boolean">
<summary>
Indicates whether the portal activation happened before or after the
largest contentful paint.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.FirstPartyToFirstParty.DifferentBucket">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A top level frame received an incoming postMessage event from another top
level frame with a different storage key and a different origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.FirstPartyToFirstParty.SameBucket">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A top level frame received an incoming postMessage event from another top
level frame with the same storage key.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.FirstPartyToThirdParty.DifferentBucket.DifferentOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A child frame received an incoming postMessage event from a top level frame
with a different storage key and a different origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.FirstPartyToThirdParty.DifferentBucket.SameOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A child frame received an incoming postMessage event from a top level frame
with a different storage key and the same origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.Frame">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
The frame received an incoming postMessage event. This is recorded only for
postMessage events sent between frames in the same renderer process.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.Opaque">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A frame received an incoming postMessage event from another frame where
either of their origins or top level origins are opaque.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.Page">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A frame on the page received an incoming postMessage event. This is recorded
only for postMessage events sent between frames in different renderer
processes.
</summary>
<metric name="SourcePageSourceId">
<summary>
The UKM source ID of the postMessage event's source page, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.ThirdPartyToFirstParty.DifferentBucket.DifferentOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A top level frame received an incoming postMessage event from a child frame
with a different storage key and a different origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.ThirdPartyToFirstParty.DifferentBucket.SameOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A top level frame received an incoming postMessage event from a child frame
with a different storage key and the same origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.ThirdPartyToThirdParty.DifferentBucket.DifferentOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A child frame received an incoming postMessage event from another child
frame with a different storage key and a different origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event
name="PostMessage.Incoming.ThirdPartyToThirdParty.DifferentBucket.SameOrigin">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A child frame received an incoming postMessage event from another child
frame with a different storage key and the same origin.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PostMessage.Incoming.ThirdPartyToThirdParty.SameBucket">
<owner>arichiv@chromium.org</owner>
<owner>miketaylr@chromium.org</owner>
<summary>
A child frame received an incoming postMessage event from another child
frame with the same storage key.
</summary>
<metric name="SourceFrameSourceId">
<summary>
The UKM source ID of the postMessage event's source frame, as an integer.
</summary>
</metric>
</event>
<event name="PowerUsageScenariosIntervalData">
<owner>fdoray@chromium.org</owner>
<owner>sebmarchand@chromium.org</owner>
<owner>chrome-catan@google.com</owner>
<summary>
Metrics to measure power consumption in key usage scenarios, as well as the
time spent in each scenario. These metrics are reported for a fixed interval
of time, the duration of this interval is recorded in the
IntervalDurationSeconds metric.
The events aren't tied to a specific URL, a timer independent of any load
event runs in Chrome and report these events at regular intervals. All the
metrics associated to this event are for the last interval. The URL attached
to the event is the one that has been visible for the longest time during
the interval, the exact visibility duration for this URL during the interval
is reported in the URLVisibilityTimeSeconds metric.
e.g., at T-0 an interval ends and this event is emitted, a new interval then
starts. During the interval the users spends 75% of his time watching a
fullscreen video on https://foo.com with 10 tabs opened in background. Just
before the end of the interval the user closes all the tabs but one. An
event will be emitted for https://foo.com at T+X with the following metrics:
IntervalDurationSeconds: X in seconds; URLVisibilityTimeSeconds: 0.75 * X in
seconds; FullscreenVideoSingleMonitorSeconds: 0.75 * X in seconds;
MaxTabCount: 10; TabClosed: 9; ... (not all metrics are listed here because
it'd be too long, but in practice all the metrics are reported for each
interval).
This is reported on Mac and Windows. See go/chrome_power_use_per_scenario
for more details.
</summary>
<metric name="BatteryDischargeMode" enum="BatteryDischargeMode">
<summary>
Battery discharge mode describing whether BatteryDischargeRate could be
reported or not, and why. Recorded as enum BatteryDischargeMode in
//tools/metrics/histograms/enums.xml.
</summary>
</metric>
<metric name="BatteryDischargeRate">
<summary>
Battery discharge rate per minute, with 1/10000 of full charge resolution,
example: - Battery capacity = 4000 mAh; - Battery charge at the beginning
of the interval: 3900 mAh; - Battery charge at the end of the interval:
3700 mAh; - Discharge proportion: (3900-3700) / 4000 = 0.05 - Reported
value: 500.
</summary>
</metric>
<metric name="BrowserShuttingDown" enum="Boolean">
<summary>
Indicates if the browser is shutting down when this event is reported.
</summary>
</metric>
<metric name="CPUTimeMs">
<summary>
The CPU time spent executing code, across all Chrome processes in the
interval. This can exceed 100% in multi-thread processes running on
multi-core systems.
</summary>
</metric>
<metric name="DeviceSleptDuringInterval" enum="Boolean">
<summary>
Whether or not the device has been sleeping at any point during the
interval.
</summary>
</metric>
<metric name="EnergyImpactScore">
<summary>
Sum of the energy impact score for all Chrome processes (Mac-only).
</summary>
</metric>
<metric name="FullscreenVideoSingleMonitorSeconds">
<summary>
Time spent playing video in fullscreen, single-monitor. In seconds. This
includes video for any tabs during the interval.
</summary>
</metric>
<metric name="IdleWakeUps">
<summary>
Sum of idle-wakeups for all Chrome processes (Mac-only).
</summary>
</metric>
<metric name="IntervalDurationSeconds">
<summary>
The interval duration, in seconds.
</summary>
</metric>
<metric name="MainScreenBrightnessPercent">
<obsolete>
Removed 02/2022 because it's not actively used.
</obsolete>
<summary>
The brightness of the main screen in percent or -1 if not available.
Samples have a 20% granularity, e.g. 65% will report as 60%.
</summary>
</metric>
<metric name="MaxTabCount">
<summary>
The maximum number of tabs that existed at the same time during the
interval.
</summary>
</metric>
<metric name="MaxVisibleWindowCount">
<summary>
The maximum number of windows that have been visible at the same time.
</summary>
</metric>
<metric name="OriginVisibilityTimeSeconds">
<summary>
The visibility time for the origin of the URL associated with this event,
in seconds. This can differ from URLVisibilityTimeSeconds if there's
multiple tabs loaded with the same URL that are visible during the
interval. E.g. if there's one tab loaded with foo.com/a visible for 1
second during the interval and one loaded with foo.com/b visible for 2
seconds the report will have URLVisibilityTimeSeconds = 2 seconds and
OriginVisibilityTimeSeconds = 3 seconds. This can also exceed the interval
duration (e.g. 2 visibles tab with loaded the same origin during the
entire interval).
</summary>
</metric>
<metric name="PackageExits">
<summary>
Sum of package exits from all Chrome processes (Mac-only).
</summary>
</metric>
<metric name="PlayingAudioSeconds">
<summary>
The time spent playing audio in at least one tab, in seconds.
</summary>
</metric>
<metric name="TabClosed">
<summary>
The number of tabs that have been closed during the interval.
</summary>
</metric>
<metric name="TimePlayingVideoInVisibleTab">
<summary>
The time spent playing video in at least one visible tab, in seconds.
</summary>
</metric>
<metric name="TimeSinceInteractionWithBrowserSeconds">
<summary>
The time since the last interaction with the browser when this event gets
recorded, in seconds.
</summary>
</metric>
<metric name="TimeSinceInteractionWithSystemSeconds">
<summary>
The time since the last interaction with the system when this event gets
recorded, in seconds.
</summary>
</metric>
<metric name="TimeWithOpenWebRTCConnectionSeconds">
<summary>
The time spent with at least one opened WebRTC connection, in seconds.
</summary>
</metric>
<metric name="TopLevelNavigationEvents">
<summary>
Number of main frame different-document navigations.
</summary>
</metric>
<metric name="UptimeSeconds">
<summary>
Elapsed time since Chrome has started, in seconds.
</summary>
</metric>
<metric name="URLVisibilityTimeSeconds">
<summary>
The visibility time for the URL associated with this event, in seconds.
</summary>
</metric>
<metric name="UserInteractionCount">
<summary>
Number of user interaction (scroll, click or typing) during the interval.
</summary>
</metric>
<metric name="VideoCaptureSeconds">
<summary>
The time spent capturing video in at least one tab, in seconds.
</summary>
</metric>
</event>
<event name="PrefetchProxy" singular="True">
<owner>curranmax@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<summary>
Metrics related to the privacy-preserving prefetch proxy.
</summary>
<metric name="count_css_js_loaded_cache_before_fcp">
<obsolete>
Deprecated March 2022.
</obsolete>
<summary>
The number of CSS or JS files that were loaded from the cache before first
contentful paint, with a maximum of 10. Always set when this event is
recorded.
</summary>
</metric>
<metric name="count_css_js_loaded_network_before_fcp">
<obsolete>
Deprecated March 2022.
</obsolete>
<summary>
The number of CSS or JS files that were loaded from the network before
FCP, with a maximum of 10. Always set when this event is recorded.
</summary>
</metric>
<metric name="days_since_last_visit_to_origin">
<summary>
The number of days since the user has last visited any page on this
origin, either during a redirect or a committed page. Records -1 if the
origin has never been visited before. Metrics for origins that have been
visited before are capped at 180 then exponentially bucketed into 10
buckets with values (1,2,3,5,9,15,25,42,70,119). Only set when a query
result was received from the history service before event recording.
</summary>
</metric>
<metric name="mainpage_request_had_cookies" enum="Boolean">
<obsolete>
Replaced by PageLoad.MainFrameResource.RequestHadCookies in M92.
</obsolete>
<summary>
A boolean indicating if any mainpage request in the redirect chain or
committed request had cookies set on it. Only set when a query result was
received from the cookie manager before event recording.
</summary>
</metric>
<metric name="ordered_eligible_pages_bitmask">
<obsolete>
Deprecated March 2022.
</obsolete>
<summary>
Which links on the Google Search Page were eligible to be prefetched where
the Nth-LSB is set if the Nth page is eligible.
</summary>
</metric>
<metric name="prefetch_attempted_count">
<summary>
The number of pages on the Google Search Result Page that were attempted
to be prefetched.
</summary>
</metric>
<metric name="prefetch_eligible_count">
<summary>
The number of pages on the Google Search Result page that were eligible to
be prefetched.
</summary>
</metric>
<metric name="prefetch_successful_count">
<summary>
The number of pages on the Google Search Result Page that were
successfully prefetched.
</summary>
</metric>
<metric name="prefetch_usage">
<obsolete>
Replaced by PrefetchProxy.AfterSRPClick.SRPClickPrefetchStatus in M84.
</obsolete>
<summary>
This enum records if a cached prefetch page was used, and its probe
status, when the user navigates off the Google Search Result Page. Not set
if there was no prefetch. Values: Prefetch used, no probe = 0. Prefetch
used, successful probe = 1. Prefetch not used, failed probe = 2.
</summary>
</metric>
</event>
<event name="PrefetchProxy.AfterSRPClick" singular="True">
<owner>curranmax@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<summary>
Metrics related to the privacy-preserving prefetch proxy on the page load
after the SRP. Recorded only for eligible users on the first mainframe
user-initiated page load immediately after a Google Search Result Page (SRP)
which Chrome parsed and may have prefetched links.
</summary>
<metric name="ClickedLinkSRPPosition">
<summary>
When a user clicks on a Google SRP link, this int records which position
the clicked link was in. Recorded only when the user navigates to a Google
SRP link.
</summary>
</metric>
<metric name="PrefetchHeaderLatencyMs">
<summary>
Time between the prefetch request was sent and the time the response
headers were received. Unset if the headers have not been received by the
time the user navigated to the current page.
</summary>
</metric>
<metric name="PrivatePrefetch">
<summary>
This is 1 if the prefetched resource was prefetched via the private
prefetch proxy. This is not logged otherwise.
</summary>
</metric>
<metric name="ProbeLatencyMs">
<summary>
How long the network probe blocked commit in milliseconds. Recorded only
when a probe was required.
</summary>
</metric>
<metric name="SameTabAsPrefetchingTab">
<summary>
This is 1 if the page load matching the prefetch was in the same
WebContents as the page that triggerd the prefetch. This is not logged
otherwise.
</summary>
</metric>
<metric name="SRPClickPrefetchStatus" enum="PrefetchProxyPrefetchStatus">
<summary>
The outcome of the prefetch eligibility check and possible attempt to
prefetch the resource. The prefetched url is always the committed URL of
the page. See |PrefetchProxyPrefetchStatus| for a mapping of enum values
and their meanings.
</summary>
</metric>
<metric name="SRPPrefetchEligibleCount">
<summary>
The number of links from the SRP page (the previous page load) that were
eligible for prefetch. Always set when this event is recorded.
</summary>
</metric>
</event>
<event name="PrefetchProxy.PrefetchedResource">
<owner>curranmax@chromium.org</owner>
<owner>ryansturm@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<summary>
Each event corresponds to a single resource, either mainframe or
subresource, that was prefetched during an Isolated Prerender. Logged one or
many times on a Google Search Result Page for eligible users.
</summary>
<metric name="DataLength">
<summary>
The bucketed number of bytes that transited the network to prefetch this
resource. Only set when the resource was prefetched.
</summary>
</metric>
<metric name="FetchDurationMS">
<summary>
The number of milliseconds that the prefetch took from start to
completion. Only set when the resource was prefetched.
</summary>
</metric>
<metric name="ISPFilteringStatus" enum="IsolatedPrerenderISPFilteringStatus">
<summary>
How ISP filtering interacted with the mainframe resource if it was
navigated to. Only set when LinkClicked is true.
</summary>
</metric>
<metric name="LinkClicked" enum="Boolean">
<summary>
Whether the mainframe was navigated to. Always set when the event is
recorded, even on subresources which take the value from their
corresponding mainframe.
</summary>
</metric>
<metric name="LinkPosition">
<summary>
The location in the original navigation prediction of where the mainframe
url was. Always set when the event is recorded, even on subresources which
take the value from their corresponding mainframe.
</summary>
</metric>
<metric name="NavigationStartToFetchStartMS">
<summary>
The number of milliseconds between the start of the navigation and the
start of the prefetch request. Only set when the resource was attempted to
be prefetched.
</summary>
</metric>
<metric name="ResourceType" enum="IsolatedPrerenderPrefetchResourceType">
<summary>
The type of resource that was prefetched, either mainframe or subresource.
Always set when the event is recorded.
</summary>
</metric>
<metric name="Status" enum="PrefetchProxyPrefetchStatus">
<summary>
The outcome of the prefetch eligibility check and possible attempt to
prefetch the resource and reuse it. See |PrefetchProxyPrefetchStatus| for
a mapping of enum values and their meanings. Always set when the event is
recorded.
</summary>
</metric>
</event>
<event name="Preloading.AnchorInteraction">
<owner>jacobstanley@google.com</owner>
<owner>curranmax@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
Logged once for each preconnection request sent to the browser in response
to the user interacting with an anchor element. Associated with the Source
ID of the page triggering the preconnection.
</summary>
<metric name="AnchorElementPreloaderType" enum="AnchorElementPreloaderType">
<summary>
One event for each preload operation that was triggered on the current
page.
</summary>
</metric>
</event>
<event name="Preloading.Attempt">
<owner>sreejakshetty@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
This event is logged for each preloading attempt i.e., for preloading
features like Preresolve, Preconnect, Prerender, Prefetch, and others when
the user navigates or when the WebContents is being destroyed.
Associated with the Source ID of the page user navigates to. Contains
information about the type of attempt, its eligibility, triggering outcome,
failure reason and whether the attempt was triggered accurately or not.
Note that this event is sampled based on the PreloadingConfig feature
configuration (in addition to the normal UKM sampling mechanism). The
sampling rate for each event (which may vary for different preloading
features) is logged in the SamplingLikelihood field.
</summary>
<metric name="AccurateTriggering" enum="Boolean">
<summary>
Whether the preloading operation was triggered accurately for the
predicted URL (regardless of the eligibility, failures, etc.). Set to true
if the user navigated to the predicted URL.
</summary>
</metric>
<metric name="Eligibility">
<summary>
Eligibility status of preloading operation for the prediction. Values are
from the Chrome enum content::PreloadingEligibility.
</summary>
</metric>
<metric name="FailureReason">
<summary>
Reason why the preloading operation failed. Values are from the enum
specific to the preloading type.
</summary>
</metric>
<metric name="HoldbackStatus">
<summary>
The outcome of the holdback check. This is not part of eligibility status
to make clarify that this check needs to happen after we are done
verifying the eligibility of a preloading attempt. In general, eligibility
checks can be reordered, but the holdback check always needs to come after
verifying that the preloading attempt was eligible.
</summary>
</metric>
<metric name="PreloadingPredictor">
<summary>
The type of preloading predictor which made the prediction. Values are
from the Chrome enum content::PreloadingPredictor or
ChromePreloadingPredictor.
</summary>
</metric>
<metric name="PreloadingType">
<summary>
The type of preloading operation used for the preloading attempt. Values
are from the Chrome enum content::PreloadingType.
</summary>
</metric>
<metric name="ReadyTime">
<summary>
The amount of time the attempt took to reach a state in which it is ready
to be used for the next navigation, in milliseconds. Note: currently only
Prefetch, Prerender and NoStatePrefetch have a ready state. This field is
only meaningful to these three types of preloading.
</summary>
</metric>
<metric name="SamplingLikelihood">
<summary>
The sampling rate of this particular event multiplied by 1,000,000
(because we cannot log floating point values in UKM). A value of 1,000,000
means that the event had a 100% chance of being sampled, whereas a value
of one means that the event had a one-in-a-millon chance of being sampled.
The sampling rate for preloading attempts is set via field trial through
the PreloadingConfig feature. The logged value just represents the
configuration used for that preloading attempt.
</summary>
</metric>
<metric name="TimeToNextNavigation">
<summary>
The amount of time the attempt took to reach the next navigation, in
milliseconds. This can happen multiple times, but only the first is
recorded.
</summary>
</metric>
<metric name="TriggeringOutcome">
<summary>
Specifies whether the preloading attempt triggered and was used for the
next navigation. Values are from the Chrome enum
content::PreloadingTriggeringOutcome.
</summary>
</metric>
</event>
<event name="Preloading.Attempt.PreviousPrimaryPage">
<owner>sreejakshetty@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
This is same as Preloading.Attempt but UKM is associated with the primary
triggering page (if exists) and logged when the user navigates away or when
the WebContents is being destroyed.
Associated with the Source ID of the WebContents primary page where the
preloading attempt is triggered (user navigates from). All the metrics data
are similar to Preloading.Attempt and please see the comments for more
details.
Note that this event is sampled based on the PreloadingConfig feature
configuration (in addition to the normal UKM sampling mechanism). The
sampling rate for each event (which may vary for different preloading
features) is logged in the SamplingLikelihood field.
</summary>
<metric name="AccurateTriggering" enum="Boolean">
<summary>
Whether the preloading operation was triggered accurately (regardless of
the eligibility, holdback, failures, etc.).
Set to true if the user navigated to the predicted URL.
</summary>
</metric>
<metric name="Eligibility">
<summary>
Eligibility status of preloading operation for the prediction.
</summary>
</metric>
<metric name="FailureReason">
<summary>
Reason why the preloading operation failed.
</summary>
</metric>
<metric name="HoldbackStatus">
<summary>
The outcome of the holdback check. This is not part of eligibility status
to make clarify that this check needs to happen after we are done
verifying the eligibility of a preloading attempt. In general, eligibility
checks can be reordered, but the holdback check always needs to come after
verifying that the preloading attempt was eligible.
</summary>
</metric>
<metric name="PreloadingPredictor">
<summary>
The type of predictor that made the prediction. Values are from either
content::PreloadingPredictor or ChromePreloadingPredictor.
</summary>
</metric>
<metric name="PreloadingType">
<summary>
The type of preloading operation used for the preloading attempt.
</summary>
</metric>
<metric name="ReadyTime">
<summary>
The amount of time the attempt took to reach a state in which it is ready
to be used for the next navigation, in milliseconds. Note: currently only
Prefetch, Prerender and NoStatePrefetch have a ready state. This field is
only meaningful to these three types of preloading.
</summary>
</metric>
<metric name="SamplingLikelihood">
<summary>
The sampling rate of this particular event multiplied by 1,000,000
(because we cannot log floating point values in UKM). A value of 1,000,000
means that the event had a 100% chance of being sampled, whereas a value
of one means that the event had a one-in-a-millon chance of being sampled.
The sampling rate for preloading attempts is set via field trial through
the PreloadingConfig feature. The logged value just represents the
configuration used for that preloading attempt.
</summary>
</metric>
<metric name="TimeToNextNavigation">
<summary>
The amount of time the attempt took to reach the next navigation, in
milliseconds. This can happen multiple times, but only the first is
recorded.
</summary>
</metric>
<metric name="TriggeringOutcome">
<summary>
Specifies whether the preloading triggered and was used for the next
navigation.
</summary>
</metric>
</event>
<event name="Preloading.Prediction">
<owner>sreejakshetty@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
This event is logged for each preloading prediction and metrics related to
the preloading predictors like OmniboxDirectURLInput, Speculation Rules and
others when the navigation is finished or when the WebContents is being
destroyed.
Associated with the Source ID of the page user navigates to. Contains
information about the type of the predictor, its confidence value and
whether the prediction ended up being correct.
</summary>
<metric name="AccuratePrediction" enum="Boolean">
<summary>
Whether the user navigated to the predicted URL.
</summary>
</metric>
<metric name="Confidence">
<summary>
The confidence percentage of predictor's correct prediction for
preloading.
</summary>
</metric>
<metric name="PreloadingPredictor">
<summary>
The type of preloading predictor that made the prediction. Values are from
content::PreloadingPredictor or ChromePreloadingPredictor.
</summary>
</metric>
<metric name="TimeToNextNavigation">
<summary>
The amount of time the prediction took to reach the next navigation, in
milliseconds. This can happen multiple times, but only the first is
recorded.
</summary>
</metric>
</event>
<event name="Preloading.Prediction.PreviousPrimaryPage">
<owner>sreejakshetty@chromium.org</owner>
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
This is the same as Preloading.Prediction but UKM is associated with the
WebContents primary triggering page (if exists) and logged when the user
navigates away or when the WebContents is being destroyed.
Associated with the Source ID of the primary page where the preloading
prediction is triggered (user navigates from). All the metrics data are
similar to Preloading.Prediction and please see the comments for more
details.
</summary>
<metric name="AccuratePrediction" enum="Boolean">
<summary>
Whether the user navigated to the predicted URL.
</summary>
</metric>
<metric name="Confidence">
<summary>
The confidence percentage of predictor's correct prediction for
preloading.
</summary>
</metric>
<metric name="PreloadingPredictor">
<summary>
The type of preloading predictor which made the preloading prediction.
Values are from content::PreloadingPredictor or ChromePreloadingPredictor.
</summary>
</metric>
<metric name="TimeToNextNavigation">
<summary>
The amount of time the prediction took to reach the next navigation, in
milliseconds. This can happen multiple times, but only the first is
recorded.
</summary>
</metric>
</event>
<event name="PrerenderPageLoad" singular="True">
<owner>ksakamoto@chromium.org</owner>
<owner>nhiroki@chromium.org</owner>
<summary>
Metrics related to Prerender2
(https://docs.google.com/document/d/1P2VKCLpmnNm_cRAjUeE-bqLL0bslL_zKqiNeCzNom_w/edit?usp=sharing).
</summary>
<metric name="FinalStatus" enum="PrerenderHostFinalStatus">
<summary>
A status of a prerendering attempt. Recorded as enum
PrerenderHostFinalStatus in //tools/metrics/histograms/enums.xml.
This is replicated as Prerender.Experimental.PrerenderHostFinalStatus.* in
UMA.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric
name="InteractiveTiming.AverageUserInteractionLatencyOverBudget.MaxEventDuration">
<summary>
The average value of user interaction latency above budget of a
prerendered page after it is successfully activated, in ms. For this
metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration and we deduct a budget
from the original value. If the latency value is below the budget, it will
be treated as 0 ms. Each type of interaction has its own budget.
</summary>
</metric>
<metric name="InteractiveTiming.FirstInputDelay4">
<summary>
The duration between the hardware timestamp and the start of event
processing on the main thread for the first meaningful input. Recorded on
the prerender activation.
</summary>
</metric>
<metric name="InteractiveTiming.NumInteractions">
<summary>
The number of distinct user interactions on a prerendered page after it is
successfully activated. See definition of user interaction:
https://web.dev/better-responsiveness-metric/#group-events-into-interactions
</summary>
</metric>
<metric
name="InteractiveTiming.UserInteractionLatency.HighPercentile2.MaxEventDuration">
<summary>
An approximation of a high percentile of user interaction latency of a
prerendered page after it is successfully activated, in ms. For this
metric, we measure the latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.country,profile.system_ram"/>
<index fields="profile.is_dominant_version"/>
<index fields="profile.is_latest_version"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InteractiveTiming.WorstUserInteractionLatency.MaxEventDuration">
<summary>
The maximum value of user interaction latency of a prerendered page after
it is successfully activated, in ms. For this metric, we measure the
latency of user interactions by
Responsiveness.UserInteraction.MaxEventDuration.
</summary>
</metric>
<metric
name="LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms">
<summary>
Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that
has occurred on the prerendered page that is successfully activated in a
session window. The gap between two consecutive shifts in a window is not
bigger than 1000ms and the maximum window size is 5000ms. This metric's
integral value is 100x the fractional cumulative layout shift score
described in the explainer.
</summary>
</metric>
<metric name="MainFrameResource.RequestHasNoStore" enum="Boolean">
<summary>
A boolean indicating if any prerender activation page load mainpage
resource has a 'Cache-control: no-store' response header. Recorded only
for main frame request.
</summary>
</metric>
<metric name="PageEndReason" enum="PageEndReason">
<obsolete>
Removed March 2023.
</obsolete>
<summary>
The |page_load_metrics::PageEndReason| for the prerender's activation.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Timing.ActivationToFirstContentfulPaint">
<summary>
The duration in milliseconds from time of activation navigation start to
the time when the page first paints content. A contentful paint includes a
paint of text, image, SVG, or canvas.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Timing.ActivationToLargestContentfulPaint">
<summary>
The duration in milliseconds from time of activation navigation start to
the time when the page first paints the largest content (text or image)
within viewport, across all frames.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Timing.NavigationToActivation">
<summary>
The duration in milliseconds from the start of initial prerendering
navigation to the start of activation navigation. This corresponds to the
activationStart attribute of PerformanceNavigationTiming.
</summary>
</metric>
<metric name="TriggeredPrerender" enum="Boolean">
<summary>
A boolean that is set to true if the page triggered prerendering.
Unlike other PrerenderPageLoad metrics, this is recorded not for
prerendered page loads, but for page loads that initiated prerender.
</summary>
</metric>
<metric name="WasPrerendered" enum="Boolean">
<summary>
A boolean that is set to true if the page was prerendered and later
activated. Cancelled prerender page loads are not logged.
</summary>
</metric>
</event>
<event name="Presentation.StartResult">
<owner>muyaoxu@google.com</owner>
<owner>openscreen-eng@google.com</owner>
<summary>
Records when users start a Presentation and receive a response from the
receiver. Android only. The following failures are not recorded because they
don't represent an actual error: (1)
PresentationErrorType::PRESENTATION_REQUEST_CANCELLED This error is created
when users close the dialog without starting a Presentation. (2)
PresentationErrorType::NO_PRESENTATION_FOUND This error might happen when a
website implementing CastSDK try to join a route every time the page loads.
</summary>
<metric name="PresentationRequest" enum="Boolean">
<summary>
Records whether the users' request to start a Presentation with a
&quot;cast:&quot; presentation URL succeed.
</summary>
</metric>
<metric name="RemotePlayback" enum="Boolean">
<summary>
Records whether the users' request to start a Presentation through
RemotePlayback succeed.
</summary>
</metric>
</event>
<event name="Previews" singular="True">
<obsolete>
Obsoleted 01/2022.
</obsolete>
<owner>ryansturm@chromium.org</owner>
<summary>
Previews related metrics associated with a page load. See
//components/previews/.
</summary>
<metric name="client_lofi">
<obsolete>
Deprecated June 2019
</obsolete>
<summary>
Set to 1 when a user is shown a client lo-fi image in a page load.
</summary>
</metric>
<metric name="coin_flip_result">
<obsolete>
Replaced by the PreviewsCoinFlip event in M78.
</obsolete>
<summary>
Set to 0 if there was no attempted preview for this page load, or the coin
flip holdback is disabled in this session. Set to 1 if a preview was
attempted and was allowed to proceed by the coin flip. Set to 2 if a
preview would have been attempted but was held back by the coin flip. Note
that a non-zero value in this field implies previews_likely.
</summary>
</metric>
<metric name="defer_all_script" enum="Boolean">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to 1 when a user is shown a DeferAllScript preview on a page load.
</summary>
</metric>
<metric name="defer_all_script_eligibility_reason"
enum="PreviewsEligibilityReason">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to the value of the last known reason a DeferAllScript preview was not
eligible on this page load. The value of this metric corresponds to the
PreviewsEligibilityReason enum. This metric is only set when it is
non-zero.
</summary>
</metric>
<metric name="lite_page">
<summary>
Set to 1 when a user is shown a lite page in page load.
</summary>
</metric>
<metric name="lite_page_redirect">
<obsolete>
Removed in M84.
</obsolete>
<summary>
Set to 1 when a user is shown a lite page redirect in page load.
</summary>
</metric>
<metric name="lite_page_redirect_eligibility_reason">
<obsolete>
Removed in M84.
</obsolete>
<summary>
Set to the value of the last known reason a Lite Page Redirect preview was
not eligible on this page load. The value of this metric corresponds to
the PreviewsEligibilityReason enum. This metric is only set when it is
non-zero.
</summary>
</metric>
<metric name="navigation_restart_penalty">
<obsolete>
Feature removed in M79.
</obsolete>
<summary>
Set to the number of milliseconds spent restarting navigations when a Lite
Page Redirect preview is attempted, whether or not it is committed, during
the page load.
</summary>
</metric>
<metric name="noscript">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to 1 when a user is shown a NoScript preview on a page load.
</summary>
</metric>
<metric name="noscript_eligibility_reason">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to the value of the last known reason a NoScript preview was not
eligible on this page load. The value of this metric corresponds to the
PreviewsEligibilityReason enum. This metric is only set when it is
non-zero.
</summary>
</metric>
<metric name="offline_eligibility_reason">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to the value of the last known reason an Offline preview was not
eligible on this page load. The value of this metric corresponds to the
PreviewsEligibilityReason enum. This metric is only set when it is
non-zero.
</summary>
</metric>
<metric name="offline_preview">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to 1 when a user is shown an offline preview page in page load.
</summary>
</metric>
<metric name="opt_out">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to 1 when a user clicks &quot;Show Original&quot; on a preview page
load using the infobar. Set to 2 when a user opts out of a Preview using
the omnibox.
</summary>
</metric>
<metric name="origin_opt_out">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to 1 when previews were enabled but no preview was attempted because
the origin provided a Cache-Control:no-transform header in the main frame
response. This is a directive from the origin to not perform any
transformation so in the context of the Previews feature, it is an opt-out
by the origin site (rather than the user).
</summary>
</metric>
<metric name="previews_likely">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to 1 when a preview will be attempted for this page load. Otherwise
this is not set. This does not imply that a preview will be committed,
only that one will be attempted. This is set to 1 even if this page load
is impacted by the coin flip holdback.
</summary>
</metric>
<metric name="proxy_lite_page_eligibility_reason">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to the value of the last known reason a Data Reduction Proxy Lite Page
preview was not eligible on this page load. The value of this metric
corresponds to the PreviewsEligibilityReason enum. This metric is only set
when it is non-zero.
</summary>
</metric>
<metric name="resource_loading_hints">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to 1 when a user is shown a resource loading hints based preview on a
page load.
</summary>
</metric>
<metric name="resource_loading_hints_eligibility_reason">
<obsolete>
Deprecated December 2020.
</obsolete>
<summary>
Set to the value of the last known reason a Resource Loading Hints preview
was not eligible on this page load. The value of this metric corresponds
to the PreviewsEligibilityReason enum. This metric is only set when it is
non-zero.
</summary>
</metric>
<metric name="save_data_enabled">
<summary>
Set to 1 if the data saver feature was enabled in Chrome at the time of
the page commit.
</summary>
</metric>
<metric name="server_lofi">
<obsolete>
Deprecated June 2019
</obsolete>
<summary>
Set to 1 when a user is shown a server lo-fi image in a page load.
</summary>
</metric>
</event>
<event name="PreviewsCoinFlip" singular="True">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<owner>robertogden@chromium.org</owner>
<summary>
Coin flip experiment metrics associated with a Preview page load. See
//components/previews/. This is recorded as a separate event from Previews
so that it can be recorded earlier than commit which happens in some cases.
</summary>
<metric name="coin_flip_result" enum="PreviewsCoinFlipResult">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
Set to 0 if there was no attempted preview for this page load, or the coin
flip holdback is disabled in this session. Set to 1 if a preview was
attempted and was allowed to proceed by the coin flip. Set to 2 if a
preview would have been attempted but was held back by the coin flip. Note
that a non-zero value in this field implies previews_likely.
</summary>
</metric>
</event>
<event name="PreviewsDeferAllScript" singular="True">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<owner>dougarnett@chromium.org</owner>
<summary>
Metrics associated with the intervention of deferring the execution of
synchronous script (typically due to a DeferAllScript Preview). This is
recorded when the HTML parsing of a mainframe has completed.
</summary>
<metric name="force_deferred_scripts_mainframe">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
The total number of mainframe scripts (inline and external) whose
execution was force deferred (i.e., that otherwise would have been render
blocking).
</summary>
</metric>
<metric name="force_deferred_scripts_mainframe_external">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<summary>
The total number of mainframe external scripts whose execution was force
deferred (i.e., that otherwise would have been render blocking).
</summary>
</metric>
</event>
<event name="PreviewsResourceLoadingHints" singular="True">
<obsolete>
Deprecated Feb 2021.
</obsolete>
<owner>jegray@chromium.org</owner>
<summary>
Metrics associated with loading a resource loading hints based preview. This
is recorded when the URL's document finishes loading. See
//components/previews/.
</summary>
<metric name="blocked_high_priority">
<summary>
The number of high priority resource requests that were blocked by the
resource loading hints based preview while the URL's document was loading.
</summary>
</metric>
<metric name="blocked_low_priority">
<summary>
The number of low priority resource requests that were blocked by the
resource loading hints based preview while the URL's document was loading.
</summary>
</metric>
<metric name="blocked_medium_priority">
<summary>
The number of medium priority resource requests that were blocked by the
resource loading hints based preview while the URL's document was loading.
</summary>
</metric>
<metric name="blocked_very_high_priority">
<summary>
The number of very high priority resource requests that were blocked by
the resource loading hints based preview while the URL's document was
loading.
</summary>
</metric>
<metric name="blocked_very_low_priority">
<summary>
The number of very low priority resource requests that were blocked by the
resource loading hints based preview while the URL's document was loading.
</summary>
</metric>
<metric name="patterns_to_block_total">
<summary>
The total number of patterns to block included in the resource loading
hints based preview.
</summary>
</metric>
<metric name="patterns_to_block_used">
<summary>
The number of patterns that blocked at least one resource request in the
resource loading hints based preview while the URL's document was loading.
</summary>
</metric>
</event>
<event name="PublicImageCompressionDataUse">
<obsolete>
Obsoleted 01/2022.
</obsolete>
<owner>rajendrant@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records coverage metrics for https image compression. The network data use
of images is recorded with breakdown of whether the image was compressible
by redirecting to optimized version, or if not the reason for its
ineligblity is recorded. The bytes are rounded down to the exponential
bucket with factor of 1.3.
</summary>
<metric name="CompressibleImageBytes">
<summary>
Total image bytes that can be compressed, by redirecting to optimized
versions to save data.
</summary>
</metric>
<metric name="IneligibleImageHintsUnavailableAndMissingInHintsBytes">
<summary>
Total bytes of images that were ineligible to be compressed due to the
image hint list was not retrieved in time before the image fetch started,
and the image URL was not in the hint list as well, which finished
fetching later.
</summary>
</metric>
<metric name="IneligibleImageHintsUnavailableButCompressibleBytes">
<summary>
Total bytes of images that were ineligible to be compressed due to the
image hint list was not retrieved in time before the image fetch started,
but the image URL was found in the hint list, which finished fetching
later.
</summary>
</metric>
<metric name="IneligibleImageHintsUnavailableBytes">
<summary>
Total bytes of images that were ineligible to be compressed due to the
image hint list was not retrieved within within certain time limit of
navigation start.
</summary>
</metric>
<metric name="IneligibleMissingInImageHintsBytes">
<summary>
Total bytes of images that were ineligible to be compressed due to the
image URL not exist in the image hint list.
</summary>
</metric>
<metric name="IneligibleOtherImageBytes">
<summary>
Total bytes of images that were ineligible to be compressed due to other
reasons not listed here, such as subframe images, non img element,
javascript initiated image, etc.
</summary>
</metric>
</event>
<event name="PublicImageCompressionImageLoad">
<obsolete>
Obsoleted Jan 2022.
</obsolete>
<owner>rajendrant@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records image loading and network data use metrics for https image
compression. Recorded when an image request completes with successful
compression or fails and fetches original image. The bytes are rounded down
to the exponential bucket with factor of 1.3.
</summary>
<metric name="CompressionPercentage">
<summary>
The compression percent of this image recorded if the image has been
compressed: (1-compressed_bytes/original_bytes)*100%
</summary>
</metric>
<metric name="NavigationToRequestSent">
<summary>
The duration in milliseconds from time of navigation start to the time the
image request was sent to the origin or compression server.
</summary>
</metric>
<metric name="NavigationToRequestStart">
<summary>
The duration in milliseconds from time of navigation start to the time the
image request started.
</summary>
</metric>
<metric name="NavigationToResponseReceived">
<summary>
The duration in milliseconds from time of navigation start to the time the
image response headers were received.
</summary>
</metric>
<metric name="OriginalBytes">
<summary>
The original size of the image before compression. For compressed images
this is the original size retrieved from response headers. For
non-compressed images this is the network bytes.
</summary>
</metric>
<metric name="RedirectResult" enum="SubresourceRedirectRedirectResult">
<summary>
Enumerates the different results possible for subresource redirection,
such as redirectable or different reasons of ineligibility.
</summary>
</metric>
<metric name="RobotsRulesFetchLatency">
<summary>
The duration in milliseconds to fetch the robots rules. Recorded for each
image that goes through the robots rules check.
</summary>
</metric>
</event>
<event name="PWA.Visit" singular="True">
<owner>yfriedman@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
PWA usage metrics recorded during a user's interaction with the site.
</summary>
<metric name="LaunchSource" enum="LaunchFromHomeScreenSource">
<summary>
Launch source of the WebAPK (tap from homescreen, WebShareTarget,
deeplink, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WebAPKableSiteVisit" enum="Boolean">
<summary>
Recorded every time a non-installed &quot;WebAPKable&quot; site is
visited.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ReaderModeActivated" singular="True">
<owner>gilmanmh@google.com</owner>
<owner>kjbooker@google.com</owner>
<owner>dtseng@chromium.org</owner>
<summary>
Recorded after a user activates Reader Mode for a given page.
</summary>
<metric name="ActivatedViaOmnibox" enum="Boolean">
<summary>
Whether the user activated Reader Mode via the omnibox badge.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="ReaderModeReceivedDistillability">
<owner>gilmanmh@google.com</owner>
<owner>kjbooker@google.com</owner>
<owner>dtseng@chromium.org</owner>
<summary>
Recorded when the Reader Mode badge receives a result from the
distillability service.
</summary>
<metric name="IsPageDistillable" enum="Boolean">
<summary>
Whether the distillability service determined the page to be distillable,
i.e. likely to render well in Reader Mode.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="RendererSchedulerTask">
<owner>altimin@chromium.org</owner>
<summary>
Sampled task from the renderer main thread. Sample rate is controlled
dynamically. See
blink::scheduler::MainThreadSchedulerImpl::ShouldRecordTaskUkm.
</summary>
<metric name="FrameStatus">
<summary>
Frame status of the frame associated with the context of this task. See
blink::scheduler::FrameStatus for the values of this enum.
</summary>
</metric>
<metric name="IsOOPIF">
<summary>
Whether the frame which the task is associated with is an out-of-process
iframe. Boolean encoded as an integer (0/1).
</summary>
</metric>
<metric name="PageSchedulers">
<summary>
Number of page schedulers in this process. If the value equals one, global
per-process tasks can be attributed to the URL.
</summary>
</metric>
<metric name="QueueType">
<summary>
Type of the task queue which this task was posted to. See
blink::scheduler::MainThreadTaskQueue::TaskType for the values of this
enum.
</summary>
</metric>
<metric name="RendererAudible">
<summary>
Whether renderer was playing audio when this task was completed. Boolean,
encoded as an integer (0/1).
</summary>
</metric>
<metric name="RendererBackgrounded">
<summary>
Whether renderer was backgrounded when this task was completed. Boolean,
encoded as an integer (0/1).
</summary>
</metric>
<metric name="RendererHidden">
<summary>
Whether renderer was hidden when this task was completed. Boolean, encoded
as an integer (0/1).
</summary>
</metric>
<metric name="SecondsSinceBackgrounded">
<summary>
Seconds since the renderer was backgrounded, recorded when the task was
completed. Only set if the renderer is backgrounded.
</summary>
</metric>
<metric name="TaskCPUDuration">
<summary>
CPU duration of this task in microseconds.
</summary>
</metric>
<metric name="TaskDuration">
<summary>
Duration of this task in microseconds.
</summary>
</metric>
<metric name="TaskType">
<summary>
blink::TaskType for the current task.
</summary>
</metric>
<metric name="ThreadType">
<summary>
blink::ThreadType for the thread the current task was executed on.
</summary>
</metric>
<metric name="UseCase">
<summary>
MainThreadSchedulerImpl's UseCase when this task was completed. See
blink::scheduler::UseCase for the values of this enum.
</summary>
</metric>
<metric name="Version">
<summary>
The version of this metric, which is used to track the actual set of
values present across different builds and channels. Hardcoded into the
binary and incremented each time a new field is added or existing is
changed. Integer.
</summary>
</metric>
</event>
<event name="RenderViewContextMenu.Used">
<owner>juanmojica@google.com</owner>
<owner>benwgold@google.com</owner>
<summary>
Metric recorded when a context menu item is selected. This is currently only
recorded for Lens context menu items.
</summary>
<metric name="SelectedMenuItem" enum="RenderViewContextMenuItem">
<summary>
The menu item selected by the user on the context menu.
</summary>
</metric>
</event>
<event name="Responsiveness.UserInteraction">
<owner>mmocny@chromium.org</owner>
<owner>sullivan@chromium.org</owner>
<owner>speed-metrics-dev@chromium.org</owner>
<summary>
Metrics that are associated with user interactions and recorded when users
interact with web pages. Currently we are interested in keyboard, tap, click
and drag. A user interaction often encompasses multiple input events. For
keyboard interactions, we only care about keydown and keyup. For tap, click
and drag, we only measure pointerdown, pointerup and click.
</summary>
<metric name="InteractionType" enum="UserInteractionType">
<summary>
The type of the user interaction that triggered input event sequence, not
the input event type. It can be keyboard, tap, click or drag.
</summary>
</metric>
<metric name="MaxEventDuration">
<summary>
The longest input event duration within the user interaction. The unit of
duration is ms. For example, if a user pressed a key, we can get a keydown
and a keyup. If the duration(keydown) &gt; duration(keyup), the value of
this metric will be duration(keydown).
</summary>
</metric>
<metric name="TotalEventDuration">
<summary>
The sum of input event durations within the user interaction without
double counting the overlap. The unit of duration is ms. For example, if a
user pressed a key, we can get a keydown and a keyup. The value of this
metric will be duration(keydown) + duration(keyup) -
duration(intersection(keydown, keyup)).
</summary>
</metric>
</event>
<event name="ResponsivenessMeasurement">
<owner>npm@chromium.org</owner>
<owner>tdresser@chromium.org</owner>
<summary>
Responsiveness metrics recorded once every 5 seconds.
</summary>
<metric name="ExpectedTaskQueueingDuration">
<obsolete>
Removed June 2020.
</obsolete>
<summary>
Duration in MS for expected task queueing duration. The metric reflects
the responsiveness of a tab. A lower value means the tab will respond to
inputs faster. This metric is equal to
RendererScheduler.ExpectedTaskQueueingDuration of the main frame process.
</summary>
</metric>
</event>
<event name="SalientImageAvailability" singular="True">
<owner>chrome-intelligence-core@google.com</owner>
<owner>tbansal@chromium.org</owner>
<summary>
Metrics on the salient image of the page, one record per page load commit
and has an annotation calculated on it.
</summary>
<metric name="ImageAvailability"
enum="OptimizationGuideSalientImageAvailability">
<summary>
Records whether salient image was available or not for this page, the
source of the salient image and why it was unavailable.
</summary>
</metric>
</event>
<event name="SameSiteDifferentSchemeRequest">
<owner>bingler@chromium.org</owner>
<metric name="SameSiteContextWithSchemes" enum="SameSiteCookieContext">
<obsolete>
Removed Apr 2020 as this metric doesn't capture the correct information.
https://crbug.com/1066231
</obsolete>
<summary>
An enum that records the type of same-site context if a cookie marked with
SameSite=Lax or SameSite=Strict is sent across schemes on a request. E.x.:
An http site making a request to an https site.
</summary>
</metric>
</event>
<event name="SameSiteDifferentSchemeResponse">
<owner>bingler@chromium.org</owner>
<metric name="SameSiteContextWithSchemes" enum="SameSiteCookieContext">
<obsolete>
Removed Apr 2020 as this metric doesn't capture the correct information.
https://crbug.com/1066231
</obsolete>
<summary>
An enum that records the type of same-site context if a cookie marked with
SameSite=Lax or SameSite=Strict is set across schemes on a response. E.x.:
An http site returning a response to an https site.
</summary>
</metric>
</event>
<event name="SamesiteRedirectContextDowngrade">
<owner>bingler@chromium.org</owner>
<summary>
A collection of metrics which are recorded for cookies whose inclusion would
be changed if the redirect chain was considered in their same-site
calculation. This change in inclusion is because the same-site context would
&quot;downgrade&quot; from a more permissive context to a less permissive
context, one which may not allow a cookie's inclusion.
</summary>
<metric name="AgePerCookie">
<summary>
Records the age of the cookies, in minutes, for cookies which are being
read (on a requset or via JS). The value rounded down to the exponential
bucket with factor of 2.0.
</summary>
</metric>
<metric name="SamesiteValueReadPerCookie" enum="SameSiteCookieValue">
<summary>
Records the SameSite value of the cookie for cookies which are being read
(on a request or via JS).
</summary>
</metric>
<metric name="SamesiteValueWritePerCookie" enum="SameSiteCookieValue">
<summary>
Records the SameSite value of the cookie for cookies which are being
written (on a response or via JS).
</summary>
</metric>
</event>
<event name="SchemefulSameSiteContextDowngrade">
<owner>bingler@chromium.org</owner>
<metric name="RequestPerCookie"
enum="SameSiteCookieContextBreakingDowngradeWithSecureness">
<summary>
An enum which records the type of schemeful same-site downgrade applied to
a cookie which is being sent on a request along with the secureness of the
origin the cookie is attempting to be sent to. This is recorded once per
cookie when the cookie is included in the request or if the cookie
excluded due to insufficient same-site context only. Cookies that meet the
above conditions but without a downgrade warning are not recorded.
</summary>
</metric>
<metric name="ResponsePerCookie"
enum="SameSiteCookieContextBreakingDowngradeWithSecureness">
<summary>
An enum which records the type of schemeful same-site downgrade applied to
a cookie which is being set by a response along with the secureness of the
origin that is attempting to set the cookie. This is recorded once per
cookie when the cookie is allowed to be set or if the cookie is ignored
due to insufficient same-site context only. Cookies that meet the above
conditions but without a downgrade warning are not recorded.
</summary>
</metric>
</event>
<event name="ScreenBrightness">
<owner>pdyson@chromium.org</owner>
<summary>
Collects metrics periodically and on screen brightness change.
</summary>
<metric name="BatteryPercent">
<summary>
Percentage of battery, rounded down to a multiple of 5%, i.e. [0, 5%) is
mapped to 0, [5%, 10%) is mapped to 5 etc.
</summary>
</metric>
<metric name="Brightness">
<summary>
Screen percentage brightness. between 0 and 100.
</summary>
</metric>
<metric name="DayOfWeek">
<summary>
An enum representing the of the week that the data was logged, defined in
|ash::power::ml::ScreenBrightnessEvent::Features::ActivityData::
DayOfWeek|.
</summary>
</metric>
<metric name="DeviceMode">
<summary>
An enum representing the mode of the device, defined in
|ash::power::ml::ScreenBrightnessEvent::Features::EnvData:DeviceMode|
</summary>
</metric>
<metric name="HourOfDay">
<summary>
The hour of the day when the data is logged. Hours since midnight in the
local time zone.
</summary>
</metric>
<metric name="IsAutoclickEnabled">
<summary>
Boolean value to represent whether the auto click is currently enabled.
</summary>
</metric>
<metric name="IsBrailleDisplayConnected">
<summary>
Boolean value to represent whether the braille display is currently
enabled.
</summary>
</metric>
<metric name="IsCaretHighlightEnabled">
<summary>
Boolean value to represent whether the caret highlight is currently
enabled.
</summary>
</metric>
<metric name="IsCursorHighlightEnabled">
<summary>
Boolean value to represent whether the cursor highlight is currently
enabled.
</summary>
</metric>
<metric name="IsFocusHighlightEnabled">
<summary>
Boolean value to represent whether the focus highlight is currently
enabled.
</summary>
</metric>
<metric name="IsHighContrastEnabled">
<summary>
Boolean value to represent whether the high contrast is currently enabled.
</summary>
</metric>
<metric name="IsLargeCursorEnabled">
<summary>
Boolean value to represent whether the large cursor is currently enabled.
</summary>
</metric>
<metric name="IsMagnifierEnabled">
<summary>
Boolean value to represent whether the full screen magnifier is currently
enabled.
</summary>
</metric>
<metric name="IsMonoAudioEnabled">
<summary>
Boolean value to represent whether the mono audio is currently enabled.
</summary>
</metric>
<metric name="IsSelectToSpeakEnabled">
<summary>
Boolean value to represent whether select to speak is currently enabled.
</summary>
</metric>
<metric name="IsSpokenFeedbackEnabled">
<summary>
Boolean value to represent whether the spoken feedback is currently
enabled.
</summary>
</metric>
<metric name="IsSwitchAccessEnabled">
<summary>
Boolean value to represent whether Switch Access is currently enabled.
</summary>
</metric>
<metric name="IsVideoPlaying">
<summary>
Boolean value to represent whether video is currently playing.
</summary>
</metric>
<metric name="IsVirtualKeyboardEnabled">
<summary>
Boolean value to represent whether the virtual keyboard is currently
enabled.
</summary>
</metric>
<metric name="LastActivityTimeSec">
<summary>
Time between the last activity and when the data was logged. A duration
timestamp in seconds.
</summary>
</metric>
<metric name="NightLightTemperaturePercent">
<summary>
The temperature percentage of night light screen color adjustment when
night light is on. Ranges from 0 to 100.
</summary>
</metric>
<metric name="NumRecentKeyEvents">
<summary>
The number of keyboard events in the last hour.
</summary>
</metric>
<metric name="NumRecentMouseEvents">
<summary>
The number of mouse events in the last hour.
</summary>
</metric>
<metric name="NumRecentStylusEvents">
<summary>
The number of stylus events in the last hour.
</summary>
</metric>
<metric name="NumRecentTouchEvents">
<summary>
The number of touch events in the last hour.
</summary>
</metric>
<metric name="OnBattery">
<summary>
Boolean value to represent whether the device is currently on battery
power.
</summary>
</metric>
<metric name="PreviousBrightness">
<summary>
The brightness of the screen prior to the time at which the current event
was logged.
</summary>
</metric>
<metric name="Reason">
<summary>
The reason that the event is logged. Values are enumerated in
|ash::power::ml::ScreenBrightnessEvent::Event::Reason|.
</summary>
</metric>
<metric name="RecentTimeActiveSec">
<summary>
How long the user has been active. A duration timestamp in seconds.
</summary>
</metric>
<metric name="SequenceId">
<summary>
The ID of this event in the current session.
</summary>
</metric>
<metric name="TimeSinceLastEventSec">
<summary>
Time in seconds since last time an event was logged.
</summary>
</metric>
</event>
<event name="Security.SafetyTip">
<owner>jdeblasio@chromium.org</owner>
<owner>enamelites@google.com</owner>
<owner>beggs@google.com</owner>
<summary>
Collected when any safety tip heuristic triggers, regardless of whether the
Safety Tip UI is shown.
</summary>
<metric name="SafetyTipInteraction" enum="SafetyTipInteraction">
<summary>
How the user interacted with the UI, if applicable.
</summary>
</metric>
<metric name="SafetyTipStatus" enum="SafetyTipStatus">
<summary>
The final reported Safety Tip status.
</summary>
</metric>
<metric name="TriggeredKeywordsHeuristics" enum="Boolean">
<summary>
Whether the sensitive keywords heuristic triggered.
</summary>
</metric>
<metric name="TriggeredLookalikeHeuristics" enum="Boolean">
<summary>
Whether the lookalike keywords heuristic triggered.
</summary>
</metric>
<metric name="TriggeredServerSideBlocklist" enum="Boolean">
<summary>
Whether the server-side blocklist heuristic triggered.
</summary>
</metric>
<metric name="UserPreviouslyIgnored" enum="Boolean">
<summary>
Whether the user had already ignored a safety tip warning for this page in
the past, meaning no tip was shown.
</summary>
</metric>
</event>
<event name="Security.SiteEngagement">
<owner>cthomp@chromium.org</owner>
<owner>enamelites@google.com</owner>
<summary>
Site engagement score behavior for a page with a given Security Level.
</summary>
<metric name="FinalSecurityLevel">
<summary>
The final SecurityLevel of the page before it is closed or another
navigation occurs. Based on the enum security_state::SecurityLevel.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InitialSecurityLevel">
<summary>
The initial SecurityLevel of the page when the navigation commits. Based
on the enum security_state::SecurityLevel.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SafetyTipStatus" enum="SafetyTipStatus">
<summary>
The Safety Tip status of the page when the navigation commits, after the
reputation check finishes.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ScoreDelta">
<summary>
The change in Site Engagement score for the page before it is closed or
another navigation occurs compared to the score from when the navigation
committed. Score is between 0.0 and 100.0; delta is between -100.0 and
100.0. Rounded to the nearest integer.
</summary>
</metric>
<metric name="ScoreFinal">
<summary>
The final Site Engagement score for the page before it is closed or
another navigation occurs. Score is between 0.0 and 100.0; this metric is
rounded down to a multiple of 10 to limit granularity.
</summary>
</metric>
</event>
<event name="Segmentation.ModelExecution">
<owner>nyquist@chromium.org</owner>
<owner>qinmin@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
Input and output tensors for executing the ML model identified by
optimization targets and version. The input tensors can come from UMA or
UKM, with or without aggregation. Check model metadata for more information
about each tensor. Since all the ML tensors are floats, they are encoded
into int64 and will be decoded later during model training. This metric is
recorded after an ML model is executed, and the actual result is collected.
</summary>
<metric name="ActualResult">
<summary>
UMA or UKM metrics related to the features affected by the ML model, with
or without aggregation, after running the features as instructed by the ML
model. For example, this can be the 7 day total button clicks after an ML
model decides to show it. No encoding is used as this is normally a count
or sum of a UMA/UKM metric.
</summary>
</metric>
<metric name="ActualResult2">
<summary>
The 2nd UMA or UKM metrics related to the features affected by the ML
model, with or without aggregation, after running the features as
instructed by the ML model. No encoding is used.
</summary>
</metric>
<metric name="ActualResult3">
<summary>
The 3rd UMA or UKM metrics related to the features affected by the ML
model, with or without aggregation, after running the features as
instructed by the ML model. No encoding is used.
</summary>
</metric>
<metric name="ActualResult4">
<summary>
The 4th UMA or UKM metrics related to the features affected by the ML
model, with or without aggregation, after running the features as
instructed by the ML model. No encoding is used.
</summary>
</metric>
<metric name="ActualResult5">
<summary>
The 5th UMA or UKM metrics related to the features affected by the ML
model, with or without aggregation, after running the features as
instructed by the ML model. No encoding is used.
</summary>
</metric>
<metric name="ActualResult6">
<summary>
The 6th UMA or UKM metrics related to the features affected by the ML
model, with or without aggregation, after running the features as
instructed by the ML model. No encoding is used.
</summary>
</metric>
<metric name="Input0">
<summary>
The input tensor at index 0 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input1">
<summary>
The input tensor at index 1 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input10">
<summary>
The input tensor at index 10 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input11">
<summary>
The input tensor at index 11 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input12">
<summary>
The input tensor at index 12 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input13">
<summary>
The input tensor at index 13 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input14">
<summary>
The input tensor at index 14 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input15">
<summary>
The input tensor at index 15 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input16">
<summary>
The input tensor at index 16 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input17">
<summary>
The input tensor at index 17 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input18">
<summary>
The input tensor at index 18 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input19">
<summary>
The input tensor at index 19 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input2">
<summary>
The input tensor at index 2 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input20">
<summary>
The input tensor at index 20 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input21">
<summary>
The input tensor at index 21 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input22">
<summary>
The input tensor at index 22 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input23">
<summary>
The input tensor at index 23 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input24">
<summary>
The input tensor at index 24 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input25">
<summary>
The input tensor at index 25 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input26">
<summary>
The input tensor at index 26 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input27">
<summary>
The input tensor at index 27 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input28">
<summary>
The input tensor at index 28 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input29">
<summary>
The input tensor at index 29 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input3">
<summary>
The input tensor at index 3 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input30">
<summary>
The input tensor at index 30 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input31">
<summary>
The input tensor at index 31 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input32">
<summary>
The input tensor at index 32 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input33">
<summary>
The input tensor at index 33 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input34">
<summary>
The input tensor at index 34 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input35">
<summary>
The input tensor at index 35 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input36">
<summary>
The input tensor at index 36 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input37">
<summary>
The input tensor at index 37 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input38">
<summary>
The input tensor at index 38 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input39">
<summary>
The input tensor at index 39 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input4">
<summary>
The input tensor at index 4 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input40">
<summary>
The input tensor at index 40 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input41">
<summary>
The input tensor at index 41 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input42">
<summary>
The input tensor at index 42 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input43">
<summary>
The input tensor at index 43 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input44">
<summary>
The input tensor at index 44 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input45">
<summary>
The input tensor at index 45 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input46">
<summary>
The input tensor at index 46 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input47">
<summary>
The input tensor at index 47 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input48">
<summary>
The input tensor at index 48 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input49">
<summary>
The input tensor at index 49 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input5">
<summary>
The input tensor at index 5 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input6">
<summary>
The input tensor at index 6 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input7">
<summary>
The input tensor at index 7 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input8">
<summary>
The input tensor at index 8 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="Input9">
<summary>
The input tensor at index 9 represented in IEEE 754 double precision.
</summary>
</metric>
<metric name="ModelVersion">
<summary>
The version of the ML model used for execution. May not be a counter int.
</summary>
</metric>
<metric name="OptimizationTarget">
<summary>
The OptimizationTarget associated with the ML model. This is an enum for
classifying different ML models. It represents what an model is trying to
optimize.
</summary>
</metric>
<metric name="OutputDelaySec">
<summary>
The time from last segment selection to when the UKM is recorded, in
seconds.
</summary>
</metric>
<metric name="PredictionResult">
<summary>
Predicted result from executing the ML model. This is normally a score for
determining whether to show a particular feature. The value is a floating
number between 0 to 1 and encoded into IEEE 754 double precision here.
This is being deprecated. Use PredictionResult1 instead. Will add
deprecated flag once all the code are start using PredictionResult1.
</summary>
</metric>
<metric name="PredictionResult1">
<summary>
The 1st output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult10">
<summary>
The 10th output when inferencing the ML model with input data. The value
is a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult2">
<summary>
The 2nd output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult3">
<summary>
The 3rd output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult4">
<summary>
The 4th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult5">
<summary>
The 5th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult6">
<summary>
The 6th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult7">
<summary>
The 7th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult8">
<summary>
The 8th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="PredictionResult9">
<summary>
The 9th output when inferencing the ML model with input data. The value is
a floating number between 0 to 1 and encoded into IEEE 754 double
precision here.
</summary>
</metric>
<metric name="SelectionResult">
<summary>
The OptimizationTarget of the last selected segment before UKM is
recorded. Some features might have several ML models with them. This
metric records which model is currently selected for the feature.
</summary>
</metric>
</event>
<event name="ServiceWorker.OnLoad">
<owner>yyanagisawa@chromium.org</owner>
<owner>chrome-worker@google.com</owner>
<summary>
Events taken at the end of the loading pages controlled by the service
workers. It means that the metrics is recorded only if the loading is
successfully completed.
</summary>
<metric name="AudioFallback">
<summary>
True if there are network fallback sub-resources of audios in the page.
(boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="AudioHandled">
<summary>
True if there are service workers handling sub-resource loads of audios in
the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="CSSStyleSheetFallback">
<summary>
True if there are network fallback sub-resources of CSSStyleSheet in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="CSSStyleSheetHandled">
<summary>
True if there are service workers handling sub-resource loads of
CSSStyleSheet in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="FontFallback">
<summary>
True if there are network fallback sub-resources of CSSStyleSheet in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="FontHandled">
<summary>
True if there are service workers handling sub-resource loads of fonts in
the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="ImageFallback">
<summary>
True if there are network fallback sub-resources of images in the page.
(boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="ImageHandled">
<summary>
True if there are service workers handling sub-resource loads of images in
the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="LinkPrefetchFallback">
<summary>
True if there are network fallback sub-resources of link prefetches in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="LinkPrefetchHandled">
<summary>
True if there are service workers handling sub-resource loads of link
prefetches in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="MainAndSubResourceLoadLocation"
enum="ServiceWorkerResourceLoadStatus">
<summary>
Enum value to represent how main / sub resource are loaded.
</summary>
</metric>
<metric name="ManifestFallback">
<summary>
True if there are network fallback sub-resources of manifests in the page.
(boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="ManifestHandled">
<summary>
True if there are service workers handling sub-resource loads of manifests
in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="ScriptFallback">
<summary>
True if there are network fallback sub-resources of CSSStyleSheet in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="ScriptHandled">
<summary>
True if there are service workers handling sub-resource loads of scripts
in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="SpeculationRulesFallback">
<summary>
True if there are network fallback sub-resources of speculation rules in
the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="SpeculationRulesHandled">
<summary>
True if there are service workers handling sub-resource loads of
speculation rules in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="SubResourceFallbackRatio">
<summary>
An integer ratio (0 - 100) to represent the ratio of network fallbacks
from the total subresource load.
</summary>
</metric>
<metric name="SVGDocumentFallback">
<summary>
True if there are network fallback sub-resources of SVG documents in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="SVGDocumentHandled">
<summary>
True if there are service workers handling sub-resource loads of SVG
documents in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="TextTrackFallback">
<summary>
True if there are network fallback sub-resources of text tracks in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="TextTrackHandled">
<summary>
True if there are service workers handling sub-resource loads of text
tracks in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="TotalSubResourceFallback">
<summary>
The number of network fallbacks during sub resource load. This is rounded
down to the nearest exponential bucket (with a bucket ratio on 1.15).
</summary>
</metric>
<metric name="TotalSubResourceLoad">
<summary>
The number of all sub resource load of the page controlled by the service
worker. This is rounded down to the nearest exponential bucket (with a
bucket ratio on 1.15).
</summary>
</metric>
<metric name="VideoFallback">
<summary>
True if there are network fallback sub-resources of videos in the page.
(boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="VideoHandled">
<summary>
True if there are service workers handling sub-resource loads of videos in
the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="XSLStyleSheetFallback">
<summary>
True if there are network fallback sub-resources of XSLStyleSheet in the
page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
<metric name="XSLStyleSheetHandled">
<summary>
True if there are service workers handling sub-resource loads of
XSLStyleSheet in the page. (boolean value. true: 1 or false: 0)
</summary>
</metric>
</event>
<event name="SharedHighlights.LinkGenerated">
<owner>jeffreycohen@chromium.org</owner>
<owner>chrome-creation@google.com</owner>
<summary>
Event representing the user action of selecting a piece of text on a page
and selecting the option to create a link which would contain the necessary
text fragment information to link back to this specific part of the page.
</summary>
<metric name="Error" enum="LinkGenerationError">
<summary>
Record the type of error which prevented a successful link generation.
Only recorded if the link creation failed.
</summary>
</metric>
<metric name="Success" enum="Boolean">
<summary>
Whether the generation of a link with text fragments was successful or
not.
</summary>
</metric>
</event>
<event name="SharedHighlights.LinkGenerated.Requested">
<owner>jeffreycohen@chromium.org</owner>
<owner>chrome-creation@google.com</owner>
<summary>
Event representing the user action of selecting a piece of text on a page
and selecting the option to create a link which would contain the necessary
text fragment information to link back to this specific part of the page.
</summary>
<metric name="Error" enum="LinkGenerationError">
<summary>
Record the type of error which prevented offering link to text to user.
Only recorded if the link was not offered to the user.
</summary>
</metric>
<metric name="Success" enum="Boolean">
<summary>
Whether the link with text fragments was successful offered to the user or
not.
</summary>
</metric>
</event>
<event name="SharedHighlights.LinkOpened" singular="true">
<owner>jeffreycohen@chromium.org</owner>
<owner>chrome-creation@google.com</owner>
<summary>
Event representing the browser action of highlighting (incl. scroll-to) text
fragments that were part of the URL. This happens only once during page
load.
</summary>
<metric name="Source" enum="TextFragmentLinkOpenSource">
<summary>
Record the type of source for the current navigation, which has text
fragments. At the moment, this maps to identifying whether the source is a
known search engine or not.
</summary>
</metric>
<metric name="Success" enum="Boolean">
<summary>
Whether the highlighting of a set of text fragments was a complete success
or not.
</summary>
</metric>
</event>
<event name="Sharing.ClickToCall">
<owner>knollr@chromium.org</owner>
<summary>
Collected when a user finishes a Click to Call journey.
</summary>
<metric name="EntryPoint" enum="SharingClickToCallEntryPoint">
<summary>
Specifies the entry point of the user journey (i.e. left click, right
click, text selection).
</summary>
</metric>
<metric name="HasApps" enum="Boolean">
<summary>
Boolean value indicating whether any (&gt;0) apps are available that the
call could be sent to.
</summary>
</metric>
<metric name="HasDevices" enum="Boolean">
<summary>
Boolean value indicating whether any (&gt;0) devices are available that
the call could be sent to. These belong to the same account and are
running Android.
</summary>
</metric>
<metric name="Selection" enum="SharingClickToCallSelection">
<summary>
Whether the user selected a device, an app or nothing (i.e. dismissal) in
the user interface. For some entry points this might always be the same
value (e.g. right clicks always select devices).
</summary>
</metric>
</event>
<event name="Shopping.AddToCartDetection">
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<summary>
Metrics related to DOM-based AddToCart button detection in ChromeCart.
</summary>
<metric name="HeuristicsExecutionTime">
<summary>
Logged when DOM-based AddToCart button detection heuristic is executed and
records the execution time. This is expressed in microseconds.
</summary>
</metric>
</event>
<event name="Shopping.CartExtraction">
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<summary>
Metrics related to performance of cart content extraction in ChromeCart.
</summary>
<metric name="ExtractionElapsedTime">
<summary>
Logged when cart content extraction is executed for ChromeCart and records
the elapsed time within the JavaScript, so script parsing/compilation time
is excluded. Shopping.CartExtraction.ExtractionExecutionTime is measured
in native, and is the end-to-end elapsed time. This is expressed in
milliseconds.
</summary>
</metric>
<metric name="ExtractionExecutionTime">
<summary>
Logged when cart content extraction is executed for ChromeCart and records
the elapsed time between the start and the end of the extraction
JavaScript request execution. This includes script parsing/compilation
time and sleeping time. This is expressed in milliseconds.
</summary>
</metric>
<metric name="ExtractionLongestTaskTime">
<summary>
Logged when cart content extraction is executed for ChromeCart and records
the time span of the longest task blocking the main thread of the renderer
process. This is expressed in milliseconds.
</summary>
</metric>
<metric name="ExtractionTimedOut" enum="Boolean">
<summary>
Logged when cart content extraction is executed for ChromeCart and records
whether the cart content extraction has timed out.
</summary>
</metric>
<metric name="ExtractionTotalTasksTime">
<summary>
Logged when cart content extraction is executed for ChromeCart and records
the time spent on execution, excluding sleeping time. This is expressed in
milliseconds.
</summary>
</metric>
</event>
<event name="Shopping.ChromeCart">
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<summary>
Metrics related to Chrome cart module in Chrome NTP.
</summary>
<metric name="VisitCart" enum="Boolean">
<summary>
Always true. Recorded when users have visited cart page from Chrome cart
module.
</summary>
</metric>
</event>
<event name="Shopping.FormSubmitted">
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<summary>
Recorded when user submits a form.
</summary>
<metric name="IsTransaction" enum="Boolean">
<summary>
Whether the form submission is a shopping transaction. This has 50% chance
randomized.
</summary>
</metric>
</event>
<event name="Shopping.MerchantTrust.DataAvailable">
<owner>zhiyuancai@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<summary>
Recorded when user finishes a navigation while the merchant trust data is
available.
</summary>
<metric name="DataAvailable" enum="Boolean">
<summary>
A boolean signaling that data is available. Only records true values.
</summary>
</metric>
</event>
<event name="Shopping.MerchantTrust.MessageClicked">
<owner>zhiyuancai@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<summary>
Recorded when a merchant trust message is clicked by the user.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that message is clicked. Only records true values.
</summary>
</metric>
</event>
<event name="Shopping.MerchantTrust.MessageSeen">
<owner>zhiyuancai@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<summary>
Recorded when a merchant trust message is displayed to the user.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that message is displayed. Only records true values.
</summary>
</metric>
</event>
<event name="Shopping.MerchantTrust.RowClicked">
<owner>zhiyuancai@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<summary>
Recorded when a store info row in trusted surface is clicked by the user.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that store info row is clicked. Only records true
values.
</summary>
</metric>
</event>
<event name="Shopping.MerchantTrust.RowSeen">
<owner>zhiyuancai@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<summary>
Recorded when a store info row in trusted surface is displayed to the user.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that store info row is displayed. Only records true
values.
</summary>
</metric>
</event>
<event name="Shopping.WillSendRequest">
<owner>wychen@chromium.org</owner>
<owner>yuezhanggg@chromium.org</owner>
<summary>
Recorded when an XHR is about to be sent.
</summary>
<metric name="IsAddToCart" enum="Boolean">
<summary>
Whether the XHR is to add a product to a shopping cart. This has 50%
chance randomized.
</summary>
</metric>
</event>
<event name="SiteIsolation.XSD.Browser.Blocked">
<obsolete>
Removed in June 2019 / M77. Some old data has been saved in a
Google-internal doc at go/xsdb-ukm-results (ask owners below for access).
</obsolete>
<owner>creis@chromium.org</owner>
<owner>chrome-site-isolation@google.com</owner>
<summary>
Resource request response was blocked by the cross-site document blocking
logic in the browser process.
</summary>
<metric name="CanonicalMimeType">
<summary>
Classification of the Content-Type HTTP response header into one of the
blockable document flavours: html, xml, json, plain.
</summary>
</metric>
<metric name="ContentLengthWasZero">
<summary>
ContentLengthWasZero=1 if Content-Length was available and equal to 0.
ContentLengthWasZero=0 otherwise.
</summary>
</metric>
<metric name="ContentResourceType">
<summary>
content::ResourceType of the blocked resource (e.g. image / script / xhr /
etc.).
</summary>
</metric>
<metric name="HttpResponseCode">
<summary>
The HTTP response code (e.g. 200 or 404) associated with the blocked
resource request.
</summary>
</metric>
<metric name="NeededSniffing">
<summary>
Whether the HTTP response needed sniffing to confirm its MIME type.
</summary>
</metric>
</event>
<event name="SmartCharging">
<owner>thanhdng@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
Records user activities that are related to charging such as battery
percentage, time, device type, etc.
</summary>
<metric name="BatteryPercentage">
<summary>
Percentage of the battery.
</summary>
</metric>
<metric name="BatteryPercentageBeforeLastCharge">
<summary>
The percentage of the battery at the beginning of the last charge.
</summary>
</metric>
<metric name="BatteryPercentageOfLastCharge">
<summary>
The percentage of the battery that the last charge reached.
</summary>
</metric>
<metric name="DayOfMonth">
<summary>
Event's day of the month (e.g. 1-31) in local time zone.
</summary>
</metric>
<metric name="DayOfWeek" enum="DayOfWeek">
<summary>
Event's day of the week in local time zone. Sunday is 0.
</summary>
</metric>
<metric name="DeviceMode">
<summary>
Mode of the device (e.g. closed lid, tablet).
</summary>
</metric>
<metric name="DeviceType">
<summary>
Type of the device (e.g. laptop, tablet).
</summary>
</metric>
<metric name="DurationOfLastCharge">
<summary>
Duratioin of the last time the device was charged in minutes.
</summary>
</metric>
<metric name="DurationRecentAudioPlaying">
<summary>
Duration of audio playing in the last 30 minutes (bucketized and in
minutes).
</summary>
</metric>
<metric name="DurationRecentVideoPlaying">
<summary>
Duration of video playing in the last 30 minutes (bucketized and in
minutes).
</summary>
</metric>
<metric name="EventId">
<summary>
A unique number that represent order of an event.
</summary>
</metric>
<metric name="HaltFromLastCharge" enum="Boolean">
<summary>
Whether there's any shutdown/suspend actions between the last charge and
current event.
</summary>
</metric>
<metric name="IsCharging" enum="Boolean">
<summary>
Whether the device is being charged or not.
</summary>
</metric>
<metric name="Month" enum="Month">
<summary>
Event's month (e.g. Jan-Dec) in local time zone. January is 1.
</summary>
</metric>
<metric name="NumRecentKeyEvents">
<summary>
Number of key events in past 30 minutes.
</summary>
</metric>
<metric name="NumRecentMouseEvents">
<summary>
Number of mouse events in past 30 minutes.
</summary>
</metric>
<metric name="NumRecentStylusEvents">
<summary>
Number of stylus events in past 30 minutes.
</summary>
</metric>
<metric name="NumRecentTouchEvents">
<summary>
Number of touch events in past 30 minutes.
</summary>
</metric>
<metric name="Reason" enum="SmartChargingReason">
<summary>
Reason for the logging of an event.
</summary>
</metric>
<metric name="ScreenBrightnessPercent">
<summary>
Brightness of the screen in percent.
</summary>
</metric>
<metric name="TimeOfTheDay">
<summary>
Time of the event in minutes since midnight in the local time zone.
</summary>
</metric>
<metric name="TimeSinceLastCharge">
<summary>
Time since the last time user unplugged the charger in minutes.
</summary>
</metric>
<metric name="TimezoneDifferenceFromLastCharge">
<summary>
Timezone difference from the last charge. It is equal to current_timezone
- timezone_from_last_charge. The valid range of time zone value will be
-12 (UTC -12:00) to +14 (UTC +14:00).
</summary>
</metric>
<metric name="Voltage">
<summary>
Charge voltage in mV.
</summary>
</metric>
</event>
<event name="SMSReceiver">
<owner>goto@chromium.org</owner>
<owner>reillyg@chromium.org</owner>
<owner>ayui@chromium.org</owner>
<owner>yigu@chromium.org</owner>
<summary>
Records performance metrics for SMSReceiver API.
</summary>
<metric name="IsCrossOriginFrame" enum="Boolean">
<summary>
Flag indicating whether the report comes from a cross-origin frame or not.
</summary>
</metric>
<metric name="Outcome" enum="WebOTPServiceOutcome">
<summary>
Records the result of a call to the SmsReceiver API.
</summary>
</metric>
<metric name="SmsParsingStatus" enum="SmsParsingStatus">
<summary>
Records the status of parsing an incoming SMS when using the WebOTP API.
It records one sample per incoming SMS.
</summary>
</metric>
<metric name="TimeSmsReceiveMs">
<summary>
Records the duration from when the API is called to when an SMS has been
successfully received.
</summary>
</metric>
<metric name="TimeSuccessMs">
<summary>
Records the duration from when the API is called to when the user presses
&quot;Allow&quot; to pass the incoming SMS to the site and proceed with
the SMS verification flow.
</summary>
</metric>
<metric name="TimeUserCancelMs">
<summary>
Records the duration from when the API is called to when the user presses
&quot;Deny&quot; to terminate the SMS verification flow.
</summary>
</metric>
</event>
<event name="SSL.MixedContentShown">
<obsolete>
Replaced by SSL.MixedContentShown2. Removed in 03/2021.
</obsolete>
<owner>carlosil@chromium.org</owner>
<summary>
Logged when mixed content is displayed on a site.
</summary>
<metric name="Type">
<summary>
A value of the MixedContentType enum, detailing the type of mixed content
included on the site.
</summary>
</metric>
</event>
<event name="SSL.MixedContentShown2">
<owner>carlosil@chromium.org</owner>
<owner>estark@chromium.org</owner>
<summary>
Logged when mixed content is loaded, differentiated by blockable,
optionally-blockable mixed content, and mixed forms. Also tracks when a site
with a valid certificate loads a subresource with an invalid certificate.
Replaced SSL.MixedContentShown.
</summary>
<metric name="Type">
<summary>
A value of the MixedContentType enum, detailing the type of mixed content
included on the site.
</summary>
</metric>
</event>
<event name="SubframeDownload">
<obsolete>
Deprecated as of 03/2019.
</obsolete>
<owner>yaoxia@chromium.org</owner>
<summary>
Measurement for subframe download. It is only recorded for downloads
originated from navigations or from HTML anchor download attributes.
</summary>
<metric name="HasGesture">
<summary>
A boolean denoting whether the download involves a transient user gesture.
</summary>
</metric>
<metric name="HasSandbox">
<summary>
A boolean denoting whether the download occurs in a sandboxed browsing
context.
</summary>
</metric>
<metric name="IsAdFrame">
<summary>
A boolean denoting whether the download occurs in an ad subframe.
</summary>
</metric>
<metric name="IsCrossOrigin">
<summary>
A boolean denoting whether the download occurs in a subframe x-origin to
the top frame.
</summary>
</metric>
</event>
<event name="SubresourceFilter" singular="True">
<owner>csharrison@chromium.org</owner>
<summary>
Recorded for page loads where subresource filtering policy was evaluated.
</summary>
<metric name="ActivationDecision">
<summary>
Enum that records the policy decision to activate subresource filtering
for a page load. 0 = Unknown, 1 = Activated, 2 = Disabled, 3 = Deprecated
value, 4 = URL whitelisted, 5 = Activation conditions not met. 'Activated'
indicates that subresource filtering was activated. All other reasons
indicate that subresource filtering was not activated.
</summary>
</metric>
<metric name="DryRun">
<summary>
Records '1' if subresource filtering was activated in dry run mode. In dry
run mode, subresource filtering policy is evaluated against resources
loaded on the page, but subresource filtering is not actually applied.
</summary>
</metric>
<metric name="EnforcementRedirectPosition">
<summary>
An enum denoting where in the redirect chain there was a URL that matched
one of the subresource_filter activation lists, and wasn't marked as
warning. See subresource_filter::RedirectPosition for values.
</summary>
</metric>
</event>
<event name="SubresourceRedirect.PublicSrcVideoCompression">
<owner>rajendrant@chromium.org</owner>
<owner>mcrouse@chromium.org</owner>
<summary>
Records coverage information for src videos. Recorded once for every src
video that is fetched from network.
</summary>
<metric name="FullContentLength">
<summary>
The full content length of the video retrieved from the first range
request for the resource. This full content length represents the total
bytes when the entire video is played. The bytes are rounded down to the
exponential bucket with factor of 1.3.
</summary>
</metric>
<metric name="SubresourceRedirectResult"
enum="SubresourceRedirectRedirectResult">
<summary>
Enumerates the different results possible for subresource redirection,
such as redirectable or different reasons of ineligibility.
</summary>
</metric>
</event>
<event name="Tab.RendererOOM">
<owner>ssid@chromium.org</owner>
<summary>
Metrics about renderer OOM, recorded for each detected OOM of renderer
process.
</summary>
<metric name="TimeSinceLastNavigation">
<summary>
Duration in MS from when the main frame navigation was triggered to when
the tab crashed with OOM. Recorded only on Windows, Android and Chrome OS.
We do not have a way to detect OOMs reliably on Linux and Mac.
</summary>
</metric>
</event>
<event name="Tab.Screenshot">
<owner>sayman@chromium.org</owner>
<summary>
User took one or more screenshots of a page.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="TabManager.Background.FirstAlertFired">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Collects the duration in MS from when the tab is backgrounded to when a
JavaScript alert is fired. Only recorded when the tab is in the background.
</summary>
<metric name="IsMainFrame">
<summary>
Indicates whether the alert is fired from main frame.
</summary>
</metric>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when alert is fired.
</summary>
</metric>
</event>
<event name="TabManager.Background.FirstAudioStarts">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Collects the duration in MS from when the tab is backgrounded to when audio
starts to play. Only recorded when the tab is in the background.
</summary>
<metric name="IsMainFrame">
<summary>
Indicates whether the audio stream belongs to the main frame.
</summary>
</metric>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when audio starts to
play.
</summary>
</metric>
</event>
<event name="TabManager.Background.FirstFaviconUpdated">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Collects the duration in MS from when the tab is backgrounded to when the
favicon is updated. Only recorded when the tab is in the background.
</summary>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when the favicon is
updated.
</summary>
</metric>
</event>
<event name="TabManager.Background.FirstNonPersistentNotificationCreated">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary/>
<metric name="IsMainFrame">
<summary>
Indicates whether the notification creation is from the main frame.
</summary>
</metric>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when a non-persistent
notification is created.
</summary>
</metric>
</event>
<event name="TabManager.Background.FirstTitleUpdated">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Collects the duration in MS from when the tab is backgrounded to when the
title is updated. Only recorded when the tab is in the background.
</summary>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when the title is
updated.
</summary>
</metric>
</event>
<event name="TabManager.Background.ForegroundedOrClosed">
<owner>chrisha@chromium.org</owner>
<summary>
Collects the duration in MS from when the tab is backgrounded to when it is
brought to foreground or closed.
</summary>
<metric name="IsDiscarded">
<summary>
Boolean value indicating whether or not the tab is discarded since it was
backgrounded.
</summary>
</metric>
<metric name="IsForegrounded">
<summary>
Boolean value indicating whether or not it's triggered because the tab is
brought to foreground again.
</summary>
</metric>
<metric name="LabelId">
<summary>
An int64 random number generated when TabManager.TabMetric is logged. The
same number is also logged here, so that feature label can be paired.
</summary>
</metric>
<metric name="MRUIndex">
<obsolete>
Deprecated 10/2019 in favor MRUIndex in TabMetrics.
</obsolete>
<summary>
Index of the tab in most-recently-used order. A value of N means there are
N tabs more recently used than the one that is being foregrounded or
closed.
</summary>
</metric>
<metric name="SequenceId">
<obsolete>
Deprecated 11/2018 in favor LabelId.
</obsolete>
<summary>
This metric is obsolete in 11/2018 in favor of LabelId for pairing with
Tabmanager.TabMetrics event. The sequence of this event and
TabManager.TabMetrics event in the current session. Incremented by 1 each
time one of the two events is logged to provide an ordering of events.
</summary>
</metric>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when it is brought to
foreground or closed.
</summary>
</metric>
<metric name="TotalTabCount">
<obsolete>
Deprecated 10/2019 in favor TotalTabCount in TabMetrics.
</obsolete>
<summary>
Total number of tabs open across all non-incognito browser windows. Helps
contextualize the MRUIndex value.
</summary>
</metric>
</event>
<event
name="TabManager.BackgroundTabOpening.ForegroundTab.ExpectedTaskQueueingDurationInfo">
<obsolete>
Removed June 2020.
</obsolete>
<owner>chrisha@chromium.org</owner>
<summary>
Collects the expected queueing duration of tasks and metadata for the
foreground tab during a background tab opening session (the duration of time
from when the browser starts to open background tabs until the time the
browser has finished loading those tabs or otherwise decided to stop loading
them). The event is not recorded when the session overlaps with session
restore. This event is sampled when there is only one backgrounded loading
or pending tab and all events are collected when there are 2 or more
backgrounded loading or pending tabs. In this way, we cap the volume while
keeping all interesting data. Therefore, aggregated tab counts over multiple
events are invalid.
</summary>
<metric name="BackgroundTabLoadingCount">
<summary>
Number of background tabs that are loading.
</summary>
</metric>
<metric name="BackgroundTabOpeningSessionId">
<summary>
The ID of this background tab opening session.
</summary>
</metric>
<metric name="BackgroundTabPendingCount">
<summary>
Number of background tabs that are pending.
</summary>
</metric>
<metric name="ExpectedTaskQueueingDuration">
<summary>
Duration in MS for expected task queueing duration. The metric reflects
the responsiveness of a tab. A lower value means the tab will respond to
inputs faster. This metric is equal to
RendererScheduler.ExpectedTaskQueueingDuration. It is emitted once for all
tasks in each 1000-ms window.
</summary>
</metric>
<metric name="SequenceId">
<summary>
The ID of this event's sequence in current background tab opening session.
</summary>
</metric>
<metric name="SystemTabCount">
<summary>
Number of all tabs of the system, which includes all browser windows.
</summary>
</metric>
</event>
<event name="TabManager.Experimental.BackgroundTabOpening.TabSwitchLoadStopped"
singular="True">
<obsolete>
Removed 11/2022 because it wasn't actively used.
</obsolete>
<owner>zhenw@chromium.org</owner>
<summary>
Collects data when a tab is switched to from another tab and then finishes
loading in the foreground during a background tab opening session (the
duration of time from when the browser starts to open background tabs until
the time the browser has finished loading those tabs or otherwise decided to
stop loading them). The event is only recorded when a tab is switched to
from another tab within the same tabstrip. As a result, the initial
foreground tab is not included in this event since it was not switched to
from another tab. The event is not recorded when the session overlaps with
session restore.
</summary>
<metric name="BackgroundTabLoadingCount">
<summary>
Number of background tabs that are loading.
</summary>
</metric>
<metric name="BackgroundTabOpeningSessionId">
<summary>
The ID of this background tab opening session.
</summary>
</metric>
<metric name="BackgroundTabPendingCount">
<summary>
Number of background tabs that are pending.
</summary>
</metric>
<metric name="SequenceId">
<summary>
The ID of this event's sequence in current background tab opening session.
</summary>
</metric>
<metric name="SystemTabCount">
<summary>
Number of all tabs of the system, which includes all browser windows.
</summary>
</metric>
<metric name="TabSwitchLoadTime">
<summary>
Tab switch load time in MS. It is defined as the time between when the
user switches to a backround tab, and the time when that tab finishes
loading in the foreground. If the user switches away before the tab
finishes loading, a metric will not be recorded unless the user switches
back, in which case the tab switch load time is measured from that point
in time.
</summary>
</metric>
</event>
<event name="TabManager.Experimental.SessionRestore.ForegroundTab.PageLoad"
singular="True">
<obsolete>
Removed 11/2022 because it wasn't actively used.
</obsolete>
<owner>zhenw@chromium.org</owner>
<summary>
Collects the tab counts for the foreground tab page load during session
restore. The event is not recorded when the session overlaps with background
tab opening. This event should be combined with PageLoad event for analysis.
</summary>
<metric name="SessionRestoreTabCount">
<summary>
Number of tabs that are restored.
</summary>
</metric>
<metric name="SystemTabCount">
<summary>
Number of all tabs of the system, which includes all browser windows.
</summary>
</metric>
</event>
<event name="TabManager.Experimental.SessionRestore.TabSwitchLoadStopped"
singular="True">
<owner>zhenw@chromium.org</owner>
<summary>
Collects data when a tab is switched to from another tab and then finishes
loading in the foreground during session restore The event is only recorded
when a tab is switched to from another tab within the same tabstrip. As a
result, the initial foreground tab is not included in this event since it
was not switched to from another tab. The event is not recorded when the
session overlaps with background tab opening.
</summary>
<metric name="SequenceId">
<summary>
The ID of this event's sequence in current session restore session.
</summary>
</metric>
<metric name="SessionRestoreSessionId">
<summary>
The ID of this session restore session.
</summary>
</metric>
<metric name="SessionRestoreTabCount">
<summary>
Number of tabs that are restored.
</summary>
</metric>
<metric name="SystemTabCount">
<summary>
Number of all tabs of the system, which includes all browser windows.
</summary>
</metric>
<metric name="TabSwitchLoadTime">
<summary>
Tab switch load time in MS. It is defined as the time between when the
user switches to a background tab, and the time when that tab finishes
loading in the foreground. If the user switches away before the tab
finishes loading, a metric will not be recorded unless the user switches
back, in which case the tab switch load time is measured from that point
in time.
</summary>
</metric>
</event>
<event name="TabManager.LifecycleStateChange">
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Collects information about when and why a lifecycle state change was
attempted, and information about the outcome of the attempt.
</summary>
<metric name="FailureGlobalBlacklist" enum="Boolean">
<obsolete>
Deprecated 06/2020. Replaced with FailureGlobalDisallowlist.
</obsolete>
<summary>
Boolean indicating that the tab was explicitly opted out of the
intervention via the global disallowlist.
</summary>
</metric>
<metric name="FailureGlobalDisallowlist" enum="Boolean">
<summary>
Boolean indicating that the tab was explicitly opted out of the
intervention via the global disallowlist.
</summary>
</metric>
<metric name="FailureHeuristicAudio" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the origin
has historically been observed emitting audio while in the background.
</summary>
</metric>
<metric name="FailureHeuristicFavicon" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the origin
has historically been observed updating its favicon while in the
background.
</summary>
</metric>
<metric name="FailureHeuristicInsufficientObservation" enum="Boolean">
<summary>
Boolean indicating that the site is still being observed locally in order
to determine which features are in use. In the meantime, it is protected
from this intervention.
</summary>
</metric>
<metric name="FailureHeuristicNotifications" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the origin
has historically been observed making use of notifications while in the
background.
</summary>
</metric>
<metric name="FailureHeuristicTitle" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the origin
has historically been observed updating its tab title while in the
background.
</summary>
</metric>
<metric name="FailureLifecyclesEnterprisePolicyOptOut" enum="Boolean">
<summary>
Boolean indicating that the browser was explicitly opted out of the
intervention via enterprise policy.
</summary>
</metric>
<metric name="FailureLifecyclesFeaturePolicyOptOut">
<obsolete>
Deprecated 08/2019. Replaced with FailureOriginTrialOptOut.
</obsolete>
<summary>
Boolean indicating that the tab explicitly opted out of the intervention
via feature policy.
</summary>
</metric>
<metric name="FailureLiveStateCapturing" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently capturing user media (making use of webcam or microphone, for
example).
</summary>
</metric>
<metric name="FailureLiveStateDesktopCapture" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently capturing a window or screen.
</summary>
</metric>
<metric name="FailureLiveStateDevToolsOpen" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently using DevTools.
</summary>
</metric>
<metric name="FailureLiveStateExtensionDisallowed" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed by an extension.
</summary>
</metric>
<metric name="FailureLiveStateFormEntry" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab
currently contains text form entry.
</summary>
</metric>
<metric name="FailureLiveStateHasNotificationsPermission" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab
has the permission to use notifications.
</summary>
</metric>
<metric name="FailureLiveStateIsPDF" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently hosting a PDF.
</summary>
</metric>
<metric name="FailureLiveStateMirroring" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently being mirrored (casting its contents, for example).
</summary>
</metric>
<metric name="FailureLiveStatePlayingAudio" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently playing audio.
</summary>
</metric>
<metric name="FailureLiveStateSharingBrowsingInstance" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
sharing its BrowsingInstance with at least one other tab.
</summary>
</metric>
<metric name="FailureLiveStateUsingBluetooth" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently connected to at least one bluetooth device.
</summary>
</metric>
<metric name="FailureLiveStateUsingIndexedDBLock" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently holding at least one IndexedDB lock.
</summary>
</metric>
<metric name="FailureLiveStateUsingWebLock" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently holding at least one WebLock.
</summary>
</metric>
<metric name="FailureLiveStateUsingWebSockets" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently using WebSockets.
</summary>
</metric>
<metric name="FailureLiveStateUsingWebUSB" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently using WebUSB.
</summary>
</metric>
<metric name="FailureLiveStateVisible" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
currently visible.
</summary>
</metric>
<metric name="FailureLiveWebApp" enum="Boolean">
<summary>
Boolean indicating that the intervention was disallowed because the tab is
a web application window.
</summary>
</metric>
<metric name="FailureOriginTrialOptOut" enum="Boolean">
<summary>
Boolean indicating that the tab explicitly opted out of the intervention
via origin trial.
</summary>
</metric>
<metric name="FailureOriginTrialUnknown" enum="Boolean">
<summary>
Boolean indicating that the tab did not report its origin trial
opt-in/opt-out yet.
</summary>
</metric>
<metric name="LifecycleStateChangeReason">
<summary>
The reason the lifecycle state change was attempted. This corresponds to
the LifecycleStateChangeReason enumeration in lifecycle_unit_state.mojom.
</summary>
</metric>
<metric name="NewLifecycleState">
<summary>
The lifecycle state the tab will be in after the state change. Corresponds
to a value from the LifecycleUnitState enum defined in
lifecycle_unit_state.mojom.
</summary>
</metric>
<metric name="OldLifecycleState">
<summary>
The lifecycle state the tab was in prior to the state change. Corresponds
to a value from the LifecycleUnitState enum defined in
lifecycle_unit_state.mojom.
</summary>
</metric>
<metric name="Outcome" enum="Boolean">
<summary>
Whether or not the state change was successful. The various Failure and
Success booleans encode the actual reasons for this outcome. Note that
multiple success and failure reasons may be encoded for a single decision.
The presence of any failure bit indicates a negative outcome. If only
success bits are present the outcome is positive.
</summary>
</metric>
<metric name="SuccessGlobalAllowlist" enum="Boolean">
<summary>
Boolean indicating that the tab was explicitly opted in to the
intervention via the global allowlist.
</summary>
</metric>
<metric name="SuccessGlobalWhitelist" enum="Boolean">
<obsolete>
Deprecated 06/2020. Replaced with SuccessGlobalAllowlist.
</obsolete>
<summary>
Boolean indicating that the tab was explicitly opted in to the
intervention via the global allowlist.
</summary>
</metric>
<metric name="SuccessHeuristic" enum="Boolean">
<summary>
Boolean indicating that the tab was deemed safe for the intervention via
local observations and heuristics.
</summary>
</metric>
<metric name="SuccessLifecyclesFeaturePolicyOptIn">
<obsolete>
Deprecated 08/2019. Replaced with SuccessOriginTrialOptIn.
</obsolete>
<summary>
Boolean indicating that the tab explicitly opted in to the intervention
via feature policy.
</summary>
</metric>
<metric name="SuccessOriginTrialOptIn" enum="Boolean">
<summary>
Boolean indicating that the tab explicitly opted in to the intervention
via origin trial.
</summary>
</metric>
<metric name="TimeSinceNavigationMs">
<summary>
The time elapsed (in milliseconds) since the top-level navigation was
committed that loaded this tab's content.
</summary>
</metric>
<metric name="TimeSinceVisibilityStateChangeMs">
<summary>
The amount of time that has passed (in milliseconds) since the last
visibility state change.
</summary>
</metric>
<metric name="TransitionForced" enum="Boolean">
<summary>
This is set if the transition to the new lifecycle state was forced by the
browser because the content took too long to respond to the lifecycle
event.
</summary>
</metric>
<metric name="VisibilityState">
<summary>
The current visibility state. This is an integer value corresponding to
the enumeration in content/public/browser/visibility.h.
</summary>
</metric>
</event>
<event
name="TabManager.SessionRestore.ForegroundTab.ExpectedTaskQueueingDurationInfo">
<owner>zhenw@chromium.org</owner>
<summary>
Collects the expected queueing duration of tasks and metadata for the
foreground tab during session restore. The event is not recorded when the
session overlaps with background tab opening. The event is not recorded when
there is only one restored tab, in which case, there is no background
restored tab and we are not interested at that. In this way, we cap the
volume while keeping all interesting data.
</summary>
<metric name="ExpectedTaskQueueingDuration">
<summary>
Duration in MS for expected task queueing duration. The metric reflects
the responsiveness of a tab. A lower value means the tab will respond to
inputs faster. This metric is equal to
RendererScheduler.ExpectedTaskQueueingDuration. It is emitted once for all
tasks in each 1000-ms window.
</summary>
</metric>
<metric name="SequenceId">
<summary>
The ID of this event's sequence in current session restore session.
</summary>
</metric>
<metric name="SessionRestoreSessionId">
<summary>
The ID of this session restore session.
</summary>
</metric>
<metric name="SessionRestoreTabCount">
<summary>
Number of tabs that are restored.
</summary>
</metric>
<metric name="SystemTabCount">
<summary>
Number of all tabs of the system, which includes all browser windows.
</summary>
</metric>
</event>
<event name="TabManager.TabLifetime" singular="True">
<owner>chrisha@chromium.org</owner>
<summary>
Collected when a tab is closed, at most once per source.
</summary>
<metric name="TimeSinceNavigation">
<summary>
The time when the tab was closed, expressed as the amount of time in MS
that has elapsed since the main frame navigation providing the content of
the tab.
</summary>
</metric>
</event>
<event name="TabManager.TabMetrics">
<owner>michaelpg@chromium.org</owner>
<summary>
Collects tab information for a tab after navigations, activations and close
events.
</summary>
<metric name="ContentType">
<summary>
Obsolete. Enumeration for the MIME type of the page. Values are enumerated
in metrics::TabMetricsEvent::ContentType.
</summary>
</metric>
<metric name="DefaultProtocolHandler">
<summary>
Obsolete. Schemes that a page from this page's origin is the default
protocol handler for, meaning the user has chosen to accept (or the
handler was preinstalled by Chrome). The metric is repeated, occurring for
each such protocol handler, and uses values from
metrics::TabMetricsEvent::Scheme.
</summary>
</metric>
<metric name="HasBeforeUnloadHandler">
<summary>
Boolean value indicating whether the page has a beforeunload JavaScript
event handler.
</summary>
</metric>
<metric name="HasFormEntry">
<summary>
Boolean value indicating whether the page has any user-input text.
</summary>
</metric>
<metric name="IsExtensionProtected">
<summary>
Obsolete. True if an extension has marked this tab as non-discardable via
the chrome.tabs.update() extension API.
</summary>
</metric>
<metric name="IsPinned">
<summary>
Boolean value indicating whether the tab is pinned in the tabstrip.
</summary>
</metric>
<metric name="KeyEventCount">
<summary>
Number of key events that were sent to the page.
</summary>
</metric>
<metric name="LabelId">
<summary>
An int64 random number generated at logging time. The same number will
also be logged to the TabManager.Background.ForegroundedOrClosed event, so
that feature label can be paired.
</summary>
</metric>
<metric name="MouseEventCount">
<summary>
Number of mouse events that were sent to the page.
</summary>
</metric>
<metric name="MRUIndex">
<summary>
Index of the tab in most-recently-used order. A value of N means there are
N tabs more recently used than the one that is being foregrounded or
closed.
</summary>
</metric>
<metric name="NavigationEntryCount">
<summary>
Number of navigation entries in the tab's NavigationController.
Corresponds to the size of the tab's back/forward list.
</summary>
</metric>
<metric name="NumReactivationBefore">
<summary>
Number of reactivations that this tab had till now.
</summary>
</metric>
<metric name="PageTransitionCoreType">
<summary>
Type of the page transition for this navigation. Uses the core values from
ui::PageTransition.
</summary>
</metric>
<metric name="PageTransitionFromAddressBar">
<summary>
True if the page transition came from interacting with the address bar,
such as by typing a URL or performing a search.
</summary>
</metric>
<metric name="PageTransitionIsRedirect">
<summary>
True if the page transition type is a redirect, in which case the
PageTransition type may not be accurate.
</summary>
</metric>
<metric name="QueryId">
<summary>
An int64 random number generated at query time of
TabManager::GetSortedLifecycleUnitsFromTabRanker. Tabs with the same
QueryId will be later on combined in one full list for further analysis.
</summary>
</metric>
<metric name="SequenceId">
<obsolete>
Deprecated 11/2018 in favor LabelId.
</obsolete>
<summary>
This metric is obsolete in 11/2018 in favor of LabelId for pairing with
Tabmanager.ForegroundedOrClosed event. The sequence of this event and
TabManager.ForegroundedOrClosed event in the current session. Incremented
by 1 each time one of the two events is logged to provide an ordering of
events.
</summary>
</metric>
<metric name="SiteEngagementScore">
<summary>
Site engagement score in the range [0, 100], rounded down to a multiple of
10 to limit granularity.
</summary>
</metric>
<metric name="TimeFromBackgrounded">
<summary>
Duration in MS from when the tab is backgrounded to when it is brought to
foreground or closed.
</summary>
</metric>
<metric name="TotalTabCount">
<summary>
Total number of tabs open across all non-incognito browser windows. Helps
contextualize the MRUIndex value.
</summary>
</metric>
<metric name="TouchEventCount">
<summary>
Number of touch events that were sent to the page.
</summary>
</metric>
<metric name="WasRecentlyAudible">
<summary>
Boolean value indicating whether the tab has played audio within the last
two seconds.
</summary>
</metric>
<metric name="WindowId">
<obsolete>
Deprecated 11/2018 in favor of putting window features directly in this
event.
</obsolete>
<summary>
WindowId of the WindowMetrics entry corresponding to the browser window
containing this tab. This metrics is not populated from 11/2018 because we
don't need to join this event with other WindowMetrics any more.
</summary>
</metric>
<metric name="WindowIsActive">
<summary>
Boolean value indicating whether the window is the active (frontmost)
window.
</summary>
</metric>
<metric name="WindowShowState">
<summary>
Enumeration of the window show state, such as fullscreen or minimized.
Values are enumerated in metrics::WindowMetricsEvent::ShowState.
</summary>
</metric>
<metric name="WindowTabCount">
<summary>
Number of tabs in the tab strip. Rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.5). Will be 1 for windows with
only one top-level WebContents, such as app windows.
</summary>
</metric>
<metric name="WindowType">
<summary>
Enumeration for the type of the window. Values are enumerated in
metrics::WindowMetricsEvent::Type.
</summary>
</metric>
</event>
<event name="TabManager.WindowMetrics">
<owner>michaelpg@chromium.org</owner>
<summary>
Collects information about a browser or app window to associate with the
TabManager.TabMetrics entries for tabs in that window.
</summary>
<metric name="IsActive">
<summary>
Whether the window is the active (frontmost) window.
</summary>
</metric>
<metric name="ShowState">
<summary>
Enumeration of the window show state, such as fullscreen or minimized.
Values are enumerated in metrics::WindowMetricsEvent::ShowState.
</summary>
</metric>
<metric name="TabCount">
<summary>
Number of tabs in the tab strip. Rounded down to the nearest exponential
bucket (with a bucket spacing factor of 1.5). Will be 1 for windows with
only one top-level WebContents, such as app windows.
</summary>
</metric>
<metric name="Type">
<summary>
Enumeration for the type of the window. Values are enumerated in
metrics::WindowMetricsEvent::Type.
</summary>
</metric>
<metric name="WindowId">
<summary>
Session ID of the browser or app window this entry represents, unique for
the browsing session.
</summary>
</metric>
</event>
<event name="TopToolbar.Share">
<owner>nyquist@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
User pressed the 'Share' in the top toolbar, which shares the current URL.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred; only records true values.
</summary>
</metric>
</event>
<event name="TouchToFill.Shown">
<owner>kazinova@google.com</owner>
<owner>fhorschig@chromium.org</owner>
<owner>kolos@chromium.org</owner>
<summary>
Recorded when a user takes an action on the Touch To Fill sheet.
</summary>
<metric name="UserAction" enum="TouchToFill.UserAction">
<summary>
The action a user took when interacting with the Touch To Fill sheet.
</summary>
</metric>
</event>
<event name="TouchToFill.SubmissionReadiness">
<owner>kolos@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
Recorded when the Touch To Fill sheet is shown to the user.
</summary>
<metric name="SubmissionReadiness" enum="TouchToFill.SubmissionReadiness">
<summary>
A given form's state (e.g. there are empty fields in the form, or there
are only two fields and they both are filled by Chrome) that indicates
whether the form is ready for submission. Recorded when a Touch To Fill
sheet is shown for that form.
</summary>
</metric>
</event>
<event name="TouchToFill.TimeToSuccessfulLogin">
<owner>kolos@chromium.org</owner>
<owner>fhorschig@chromium.org</owner>
<summary>
Recorded when a successful login is detected after filling by the Touch To
Fill.
</summary>
<metric name="TimeToSuccessfulLogin">
<summary>
The time in milliseconds between filling by the Touch To Fill and a
successful submission (To ensure filling and submitting correspond to each
other, the usernames should coincide and the timestamps should be within
one minute. A successful login after a failed submission or manual typing
is not reported). Used to compare the times when automated submission is
enabled and disabled. Thus, we measure the time saved for a user. Recorded
when the password manager detects that the login was successful.
</summary>
</metric>
</event>
<event name="Translate">
<owner>hamelphi@chromium.org</owner>
<summary>
Metrics related to a Translate event. These metrics are described in
TranslateEventProto.
</summary>
<metric name="AcceptCount"/>
<metric name="Country"/>
<metric name="DeclineCount"/>
<metric name="EventType"/>
<metric name="IgnoreCount"/>
<metric name="RankerResponse"/>
<metric name="RankerVersion"/>
<metric name="SourceLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"/>
<metric name="TargetLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"/>
</event>
<event name="TranslatePageLoad">
<owner>curranmax@chromium.org</owner>
<owner>megjablon@chromium.org</owner>
<owner>chrome-language@google.com</owner>
<summary>
Summary of the user's interaction with Translate from the beginning of the
page load to when the event is recorded. This event is recorded when a page
load is completed and every time that Chrome is backgrounded during the
course of the page load. This means we can record multiple events for a
single page load, but it guarantees that we will still record data in
instances where the user backgrounds then kills Chrome.
</summary>
<metric name="FinalSourceLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The source language at the time the event is recorded. In most cases this
will match the initial source language, but the user can change the source
language manually if they want. Note that the semantic_type attribute is
included in order to remain consistent with the previous Translate UKM
proto.
</summary>
</metric>
<metric name="FinalState" enum="TranslateState">
<summary>
At the time this event is recorded, the state of Translate. This includes
whether the page is translated or not and if no UI is shown, just the
omnibox icon is shown, or the full translate UI is shown.
</summary>
</metric>
<metric name="FinalTargetLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The target language at the time the event is recorded. In most cases this
will match the initial target language, but the user can change the target
language manually if they want. Note that the semantic_type attribute is
included in order to remain consistent with the previous Translate UKM
proto.
</summary>
</metric>
<metric name="FirstTranslateError" enum="TranslateError">
<summary>
The first error to occur within Translate for this page load.
</summary>
</metric>
<metric name="FirstUIInteraction" enum="TranslateUIInteraction">
<summary>
The user's first interaction with the Translate UI.
</summary>
</metric>
<metric name="HTMLContentLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The HTML language content attribute specified by the document. Note that
the semantic_type attribute is included in order to remain consistent with
the previous Translate UKM proto.
</summary>
</metric>
<metric name="HTMLDocumentLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The HTML language attribute specified by the document. Note that the
semantic_type attribute is included in order to remain consistent with the
previous Translate UKM proto.
</summary>
</metric>
<metric name="InitialSourceLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The initial source language that Translate determines for the page. Note
that the semantic_type attribute is included in order to remain consistent
with the previous Translate UKM proto.
</summary>
</metric>
<metric name="InitialSourceLanguageInContentLanguages" enum="Boolean">
<summary>
Whether or not the initial source language is in the user's never
translate language list. By default the UI language, languages the user
has translated to, and languages added to the content languages are on the
never tranlsate list. However, users can add or remove languages manually
as well.
</summary>
</metric>
<metric name="InitialState" enum="TranslateState">
<summary>
At the beginning of the page load, the state of Translate. This includes
whether the page is translated or not and if no UI is shown, just the
omnibox icon is shown, or the full translate UI is shown.
</summary>
</metric>
<metric name="InitialTargetLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The initial target language that Translate thinks it should translate to.
Note that the semantic_type attribute is included in order to remain
consistent with the previous Translate UKM proto.
</summary>
</metric>
<metric name="MaxTimeToTranslate">
<summary>
Across all translations during this page load, the maximum amount of time
(in milliseconds) it took to translate the page.
</summary>
</metric>
<metric name="ModelDetectedLanguage" semantic_type="ST_DEMOGRAPHIC_INFO"
enum="LocaleCodeISO639">
<summary>
The language that was estimated by the language model based on the page's
content. Note that the semantic_type attribute is included in order to
remain consistent with the previous Translate UKM proto.
</summary>
</metric>
<metric name="ModelDetectionReliabilityScore">
<summary>
The score, or confidence, of the language detection model's prediction
about the language of the page content. The score is between 0 and 100,
higher means more confident.
</summary>
</metric>
<metric name="NumReversions">
<summary>
The number of times a translation was reverted.
</summary>
</metric>
<metric name="NumTargetLanguageChanges">
<summary>
The number of times that the target language was changed by the user over
the course of this page load.
</summary>
</metric>
<metric name="NumTranslateErrors">
<summary>
The number of errors to occur within Translate for this page load.
</summary>
</metric>
<metric name="NumTranslations">
<summary>
The number of times the page was translated.
</summary>
</metric>
<metric name="NumUIInteractions">
<summary>
The number of times that the user interacts with the Translate UI.
</summary>
</metric>
<metric name="RankerDecision" enum="TranslateRankerDecision">
<summary>
Decision of the Ranker whether to show the UI or not.
</summary>
</metric>
<metric name="RankerVersion">
<summary>
Version of Ranker used for this page load.
</summary>
</metric>
<metric name="SequenceNumber">
<summary>
In case multiple events are logged for one page load, we track the
sequence in the order each event is logged.
</summary>
</metric>
<metric name="TotalTimeNotTranslated">
<summary>
The amount of time (in seconds) this page was in the foreground and not
translated.
</summary>
</metric>
<metric name="TotalTimeTranslated">
<summary>
The amount of time (in seconds) this page was in the foreground and
translated.
</summary>
</metric>
<metric name="TriggerDecision" enum="TranslateTriggerDecision">
<summary>
The highest priority trigger that determined the initial state of
Translate for this page load.
</summary>
</metric>
<metric name="WasContentEmpty" enum="Boolean">
<summary>
Whether the page content used to detect the page language was empty or
not.
</summary>
</metric>
</event>
<event name="TrustedWebActivity.LocationDelegation" singular="True">
<owner>eirage@chromium.org</owner>
<owner>peconn@chromium.org</owner>
<summary>
Records when a site running in Trusted Web Activity requests geolocation.
</summary>
<metric name="Enrolled" enum="Boolean">
<summary>
Whether the Trusted Web Activity client app enrolled location delegation.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="TrustedWebActivity.Open" singular="True">
<owner>peconn@chromium.org</owner>
<summary>
Collected when a page is opened in a Trusted Web Activity.
</summary>
<metric name="HasOccurred" enum="Boolean">
<summary>
A boolean signaling that the event has occurred (typically only records
true values).
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="TrustedWebActivity.QualityEnforcementViolation" singular="True">
<owner>eirage@chromium.org</owner>
<owner>peconn@chromium.org</owner>
<summary>
Records when Trusted Web Activity launches or navigates to a site that
violates the quality criteria.
</summary>
<metric name="ViolationType"
enum="TrustedWebActivityQualityEnforcementViolationType">
<summary>
An enum that records the type of the quality criteria.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Unload" singular="True">
<owner>kdillon@chromium.org</owner>
<summary>
Metrics associated with a unloading in preparation for a navigation.
</summary>
<metric name="BeforeUnloadDuration">
<summary>
Measures the time in milliseconds of running the beforeunload handlers for
a page. If the beforeunloads are dispatched from the browser, this reports
the longest running one since these handlers will be run in parallel when
the page has frames in different processes. If the navigation is renderer
initiated, it will be the duration of running beforeunload handlers in the
navigating frame and its local descendants in the renderer plus any
latency caused by dispatching beforeunloads to remote frames from the
browser.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BeforeUnloadQueueingDuration">
<summary>
Measures the time in milliseconds from when the browser sends the request
to run beforeunload to the renderer to when the renderer begins
dispatching the handlers. For browser-initiated navigations, we report the
queueing duration of the beforeunloads that took the longest since they
are dispatched in parallel to remote and local frames. For renderer-
initiated navigations this metric will only be filled in if we dispatched
beforeunloads from the browser to remote frames which we had to wait on.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BeforeUnloadToCommit.CrossProcess">
<summary>
Measures the time in milliseconds from when the browser sends the request
to dispatch before unload handlers (for browser-intitated navigations) or
from when the renderer started running before unload handlers (for
renderer-initiated navigations) to when the commit navigation was sent to
the renderer process. For cross-process navigations this represents the
total amount of time the navigation is blocked since it was initiated.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="BeforeUnloadToCommit.SameProcess">
<summary>
Measures the time in milliseconds from when the browser sends the request
to dispatch before unload handlers (for browser-intitated navigations) or
from when the renderer started running before unload handlers (for
renderer-initiated navigations) to when the navigation was committed. For
same-process navigations this represents the total amount of time the
navigation is blocked since it was initiated.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UnloadDuration">
<summary>
Measures the time in milliseconds to run the unload handlers in the old
document where the navigation was committed. Only records for same-process
navigations since there are no unload handlers to be run in the new
process during a cross-process navigation.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="UnloadQueueingDuration">
<summary>
Measures the time in milliseconds from when the browser sends the commit
navigation request to the renderer to when the renderer dispatches unload
events. Only records for same-process navigations since unload handlers
are run in a different process for cross-process navigations.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="UserActivity">
<owner>jiameng@chromium.org</owner>
<summary>
Collects user activity events after staying idle for a short period of time.
</summary>
<metric name="BatteryPercent">
<summary>
Percentage of battery, bucketed to 5 percents, i.e. [0, 5%) is mapped to
0, [5%, 10%) is mapped to 5 etc.
</summary>
</metric>
<metric name="DeviceManagement">
<summary>
An enum representing whether the device is managed, defined in
|ash::power::ml::UserActivityEvent::Features::ManagementType|.
</summary>
</metric>
<metric name="DeviceMode">
<summary>
An enum representing the mode of the device, defined in
|ash::power::ml::UserActivityEvent::Features::DeviceMode|
</summary>
</metric>
<metric name="DeviceType">
<summary>
An enum representing the type of the device, defined in
|ash::power::ml::UserActivityEvent::Features::DeviceType|
</summary>
</metric>
<metric name="EventLogDuration">
<summary>
Time taken in seconds from when we start logging the features to the
moment when the event type is known and we finish logging the complete
event.
</summary>
</metric>
<metric name="EventReason">
<summary>
An enum representing the reason of the event, defined in
|ash::power::ml::UserActivityEvent::Event::Reason|.
</summary>
</metric>
<metric name="EventType">
<summary>
An enum representing the type of the event, defined in
|ash::power::ml::UserActivityEvent::Event::Type|.
</summary>
</metric>
<metric name="KeyEventsInLastHour">
<summary>
The number of key events reported as user activity in the last hour. This
is bucketized so that it is recorded precisely when it is in [0, 99],
rounded to nearest 100 when it is in [100, 999] and rounded to nearest
1000 when it is in [1000, 9999]. It is capped at 10000.
</summary>
</metric>
<metric name="LastActivityDay">
<summary>
An enum representing the last activity day of the week, defined in
|ash::power::ml::UserActivityEvent::Features::DayOfWeek|.
</summary>
</metric>
<metric name="LastActivityTime">
<summary>
Last activity time as hours since midnight in the local time zone.
</summary>
</metric>
<metric name="LastUserActivityTime">
<summary>
Last user activity time as hours since midnight in the local time zone.
</summary>
</metric>
<metric name="ModelApplied">
<summary>
A boolean value whether model prediction is applied in the screen-dim
decision. False means powerd dims the screen regardless of the model
prediction.
</summary>
</metric>
<metric name="ModelDecisionThreshold">
<summary>
A threhold in the range of [0, 100]. Higher threshold makes screen-dim
less likely.
</summary>
</metric>
<metric name="ModelInactivityScore">
<summary>
Probability that user will remain inactive as predicted by the model. It
is in the range of [0, 100]. If score is less than the decision threshold,
dim will be deferred.
</summary>
</metric>
<metric name="ModelResponse">
<summary>
Whether the model recommends the screen dim should be deferred (NO_DIM) or
allowed (DIM), or encountered an error (MODEL_ERROR).
</summary>
</metric>
<metric name="MouseEventsInLastHour">
<summary>
The number of mouse events reported as user activity in the last hour.
This is bucketized so that it is recorded precisely when it is in [0, 99],
rounded to nearest 100 when it is in [100, 999] and rounded to nearest
1000 when it is in [1000, 9999]. It is capped at 10000.
</summary>
</metric>
<metric name="OnBattery">
<summary>
Boolean value to represent whether the device is currently on battery
power.
</summary>
</metric>
<metric name="PreviousNegativeActionsCount">
<summary>
Number of times user reactivated, not including the current event.
</summary>
</metric>
<metric name="PreviousPositiveActionsCount">
<summary>
Number of times user has remained idle, not including the current event.
</summary>
</metric>
<metric name="RecentTimeActive">
<summary>
Duration of activity in seconds up to last activity.
</summary>
</metric>
<metric name="RecentVideoPlayingTime">
<summary>
Recent video playing time in seconds.
</summary>
</metric>
<metric name="ScreenDimDelay">
<summary>
Delay after which the screen will be dimmed in seconds.
</summary>
</metric>
<metric name="ScreenDimmedInitially">
<summary>
Whether screen was dimmed at the start of the event.
</summary>
</metric>
<metric name="ScreenDimOccurred">
<summary>
Whether screen dim occurred due to inactivity timeout.
</summary>
</metric>
<metric name="ScreenDimToOffDelay">
<summary>
Delay after which the screen will be turned off in seconds, as measured
from screen is dimmed. If dim is disabled, it is the delay from the start
of inactivity.
</summary>
</metric>
<metric name="ScreenLockedInitially">
<summary>
Whether screen was locked at the start of the event.
</summary>
</metric>
<metric name="ScreenLockOccurred">
<summary>
Whether screen lock occurred.
</summary>
</metric>
<metric name="ScreenOffInitially">
<summary>
Whether screen was off at the start of the event.
</summary>
</metric>
<metric name="ScreenOffOccurred">
<summary>
Whether screen off occurred due to inactivity timeout.
</summary>
</metric>
<metric name="SequenceId">
<summary>
The ID of this event in the current session.
</summary>
</metric>
<metric name="TimeSinceLastKey">
<summary>
Time from last key event in seconds.
</summary>
</metric>
<metric name="TimeSinceLastMouse">
<summary>
Time from last mouse event in seconds.
</summary>
</metric>
<metric name="TimeSinceLastTouch">
<summary>
Time from last touch event in seconds.
</summary>
</metric>
<metric name="TimeSinceLastVideoEnded">
<summary>
Time from the end of the last video playing in seconds.
</summary>
</metric>
<metric name="TouchEventsInLastHour">
<summary>
The number of touch events reported as user activity in the last hour.
This is bucketized so that it is recorded precisely when it is in [0, 99],
rounded to nearest 100 when it is in [100, 999] and rounded to nearest
1000 when it is in [1000, 9999]. It is capped at 10000.
</summary>
</metric>
</event>
<event name="UserActivityId">
<owner>jiameng@chromium.org</owner>
<summary>
Records an activity that happened while a page was open.
</summary>
<metric name="ActivityId">
<summary>
The ID of the activity that happened while a page was open.
</summary>
</metric>
<metric name="ContentType">
<summary>
Enumeration for the MIME type of the page. Values are enumerated in
metrics::TabMetricsEvent::ContentType.
</summary>
</metric>
<metric name="HasFormEntry">
<summary>
Boolean value indicating whether the page has any user-input text.
</summary>
</metric>
<metric name="IsActive">
<summary>
Boolean value representing whether this tab is selected in its containing
browser.
</summary>
</metric>
<metric name="IsBrowserFocused">
<summary>
Boolean value representing whether the containing browser is in focus.
</summary>
</metric>
<metric name="IsBrowserVisible">
<summary>
Boolean value representing whether the containing browser is visible.
</summary>
</metric>
<metric name="IsTopmostBrowser">
<summary>
Boolean value representing whether the containing browser is the topmost
one on the screen.
</summary>
</metric>
<metric name="SiteEngagementScore">
<summary>
Site engagement score in the range [0, 100], rounded down to a multiple of
10 to limit granularity.
</summary>
</metric>
</event>
<event name="UserPerceivedPageVisit" singular="True">
<owner>djw@chromium.org</owner>
<owner>altimin@chromium.org</owner>
<summary>
Metrics related to a page visit as a user perceives it, regardless of how
the page was visited. More metrics may be associated with a particular page
visit, these can be found in specific UKM events with the same UKM source
ID. Currently the methods of visiting a page that will populate this event
are: 'normal' page load (more metrics in the PageLoad event), Back-Forward
Cache Restore (more metrics in the HistoryNavigation event), and AMP
documents (more metrics in the AmpPageLoad event)
</summary>
<metric name="NotCountedForCoreWebVitals" enum="Boolean">
<summary>
Determines if this page visit event should be counted towards calculations
involving Core Web Vitals. If true, this page visit event should not be
counted. If false or NULL, the page visit event should be considered.
Currently this is determined by checking the mime-type of the page visit
event.
</summary>
</metric>
<metric name="PageVisitFinalStatus" enum="PageVisitFinalStatus">
<summary>
Determines the final status for this page visit. That is, records whether
the page was never foregrounded, was foregrounded but did not reach FCP,
or did reach FCP. The metric is recorded at the end of each page visit.
App backgrounding on Android to is considered to be the end of page visit
as well, as the app could be evicted by Android anytime after that
happens.
</summary>
</metric>
<metric name="UserInitiated" enum="Boolean">
<summary>
True if this page visit was initiated by user input. For renderer
navigations, only true if the code can trace back to the original input
event - there are cases where this known not to be possible.
</summary>
</metric>
</event>
<event name="UserSettingsEvent">
<obsolete>
Removed 3/2023
</obsolete>
<owner>wrong@chromium.org</owner>
<owner>jiameng@chromium.org</owner>
<summary>
Contains information about user activities relating to settings changes.
</summary>
<metric name="AccessibilityId" enum="AccessibilityId">
<summary>
The accessibility setting that was changed.
</summary>
</metric>
<metric name="BatteryPercentage">
<summary>
Battery percentage from 0 to 100.
</summary>
</metric>
<metric name="Country">
<summary>
Country ID at install, corresponding to the value used by
src/components/country_codes/country_codes.h.
</summary>
</metric>
<metric name="CurrentValue">
<summary>
Value of the setting after the change.
</summary>
</metric>
<metric name="DayOfWeek" enum="DayOfWeek">
<summary>
Day of the week of the settings change.
</summary>
</metric>
<metric name="DeviceMode" enum="DeviceMode">
<summary>
The current device mode, such as clamshell or tablet.
</summary>
</metric>
<metric name="DeviceOrientation" enum="DeviceOrientation">
<summary>
The current orientation of the device.
</summary>
</metric>
<metric name="EventId">
<summary>
Randomly generated ID that links together settings events that occurred at
the same time.
</summary>
</metric>
<metric name="HasNightLightSchedule" enum="Boolean">
<summary>
A boolean indicating whether the user has set up a night light schedule.
</summary>
</metric>
<metric name="HasWifiSecurity" enum="Boolean">
<summary>
A boolean indicating whether or not the current wifi network has security.
Only populated upon connection to a wifi network.
</summary>
</metric>
<metric name="HourOfDay">
<summary>
Time in hours since midnight in the local time zone.
</summary>
</metric>
<metric name="IsAfterSunset" enum="Boolean">
<summary>
A boolean, true if it is after sunset and before sunrise in the local
time.
</summary>
</metric>
<metric name="IsCharging" enum="Boolean">
<summary>
A boolean indicating whether the device is charging.
</summary>
</metric>
<metric name="IsFromSearch" enum="Boolean">
<summary>
A boolean indicating whether or not search was used to navigate to the
setting.
</summary>
</metric>
<metric name="IsPairedBluetoothDevice" enum="Boolean">
<summary>
A boolean indicating whether or not the current bluetooth device was
already paired. Only populated upon connection to a bluetooth device.
</summary>
</metric>
<metric name="IsPlayingAudio" enum="Boolean">
<summary>
A boolean indicating whether the device is playing audio.
</summary>
</metric>
<metric name="IsPlayingVideo" enum="Boolean">
<summary>
A boolean indicating whether the device is playing video.
</summary>
</metric>
<metric name="IsRecentlyFullscreen" enum="Boolean">
<summary>
A boolean indicating whether the device has been in fullscreen mode in the
last 5 minutes.
</summary>
</metric>
<metric name="IsRecentlyPresenting" enum="Boolean">
<summary>
A boolean indicating whether the device has been presenting in the last 5
minutes.
</summary>
</metric>
<metric name="NetworkStatus" enum="NetworkStatus">
<summary>
Internet connection status of the device.
</summary>
</metric>
<metric name="PreviousValue">
<summary>
Value of the setting before the change.
</summary>
</metric>
<metric name="SettingId" enum="SettingId">
<summary>
The setting that was changed.
</summary>
</metric>
<metric name="SettingType" enum="SettingType">
<summary>
Where the settings event originated from.
</summary>
</metric>
<metric name="SignalStrength">
<summary>
The signal strength for the connected network. Only populated upon
connection to a wifi or cellular network.
</summary>
</metric>
<metric name="TimeSinceLastSettingsChange">
<summary>
Time in minutes since the last settings change.
</summary>
</metric>
<metric name="UsedCellularInSession" enum="Boolean">
<summary>
A boolean indicating whether the user has connected to a cellular network
in the current session.
</summary>
</metric>
</event>
<event name="V8.Wasm.ModuleCompiled">
<owner>ecmziegler@chromium.org</owner>
<summary>
Records information on baseline compilation of WebAssembly modules and its
resource consumption.
</summary>
<metric name="Async" enum="Boolean">
<summary>
The compilation was running asynchronously.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Cached" enum="Boolean">
<summary>
The compilation was re-using already cached native module code instead of
JIT compiling it.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CodeSize">
<summary>
The size of the native module code in bytes after baseline compilation
finished.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Deserialized" enum="Boolean">
<summary>
The compilation was deserializing the native module code from the disk
cache instead of JIT compiling it.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Lazy" enum="Boolean">
<summary>
The lazy compilation flag was enabled and therefore not all functions
might have been compiled.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LiftoffBailoutCount">
<summary>
The number of functions that Liftoff could not compile and that therefore
needed to be compiled by TurboFan.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Streamed" enum="Boolean">
<summary>
The wire bytes were streamed while compiling.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Success" enum="Boolean">
<summary>
The module was successfully compiled.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockDuration">
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockTime">
<obsolete>
Removed 11/2020
</obsolete>
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="V8.Wasm.ModuleDecoded">
<owner>ecmziegler@chromium.org</owner>
<summary>
Records information on WebAssembly modules included in websites.
</summary>
<metric name="FunctionCount">
<summary>
Number of declared functions in this module.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ModuleSize">
<summary>
The size of the wire bytes of the module.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Streamed" enum="Boolean">
<summary>
The wire bytes were streamed while decoding.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Success" enum="Boolean">
<summary>
The module was successfully decoded.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockDuration">
<summary>
The total time the decoding took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockTime">
<obsolete>
Removed 11/2020
</obsolete>
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="V8.Wasm.ModuleInstantiated">
<owner>ecmziegler@chromium.org</owner>
<summary>
Records information on instantiation of WebAssembly modules and its resource
consumption.
</summary>
<metric name="ImportedFunctionCount">
<summary>
The number of functions imported by the module.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Success" enum="Boolean">
<summary>
The module was successfully instantiated.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockDuration">
<summary>
The total time the instantiation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockTime">
<obsolete>
Removed 11/2020
</obsolete>
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="V8.Wasm.ModuleTieredUp">
<owner>ecmziegler@chromium.org</owner>
<summary>
Records information on top-tier compilation of WebAssembly modules and its
resource consumption.
</summary>
<metric name="CodeSize">
<summary>
The size of the native module code in bytes after top-tier compilation
finished.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Lazy" enum="Boolean">
<summary>
The lazy compilation flag was enabled and therefore not all functions
might have been compiled.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockDuration">
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WallClockTime">
<obsolete>
Removed 11/2020
</obsolete>
<summary>
The total time the compilation took in microseconds.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="V8CompileHints.Version4">
<owner>marja@chromium.org</owner>
<owner>v8-loading@google.com</owner>
<summary>
Data about which JavaScript functions are compiled. The collected data is
obfuscated to not reveal script URLs. The data is split into separate
int64s.
</summary>
<metric name="Data0"/>
<metric name="Data1"/>
<metric name="Data10"/>
<metric name="Data100"/>
<metric name="Data1000"/>
<metric name="Data1001"/>
<metric name="Data1002"/>
<metric name="Data1003"/>
<metric name="Data1004"/>
<metric name="Data1005"/>
<metric name="Data1006"/>
<metric name="Data1007"/>
<metric name="Data1008"/>
<metric name="Data1009"/>
<metric name="Data101"/>
<metric name="Data1010"/>
<metric name="Data1011"/>
<metric name="Data1012"/>
<metric name="Data1013"/>
<metric name="Data1014"/>
<metric name="Data1015"/>
<metric name="Data1016"/>
<metric name="Data1017"/>
<metric name="Data1018"/>
<metric name="Data1019"/>
<metric name="Data102"/>
<metric name="Data1020"/>
<metric name="Data1021"/>
<metric name="Data1022"/>
<metric name="Data1023"/>
<metric name="Data103"/>
<metric name="Data104"/>
<metric name="Data105"/>
<metric name="Data106"/>
<metric name="Data107"/>
<metric name="Data108"/>
<metric name="Data109"/>
<metric name="Data11"/>
<metric name="Data110"/>
<metric name="Data111"/>
<metric name="Data112"/>
<metric name="Data113"/>
<metric name="Data114"/>
<metric name="Data115"/>
<metric name="Data116"/>
<metric name="Data117"/>
<metric name="Data118"/>
<metric name="Data119"/>
<metric name="Data12"/>
<metric name="Data120"/>
<metric name="Data121"/>
<metric name="Data122"/>
<metric name="Data123"/>
<metric name="Data124"/>
<metric name="Data125"/>
<metric name="Data126"/>
<metric name="Data127"/>
<metric name="Data128"/>
<metric name="Data129"/>
<metric name="Data13"/>
<metric name="Data130"/>
<metric name="Data131"/>
<metric name="Data132"/>
<metric name="Data133"/>
<metric name="Data134"/>
<metric name="Data135"/>
<metric name="Data136"/>
<metric name="Data137"/>
<metric name="Data138"/>
<metric name="Data139"/>
<metric name="Data14"/>
<metric name="Data140"/>
<metric name="Data141"/>
<metric name="Data142"/>
<metric name="Data143"/>
<metric name="Data144"/>
<metric name="Data145"/>
<metric name="Data146"/>
<metric name="Data147"/>
<metric name="Data148"/>
<metric name="Data149"/>
<metric name="Data15"/>
<metric name="Data150"/>
<metric name="Data151"/>
<metric name="Data152"/>
<metric name="Data153"/>
<metric name="Data154"/>
<metric name="Data155"/>
<metric name="Data156"/>
<metric name="Data157"/>
<metric name="Data158"/>
<metric name="Data159"/>
<metric name="Data16"/>
<metric name="Data160"/>
<metric name="Data161"/>
<metric name="Data162"/>
<metric name="Data163"/>
<metric name="Data164"/>
<metric name="Data165"/>
<metric name="Data166"/>
<metric name="Data167"/>
<metric name="Data168"/>
<metric name="Data169"/>
<metric name="Data17"/>
<metric name="Data170"/>
<metric name="Data171"/>
<metric name="Data172"/>
<metric name="Data173"/>
<metric name="Data174"/>
<metric name="Data175"/>
<metric name="Data176"/>
<metric name="Data177"/>
<metric name="Data178"/>
<metric name="Data179"/>
<metric name="Data18"/>
<metric name="Data180"/>
<metric name="Data181"/>
<metric name="Data182"/>
<metric name="Data183"/>
<metric name="Data184"/>
<metric name="Data185"/>
<metric name="Data186"/>
<metric name="Data187"/>
<metric name="Data188"/>
<metric name="Data189"/>
<metric name="Data19"/>
<metric name="Data190"/>
<metric name="Data191"/>
<metric name="Data192"/>
<metric name="Data193"/>
<metric name="Data194"/>
<metric name="Data195"/>
<metric name="Data196"/>
<metric name="Data197"/>
<metric name="Data198"/>
<metric name="Data199"/>
<metric name="Data2"/>
<metric name="Data20"/>
<metric name="Data200"/>
<metric name="Data201"/>
<metric name="Data202"/>
<metric name="Data203"/>
<metric name="Data204"/>
<metric name="Data205"/>
<metric name="Data206"/>
<metric name="Data207"/>
<metric name="Data208"/>
<metric name="Data209"/>
<metric name="Data21"/>
<metric name="Data210"/>
<metric name="Data211"/>
<metric name="Data212"/>
<metric name="Data213"/>
<metric name="Data214"/>
<metric name="Data215"/>
<metric name="Data216"/>
<metric name="Data217"/>
<metric name="Data218"/>
<metric name="Data219"/>
<metric name="Data22"/>
<metric name="Data220"/>
<metric name="Data221"/>
<metric name="Data222"/>
<metric name="Data223"/>
<metric name="Data224"/>
<metric name="Data225"/>
<metric name="Data226"/>
<metric name="Data227"/>
<metric name="Data228"/>
<metric name="Data229"/>
<metric name="Data23"/>
<metric name="Data230"/>
<metric name="Data231"/>
<metric name="Data232"/>
<metric name="Data233"/>
<metric name="Data234"/>
<metric name="Data235"/>
<metric name="Data236"/>
<metric name="Data237"/>
<metric name="Data238"/>
<metric name="Data239"/>
<metric name="Data24"/>
<metric name="Data240"/>
<metric name="Data241"/>
<metric name="Data242"/>
<metric name="Data243"/>
<metric name="Data244"/>
<metric name="Data245"/>
<metric name="Data246"/>
<metric name="Data247"/>
<metric name="Data248"/>
<metric name="Data249"/>
<metric name="Data25"/>
<metric name="Data250"/>
<metric name="Data251"/>
<metric name="Data252"/>
<metric name="Data253"/>
<metric name="Data254"/>
<metric name="Data255"/>
<metric name="Data256"/>
<metric name="Data257"/>
<metric name="Data258"/>
<metric name="Data259"/>
<metric name="Data26"/>
<metric name="Data260"/>
<metric name="Data261"/>
<metric name="Data262"/>
<metric name="Data263"/>
<metric name="Data264"/>
<metric name="Data265"/>
<metric name="Data266"/>
<metric name="Data267"/>
<metric name="Data268"/>
<metric name="Data269"/>
<metric name="Data27"/>
<metric name="Data270"/>
<metric name="Data271"/>
<metric name="Data272"/>
<metric name="Data273"/>
<metric name="Data274"/>
<metric name="Data275"/>
<metric name="Data276"/>
<metric name="Data277"/>
<metric name="Data278"/>
<metric name="Data279"/>
<metric name="Data28"/>
<metric name="Data280"/>
<metric name="Data281"/>
<metric name="Data282"/>
<metric name="Data283"/>
<metric name="Data284"/>
<metric name="Data285"/>
<metric name="Data286"/>
<metric name="Data287"/>
<metric name="Data288"/>
<metric name="Data289"/>
<metric name="Data29"/>
<metric name="Data290"/>
<metric name="Data291"/>
<metric name="Data292"/>
<metric name="Data293"/>
<metric name="Data294"/>
<metric name="Data295"/>
<metric name="Data296"/>
<metric name="Data297"/>
<metric name="Data298"/>
<metric name="Data299"/>
<metric name="Data3"/>
<metric name="Data30"/>
<metric name="Data300"/>
<metric name="Data301"/>
<metric name="Data302"/>
<metric name="Data303"/>
<metric name="Data304"/>
<metric name="Data305"/>
<metric name="Data306"/>
<metric name="Data307"/>
<metric name="Data308"/>
<metric name="Data309"/>
<metric name="Data31"/>
<metric name="Data310"/>
<metric name="Data311"/>
<metric name="Data312"/>
<metric name="Data313"/>
<metric name="Data314"/>
<metric name="Data315"/>
<metric name="Data316"/>
<metric name="Data317"/>
<metric name="Data318"/>
<metric name="Data319"/>
<metric name="Data32"/>
<metric name="Data320"/>
<metric name="Data321"/>
<metric name="Data322"/>
<metric name="Data323"/>
<metric name="Data324"/>
<metric name="Data325"/>
<metric name="Data326"/>
<metric name="Data327"/>
<metric name="Data328"/>
<metric name="Data329"/>
<metric name="Data33"/>
<metric name="Data330"/>
<metric name="Data331"/>
<metric name="Data332"/>
<metric name="Data333"/>
<metric name="Data334"/>
<metric name="Data335"/>
<metric name="Data336"/>
<metric name="Data337"/>
<metric name="Data338"/>
<metric name="Data339"/>
<metric name="Data34"/>
<metric name="Data340"/>
<metric name="Data341"/>
<metric name="Data342"/>
<metric name="Data343"/>
<metric name="Data344"/>
<metric name="Data345"/>
<metric name="Data346"/>
<metric name="Data347"/>
<metric name="Data348"/>
<metric name="Data349"/>
<metric name="Data35"/>
<metric name="Data350"/>
<metric name="Data351"/>
<metric name="Data352"/>
<metric name="Data353"/>
<metric name="Data354"/>
<metric name="Data355"/>
<metric name="Data356"/>
<metric name="Data357"/>
<metric name="Data358"/>
<metric name="Data359"/>
<metric name="Data36"/>
<metric name="Data360"/>
<metric name="Data361"/>
<metric name="Data362"/>
<metric name="Data363"/>
<metric name="Data364"/>
<metric name="Data365"/>
<metric name="Data366"/>
<metric name="Data367"/>
<metric name="Data368"/>
<metric name="Data369"/>
<metric name="Data37"/>
<metric name="Data370"/>
<metric name="Data371"/>
<metric name="Data372"/>
<metric name="Data373"/>
<metric name="Data374"/>
<metric name="Data375"/>
<metric name="Data376"/>
<metric name="Data377"/>
<metric name="Data378"/>
<metric name="Data379"/>
<metric name="Data38"/>
<metric name="Data380"/>
<metric name="Data381"/>
<metric name="Data382"/>
<metric name="Data383"/>
<metric name="Data384"/>
<metric name="Data385"/>
<metric name="Data386"/>
<metric name="Data387"/>
<metric name="Data388"/>
<metric name="Data389"/>
<metric name="Data39"/>
<metric name="Data390"/>
<metric name="Data391"/>
<metric name="Data392"/>
<metric name="Data393"/>
<metric name="Data394"/>
<metric name="Data395"/>
<metric name="Data396"/>
<metric name="Data397"/>
<metric name="Data398"/>
<metric name="Data399"/>
<metric name="Data4"/>
<metric name="Data40"/>
<metric name="Data400"/>
<metric name="Data401"/>
<metric name="Data402"/>
<metric name="Data403"/>
<metric name="Data404"/>
<metric name="Data405"/>
<metric name="Data406"/>
<metric name="Data407"/>
<metric name="Data408"/>
<metric name="Data409"/>
<metric name="Data41"/>
<metric name="Data410"/>
<metric name="Data411"/>
<metric name="Data412"/>
<metric name="Data413"/>
<metric name="Data414"/>
<metric name="Data415"/>
<metric name="Data416"/>
<metric name="Data417"/>
<metric name="Data418"/>
<metric name="Data419"/>
<metric name="Data42"/>
<metric name="Data420"/>
<metric name="Data421"/>
<metric name="Data422"/>
<metric name="Data423"/>
<metric name="Data424"/>
<metric name="Data425"/>
<metric name="Data426"/>
<metric name="Data427"/>
<metric name="Data428"/>
<metric name="Data429"/>
<metric name="Data43"/>
<metric name="Data430"/>
<metric name="Data431"/>
<metric name="Data432"/>
<metric name="Data433"/>
<metric name="Data434"/>
<metric name="Data435"/>
<metric name="Data436"/>
<metric name="Data437"/>
<metric name="Data438"/>
<metric name="Data439"/>
<metric name="Data44"/>
<metric name="Data440"/>
<metric name="Data441"/>
<metric name="Data442"/>
<metric name="Data443"/>
<metric name="Data444"/>
<metric name="Data445"/>
<metric name="Data446"/>
<metric name="Data447"/>
<metric name="Data448"/>
<metric name="Data449"/>
<metric name="Data45"/>
<metric name="Data450"/>
<metric name="Data451"/>
<metric name="Data452"/>
<metric name="Data453"/>
<metric name="Data454"/>
<metric name="Data455"/>
<metric name="Data456"/>
<metric name="Data457"/>
<metric name="Data458"/>
<metric name="Data459"/>
<metric name="Data46"/>
<metric name="Data460"/>
<metric name="Data461"/>
<metric name="Data462"/>
<metric name="Data463"/>
<metric name="Data464"/>
<metric name="Data465"/>
<metric name="Data466"/>
<metric name="Data467"/>
<metric name="Data468"/>
<metric name="Data469"/>
<metric name="Data47"/>
<metric name="Data470"/>
<metric name="Data471"/>
<metric name="Data472"/>
<metric name="Data473"/>
<metric name="Data474"/>
<metric name="Data475"/>
<metric name="Data476"/>
<metric name="Data477"/>
<metric name="Data478"/>
<metric name="Data479"/>
<metric name="Data48"/>
<metric name="Data480"/>
<metric name="Data481"/>
<metric name="Data482"/>
<metric name="Data483"/>
<metric name="Data484"/>
<metric name="Data485"/>
<metric name="Data486"/>
<metric name="Data487"/>
<metric name="Data488"/>
<metric name="Data489"/>
<metric name="Data49"/>
<metric name="Data490"/>
<metric name="Data491"/>
<metric name="Data492"/>
<metric name="Data493"/>
<metric name="Data494"/>
<metric name="Data495"/>
<metric name="Data496"/>
<metric name="Data497"/>
<metric name="Data498"/>
<metric name="Data499"/>
<metric name="Data5"/>
<metric name="Data50"/>
<metric name="Data500"/>
<metric name="Data501"/>
<metric name="Data502"/>
<metric name="Data503"/>
<metric name="Data504"/>
<metric name="Data505"/>
<metric name="Data506"/>
<metric name="Data507"/>
<metric name="Data508"/>
<metric name="Data509"/>
<metric name="Data51"/>
<metric name="Data510"/>
<metric name="Data511"/>
<metric name="Data512"/>
<metric name="Data513"/>
<metric name="Data514"/>
<metric name="Data515"/>
<metric name="Data516"/>
<metric name="Data517"/>
<metric name="Data518"/>
<metric name="Data519"/>
<metric name="Data52"/>
<metric name="Data520"/>
<metric name="Data521"/>
<metric name="Data522"/>
<metric name="Data523"/>
<metric name="Data524"/>
<metric name="Data525"/>
<metric name="Data526"/>
<metric name="Data527"/>
<metric name="Data528"/>
<metric name="Data529"/>
<metric name="Data53"/>
<metric name="Data530"/>
<metric name="Data531"/>
<metric name="Data532"/>
<metric name="Data533"/>
<metric name="Data534"/>
<metric name="Data535"/>
<metric name="Data536"/>
<metric name="Data537"/>
<metric name="Data538"/>
<metric name="Data539"/>
<metric name="Data54"/>
<metric name="Data540"/>
<metric name="Data541"/>
<metric name="Data542"/>
<metric name="Data543"/>
<metric name="Data544"/>
<metric name="Data545"/>
<metric name="Data546"/>
<metric name="Data547"/>
<metric name="Data548"/>
<metric name="Data549"/>
<metric name="Data55"/>
<metric name="Data550"/>
<metric name="Data551"/>
<metric name="Data552"/>
<metric name="Data553"/>
<metric name="Data554"/>
<metric name="Data555"/>
<metric name="Data556"/>
<metric name="Data557"/>
<metric name="Data558"/>
<metric name="Data559"/>
<metric name="Data56"/>
<metric name="Data560"/>
<metric name="Data561"/>
<metric name="Data562"/>
<metric name="Data563"/>
<metric name="Data564"/>
<metric name="Data565"/>
<metric name="Data566"/>
<metric name="Data567"/>
<metric name="Data568"/>
<metric name="Data569"/>
<metric name="Data57"/>
<metric name="Data570"/>
<metric name="Data571"/>
<metric name="Data572"/>
<metric name="Data573"/>
<metric name="Data574"/>
<metric name="Data575"/>
<metric name="Data576"/>
<metric name="Data577"/>
<metric name="Data578"/>
<metric name="Data579"/>
<metric name="Data58"/>
<metric name="Data580"/>
<metric name="Data581"/>
<metric name="Data582"/>
<metric name="Data583"/>
<metric name="Data584"/>
<metric name="Data585"/>
<metric name="Data586"/>
<metric name="Data587"/>
<metric name="Data588"/>
<metric name="Data589"/>
<metric name="Data59"/>
<metric name="Data590"/>
<metric name="Data591"/>
<metric name="Data592"/>
<metric name="Data593"/>
<metric name="Data594"/>
<metric name="Data595"/>
<metric name="Data596"/>
<metric name="Data597"/>
<metric name="Data598"/>
<metric name="Data599"/>
<metric name="Data6"/>
<metric name="Data60"/>
<metric name="Data600"/>
<metric name="Data601"/>
<metric name="Data602"/>
<metric name="Data603"/>
<metric name="Data604"/>
<metric name="Data605"/>
<metric name="Data606"/>
<metric name="Data607"/>
<metric name="Data608"/>
<metric name="Data609"/>
<metric name="Data61"/>
<metric name="Data610"/>
<metric name="Data611"/>
<metric name="Data612"/>
<metric name="Data613"/>
<metric name="Data614"/>
<metric name="Data615"/>
<metric name="Data616"/>
<metric name="Data617"/>
<metric name="Data618"/>
<metric name="Data619"/>
<metric name="Data62"/>
<metric name="Data620"/>
<metric name="Data621"/>
<metric name="Data622"/>
<metric name="Data623"/>
<metric name="Data624"/>
<metric name="Data625"/>
<metric name="Data626"/>
<metric name="Data627"/>
<metric name="Data628"/>
<metric name="Data629"/>
<metric name="Data63"/>
<metric name="Data630"/>
<metric name="Data631"/>
<metric name="Data632"/>
<metric name="Data633"/>
<metric name="Data634"/>
<metric name="Data635"/>
<metric name="Data636"/>
<metric name="Data637"/>
<metric name="Data638"/>
<metric name="Data639"/>
<metric name="Data64"/>
<metric name="Data640"/>
<metric name="Data641"/>
<metric name="Data642"/>
<metric name="Data643"/>
<metric name="Data644"/>
<metric name="Data645"/>
<metric name="Data646"/>
<metric name="Data647"/>
<metric name="Data648"/>
<metric name="Data649"/>
<metric name="Data65"/>
<metric name="Data650"/>
<metric name="Data651"/>
<metric name="Data652"/>
<metric name="Data653"/>
<metric name="Data654"/>
<metric name="Data655"/>
<metric name="Data656"/>
<metric name="Data657"/>
<metric name="Data658"/>
<metric name="Data659"/>
<metric name="Data66"/>
<metric name="Data660"/>
<metric name="Data661"/>
<metric name="Data662"/>
<metric name="Data663"/>
<metric name="Data664"/>
<metric name="Data665"/>
<metric name="Data666"/>
<metric name="Data667"/>
<metric name="Data668"/>
<metric name="Data669"/>
<metric name="Data67"/>
<metric name="Data670"/>
<metric name="Data671"/>
<metric name="Data672"/>
<metric name="Data673"/>
<metric name="Data674"/>
<metric name="Data675"/>
<metric name="Data676"/>
<metric name="Data677"/>
<metric name="Data678"/>
<metric name="Data679"/>
<metric name="Data68"/>
<metric name="Data680"/>
<metric name="Data681"/>
<metric name="Data682"/>
<metric name="Data683"/>
<metric name="Data684"/>
<metric name="Data685"/>
<metric name="Data686"/>
<metric name="Data687"/>
<metric name="Data688"/>
<metric name="Data689"/>
<metric name="Data69"/>
<metric name="Data690"/>
<metric name="Data691"/>
<metric name="Data692"/>
<metric name="Data693"/>
<metric name="Data694"/>
<metric name="Data695"/>
<metric name="Data696"/>
<metric name="Data697"/>
<metric name="Data698"/>
<metric name="Data699"/>
<metric name="Data7"/>
<metric name="Data70"/>
<metric name="Data700"/>
<metric name="Data701"/>
<metric name="Data702"/>
<metric name="Data703"/>
<metric name="Data704"/>
<metric name="Data705"/>
<metric name="Data706"/>
<metric name="Data707"/>
<metric name="Data708"/>
<metric name="Data709"/>
<metric name="Data71"/>
<metric name="Data710"/>
<metric name="Data711"/>
<metric name="Data712"/>
<metric name="Data713"/>
<metric name="Data714"/>
<metric name="Data715"/>
<metric name="Data716"/>
<metric name="Data717"/>
<metric name="Data718"/>
<metric name="Data719"/>
<metric name="Data72"/>
<metric name="Data720"/>
<metric name="Data721"/>
<metric name="Data722"/>
<metric name="Data723"/>
<metric name="Data724"/>
<metric name="Data725"/>
<metric name="Data726"/>
<metric name="Data727"/>
<metric name="Data728"/>
<metric name="Data729"/>
<metric name="Data73"/>
<metric name="Data730"/>
<metric name="Data731"/>
<metric name="Data732"/>
<metric name="Data733"/>
<metric name="Data734"/>
<metric name="Data735"/>
<metric name="Data736"/>
<metric name="Data737"/>
<metric name="Data738"/>
<metric name="Data739"/>
<metric name="Data74"/>
<metric name="Data740"/>
<metric name="Data741"/>
<metric name="Data742"/>
<metric name="Data743"/>
<metric name="Data744"/>
<metric name="Data745"/>
<metric name="Data746"/>
<metric name="Data747"/>
<metric name="Data748"/>
<metric name="Data749"/>
<metric name="Data75"/>
<metric name="Data750"/>
<metric name="Data751"/>
<metric name="Data752"/>
<metric name="Data753"/>
<metric name="Data754"/>
<metric name="Data755"/>
<metric name="Data756"/>
<metric name="Data757"/>
<metric name="Data758"/>
<metric name="Data759"/>
<metric name="Data76"/>
<metric name="Data760"/>
<metric name="Data761"/>
<metric name="Data762"/>
<metric name="Data763"/>
<metric name="Data764"/>
<metric name="Data765"/>
<metric name="Data766"/>
<metric name="Data767"/>
<metric name="Data768"/>
<metric name="Data769"/>
<metric name="Data77"/>
<metric name="Data770"/>
<metric name="Data771"/>
<metric name="Data772"/>
<metric name="Data773"/>
<metric name="Data774"/>
<metric name="Data775"/>
<metric name="Data776"/>
<metric name="Data777"/>
<metric name="Data778"/>
<metric name="Data779"/>
<metric name="Data78"/>
<metric name="Data780"/>
<metric name="Data781"/>
<metric name="Data782"/>
<metric name="Data783"/>
<metric name="Data784"/>
<metric name="Data785"/>
<metric name="Data786"/>
<metric name="Data787"/>
<metric name="Data788"/>
<metric name="Data789"/>
<metric name="Data79"/>
<metric name="Data790"/>
<metric name="Data791"/>
<metric name="Data792"/>
<metric name="Data793"/>
<metric name="Data794"/>
<metric name="Data795"/>
<metric name="Data796"/>
<metric name="Data797"/>
<metric name="Data798"/>
<metric name="Data799"/>
<metric name="Data8"/>
<metric name="Data80"/>
<metric name="Data800"/>
<metric name="Data801"/>
<metric name="Data802"/>
<metric name="Data803"/>
<metric name="Data804"/>
<metric name="Data805"/>
<metric name="Data806"/>
<metric name="Data807"/>
<metric name="Data808"/>
<metric name="Data809"/>
<metric name="Data81"/>
<metric name="Data810"/>
<metric name="Data811"/>
<metric name="Data812"/>
<metric name="Data813"/>
<metric name="Data814"/>
<metric name="Data815"/>
<metric name="Data816"/>
<metric name="Data817"/>
<metric name="Data818"/>
<metric name="Data819"/>
<metric name="Data82"/>
<metric name="Data820"/>
<metric name="Data821"/>
<metric name="Data822"/>
<metric name="Data823"/>
<metric name="Data824"/>
<metric name="Data825"/>
<metric name="Data826"/>
<metric name="Data827"/>
<metric name="Data828"/>
<metric name="Data829"/>
<metric name="Data83"/>
<metric name="Data830"/>
<metric name="Data831"/>
<metric name="Data832"/>
<metric name="Data833"/>
<metric name="Data834"/>
<metric name="Data835"/>
<metric name="Data836"/>
<metric name="Data837"/>
<metric name="Data838"/>
<metric name="Data839"/>
<metric name="Data84"/>
<metric name="Data840"/>
<metric name="Data841"/>
<metric name="Data842"/>
<metric name="Data843"/>
<metric name="Data844"/>
<metric name="Data845"/>
<metric name="Data846"/>
<metric name="Data847"/>
<metric name="Data848"/>
<metric name="Data849"/>
<metric name="Data85"/>
<metric name="Data850"/>
<metric name="Data851"/>
<metric name="Data852"/>
<metric name="Data853"/>
<metric name="Data854"/>
<metric name="Data855"/>
<metric name="Data856"/>
<metric name="Data857"/>
<metric name="Data858"/>
<metric name="Data859"/>
<metric name="Data86"/>
<metric name="Data860"/>
<metric name="Data861"/>
<metric name="Data862"/>
<metric name="Data863"/>
<metric name="Data864"/>
<metric name="Data865"/>
<metric name="Data866"/>
<metric name="Data867"/>
<metric name="Data868"/>
<metric name="Data869"/>
<metric name="Data87"/>
<metric name="Data870"/>
<metric name="Data871"/>
<metric name="Data872"/>
<metric name="Data873"/>
<metric name="Data874"/>
<metric name="Data875"/>
<metric name="Data876"/>
<metric name="Data877"/>
<metric name="Data878"/>
<metric name="Data879"/>
<metric name="Data88"/>
<metric name="Data880"/>
<metric name="Data881"/>
<metric name="Data882"/>
<metric name="Data883"/>
<metric name="Data884"/>
<metric name="Data885"/>
<metric name="Data886"/>
<metric name="Data887"/>
<metric name="Data888"/>
<metric name="Data889"/>
<metric name="Data89"/>
<metric name="Data890"/>
<metric name="Data891"/>
<metric name="Data892"/>
<metric name="Data893"/>
<metric name="Data894"/>
<metric name="Data895"/>
<metric name="Data896"/>
<metric name="Data897"/>
<metric name="Data898"/>
<metric name="Data899"/>
<metric name="Data9"/>
<metric name="Data90"/>
<metric name="Data900"/>
<metric name="Data901"/>
<metric name="Data902"/>
<metric name="Data903"/>
<metric name="Data904"/>
<metric name="Data905"/>
<metric name="Data906"/>
<metric name="Data907"/>
<metric name="Data908"/>
<metric name="Data909"/>
<metric name="Data91"/>
<metric name="Data910"/>
<metric name="Data911"/>
<metric name="Data912"/>
<metric name="Data913"/>
<metric name="Data914"/>
<metric name="Data915"/>
<metric name="Data916"/>
<metric name="Data917"/>
<metric name="Data918"/>
<metric name="Data919"/>
<metric name="Data92"/>
<metric name="Data920"/>
<metric name="Data921"/>
<metric name="Data922"/>
<metric name="Data923"/>
<metric name="Data924"/>
<metric name="Data925"/>
<metric name="Data926"/>
<metric name="Data927"/>
<metric name="Data928"/>
<metric name="Data929"/>
<metric name="Data93"/>
<metric name="Data930"/>
<metric name="Data931"/>
<metric name="Data932"/>
<metric name="Data933"/>
<metric name="Data934"/>
<metric name="Data935"/>
<metric name="Data936"/>
<metric name="Data937"/>
<metric name="Data938"/>
<metric name="Data939"/>
<metric name="Data94"/>
<metric name="Data940"/>
<metric name="Data941"/>
<metric name="Data942"/>
<metric name="Data943"/>
<metric name="Data944"/>
<metric name="Data945"/>
<metric name="Data946"/>
<metric name="Data947"/>
<metric name="Data948"/>
<metric name="Data949"/>
<metric name="Data95"/>
<metric name="Data950"/>
<metric name="Data951"/>
<metric name="Data952"/>
<metric name="Data953"/>
<metric name="Data954"/>
<metric name="Data955"/>
<metric name="Data956"/>
<metric name="Data957"/>
<metric name="Data958"/>
<metric name="Data959"/>
<metric name="Data96"/>
<metric name="Data960"/>
<metric name="Data961"/>
<metric name="Data962"/>
<metric name="Data963"/>
<metric name="Data964"/>
<metric name="Data965"/>
<metric name="Data966"/>
<metric name="Data967"/>
<metric name="Data968"/>
<metric name="Data969"/>
<metric name="Data97"/>
<metric name="Data970"/>
<metric name="Data971"/>
<metric name="Data972"/>
<metric name="Data973"/>
<metric name="Data974"/>
<metric name="Data975"/>
<metric name="Data976"/>
<metric name="Data977"/>
<metric name="Data978"/>
<metric name="Data979"/>
<metric name="Data98"/>
<metric name="Data980"/>
<metric name="Data981"/>
<metric name="Data982"/>
<metric name="Data983"/>
<metric name="Data984"/>
<metric name="Data985"/>
<metric name="Data986"/>
<metric name="Data987"/>
<metric name="Data988"/>
<metric name="Data989"/>
<metric name="Data99"/>
<metric name="Data990"/>
<metric name="Data991"/>
<metric name="Data992"/>
<metric name="Data993"/>
<metric name="Data994"/>
<metric name="Data995"/>
<metric name="Data996"/>
<metric name="Data997"/>
<metric name="Data998"/>
<metric name="Data999"/>
</event>
<event name="VirtualKeyboard.Open">
<owner>shend@chromium.org</owner>
<summary>
Collects the used input types with the Virtual Keyboard.
</summary>
<metric name="TextInputType">
<summary>
Type of a input field which the user is trying to use the Virtual Keyboard
on.
</summary>
<aggregation>
<history>
<index fields="profile.form_factor"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebAPK.Install" singular="True">
<owner>yfriedman@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
WebAPK usage metrics recorded on Install.
</summary>
<metric name="AppVersion">
<summary>
WebAPK app version that the user is installing.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Distributor" enum="WebApkDistributor">
<summary>
Distribution source of the WebAPK (browser, device policy, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Install" enum="Boolean">
<summary>
Recorded when this WebAPK is installed.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebAPK.SessionEnd" singular="True">
<owner>yfriedman@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
WebAPK usage metrics recorded when the WebAPK is backgrounded.
</summary>
<metric name="AppVersion">
<summary>
WebAPK app version that the user has installed.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Distributor" enum="WebApkDistributor">
<summary>
Distribution source of the WebAPK (browser, device policy, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SessionDuration">
<summary>
How long the user spent inside the WebAPK, in milliseconds. This will use
exponential bucketing (ie, count in 10s of milliseconds at first, then
100s, then seconds, 10s of seconds, minutes, 10 minutes, hours, 10 hours,
days, weeks, years.)
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebAPK.Uninstall" singular="True">
<owner>yfriedman@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
WebAPK usage metrics recorded on Uninstall.
</summary>
<metric name="AppVersion">
<summary>
WebAPK app version that the user has installed.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Distributor" enum="WebApkDistributor">
<summary>
Distribution source of the WebAPK (browser, device policy, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstalledDuration">
<summary>
How long between Install and Uninstall of a particular WebAPK, in seconds.
This will use exponential bucketing (ie, count in seconds at first, then
10s of seconds, minutes, 10 minutes, hours, 10 hours, days, weeks, years.)
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LifetimeLaunches" enum="WebApkLifetimeLaunchCount">
<summary>
Records how many times the WebAPK was launched between install and
uninstall (in coarse buckets).
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Uninstall" enum="Boolean">
<summary>
Recorded when this WebAPK is uninstalled.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebAPK.Visit" singular="True">
<owner>yfriedman@chromium.org</owner>
<owner>hartmanng@chromium.org</owner>
<owner>pkotwicz@chromium.org</owner>
<summary>
WebAPK usage metrics recorded during a user's interaction with the site.
</summary>
<metric name="AppVersion">
<summary>
WebAPK app version that the user has installed.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Distributor" enum="WebApkDistributor">
<summary>
Distribution source of the WebAPK (browser, device policy, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Launch" enum="Boolean">
<summary>
Recorded every time this WebAPK is launched.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="LaunchSource" enum="LaunchFromHomeScreenSource">
<summary>
Launch source of the WebAPK.
</summary>
<aggregation>
<history>
<index fields="metrics.Distributor"/>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="Webapp.AddToHomeScreen">
<owner>eirage@chromium.org&gt;</owner>
<owner>hartmanng@chromium.org</owner>
<owner>mwi-team-core@google.com</owner>
<summary>
A2HS usage metrics recorded when users started the add to home screen flow
on Android.
</summary>
<metric name="DisplayMode" enum="WebAppDisplayMode">
<summary>
Records the display mode of the added Webapp.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="SameAsManifestStartUrl" enum="Boolean">
<summary>
Record whether `start_url` for the Shortcuts is the same as the current
page url.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ShortcutReason" enum="InstallableStatusCode">
<summary>
Record an StatusCode for why this site is not WebAPK compatible.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebApp.DailyInteraction">
<owner>glenrob@chromium.org</owner>
<owner>benwells@chromium.org</owner>
<summary>
Features of a web app recorded at most once per day if a user interacted
with the web app. Recorded for installed and/or promotable (installable) web
apps unless noted otherwise on the metric. Keyed by start_url of the app.
Note: Changed in Feb 2023 to only record when App sync is enabled.
</summary>
<metric name="BackgroundDuration">
<summary>
Records the total duration (seconds, bucketed) that the app was open in
the background in the last calendar day. Summed during the day and emitted
if the date changes. Recorded only for installed web apps that are
currently open in a web app window, and all preinstalled web apps.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="CapturesLinks" enum="Boolean">
<summary>
Whether the user has enabled link capturing to open in-scope links in the
app window. Recorded only for installed web apps that are currently open
in a web app window, and all preinstalled web apps.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DisplayMode" enum="WebAppDisplayMode">
<summary>
Effective display mode of the web app (may be set by a manifest and
manifest may be overridden by the user).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ForegroundDuration">
<summary>
Records the total duration (seconds, bucketed) that the app was open in
the foreground in the last calendar day. Summed during the day and emitted
if the date changes. Recorded only for installed web apps that are
currently open in a web app window, and all preinstalled web apps.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Installed" enum="Boolean">
<summary>
Whether the web app is installed.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="InstallSource" enum="WebappInstallSource">
<summary>
Install source of the web app (omnibox, menu item, policy, etc).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="NumSessions">
<summary>
Records the total number of times the app was focused in the foreground in
the last calendar day. Recorded only for installed web apps that are
currently open in a web app window, and all preinstalled web apps.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PreinstalledWindowExperimentHasLaunchedBefore" enum="Boolean">
<summary>
Records whether the user has launched this preinstalled app before the
preinstalled app window vs tab experiment started. Recorded only if the
user was eligible for the experiment, which is new Chrome OS users.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="PreinstalledWindowExperimentUserGroup"
enum="WebAppPreinstalledWindowExperimentUserGroup">
<summary>
Records the user group that the user is in, for an experiment on opening
preinstalled apps in windows vs tabs. Recorded only if the user was
eligible for the experiment, which is new Chrome OS users.
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Promotable" enum="Boolean">
<summary>
Whether the web app is currently considered 'promotable' (passes Chrome
checks to be considered an installable web app).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Used" enum="Boolean">
<summary>
Records that the web app was used. Always true (or the event would not
have been emitted for this WebApp).
</summary>
<aggregation>
<history>
<index fields="profile.country"/>
<index fields="profile.form_factor"/>
<index fields="profile.system_ram"/>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="WebOTPImpact">
<owner>yigu@chromium.org</owner>
<owner>goto@chromium.org</owner>
<owner>web-identity@google.com</owner>
<summary>
Records in the browser process when a document is destroyed.
</summary>
<metric name="PhoneCollection" enum="PhoneCollectionState">
<summary>
Records whether a document collected phone number, and/or used WebOTP,
and/or used OneTimeCode (OTC) during its lifecycle.
</summary>
</metric>
</event>
<event name="WebRTC.AddressHarvesting">
<owner>hta@chromium.org</owner>
<summary>
Collects usage patterns that may indicate attempts to gather users' IP
addresses. A heuristic in the webrtc library tries to detect usages that may
indicate attempts to gather users' IP addresses rather than setting up
communication via WebRTC, and reports possible attempts.
</summary>
<metric name="UsagePattern">
<summary>
The usage pattern detected (an int encoding bit values). The bits are
defined in third_party/webrtc/pc/peerconnection.h, in the
&quot;PeerConnection::UsageEvent&quot; enum.
</summary>
</metric>
</event>
<event name="WebRTC.ComplexSdp">
<owner>hbos@chromium.org</owner>
<owner>guidou@chromium.org</owner>
<summary>
Logged when an application uses complex SDP in a WebRTC PeerConnection or
experiences an error attempting to parse SDP. Such cases will result in
errors if the application assumes the wrong default SDP format. This is an
important concern during the transition of the default SDP format from Plan
B to Unified Plan.
</summary>
<metric name="Category">
<summary>
A value that represents how complex/unparsable SDP is used. The categories
are defined in blink::ComplexSdpCategory.
</summary>
</metric>
</event>
<event name="Worker.ClientAdded">
<owner>cfredric@google.com</owner>
<summary>
Recorded when a client connects to an existing SharedWorker or
ServiceWorker; records the source IDs of the client (which may be a document
or another worker), and the type of the worker being connected to. In the
case of a ServiceWorker, this is recorded for each worker-client pair that
could communicate (whether or not they actually do) and this is only
recorded once the client is execution ready. Note also that emission can be
caused by the creation of a new ServiceWorker or a new ServiceWorker client.
</summary>
<metric name="ClientSourceId">
<summary>
The UKM source ID of the connecting client, as an integer.
</summary>
</metric>
<metric name="WorkerType" enum="WorkerType">
<summary>
The type of the worker that was connected to.
</summary>
</metric>
</event>
<event name="XR.PageSession" singular="True">
<obsolete>
Removed 2/2020
</obsolete>
<owner>xr-dev@chromium.org</owner>
<summary>
Records properties of page use in XR, including VR browsing and WebXR
presentation.
</summary>
<metric name="Duration">
<summary>
The approximate amount of time the user spends on a page in XR in seconds.
Times are reported accurately when low, for example, under a minute, and
get rounded to minutes and then hours as they get larger. This is done by
SessionTracker::GetRoundedDurationInSeconds.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EnteredFullscreen" enum="Boolean">
<summary>
A boolean that is set to 1 if the user requested fullscreen while in XR on
some element on the page.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="EnteredVROnPageReason" enum="VRStartReason">
<summary>
An enum that indicates that the user entered VR on this page and what
triggered the entry into VR, where 1 means VR was entered through headset
activation, and 2 means that request presentation triggered the entry into
VR.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="TimeOnPage">
<obsolete>
Deprecated.
</obsolete>
<summary>
Deprecated.
</summary>
</metric>
<metric name="WasOmniboxNavigation" enum="Boolean">
<summary>
A boolean that is set to 1 if this page was entered into the omnibox,
either manually or using autocomplete.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="WasVoiceSearchNavigation" enum="Boolean">
<summary>
A boolean that is set to 1 if this page was specifically requested and
recognized by a voice search.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="XR.WebXR" singular="True">
<owner>billorr@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<summary>
Records information about WebXR methods that were used in a single
navigation. The event will be recorded as the WebXR functions are called -
since the event is singular, the data that will eventualy be sent will
contain a union of metrics that were set in an event.
</summary>
<metric name="DidGetGamepads">
<obsolete>
Deprecated in M75.
</obsolete>
<summary>
Boolean value that indicates that the Gamepad API was used on a WebXR
site.
</summary>
</metric>
<metric name="DidGetXRInputSources" enum="Boolean">
<summary>
Boolean value that indicates that the WebXR input API was used.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DidRequestAvailableDevices" enum="Boolean">
<summary>
Boolean value that indicates that the API to enumerate devices was called.
This API is only exposed through WebVR.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DidRequestPose" enum="Boolean">
<summary>
Boolean value that indicates that poses were requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DidRequestPresentation" enum="Boolean">
<summary>
Boolean value that indicates that presentation was requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="DidUseNavigatorXR" enum="Boolean">
<summary>
Boolean value that indicates that the WebXR Device API was used.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ReturnedDevice" enum="Boolean">
<summary>
Boolean value that indicates that a device was returned by the API to
enumerate devices. This API is only exposed through WebVR.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="ReturnedPresentationCapableDevice" enum="Boolean">
<summary>
Boolean value that indicates that a device was returned by the API to
enumerate devices, and that the device supports presentation.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="XR.WebXR.PresentationSession">
<obsolete>
Deprecated 5/2019
</obsolete>
<owner>xr-dev@chromium.org</owner>
<summary>
Records data for a presentation session, where WebXR is running an exclusive
presentation to some device.
</summary>
<metric name="Duration">
<summary>
The approximate amount of time the user spends in presentation in seconds.
Times are reported accurately when low, for example, under a minute, and
get rounded to minutes and then hours as they get larger. This is done by
SessionTracker::GetRoundedDurationInSeconds.
</summary>
</metric>
<metric name="StartAction">
<summary>
An enum value to track specifically how the user got into XR presentation.
See `vr::PresentationStartAction` for enum type declaration. 0: Other,
catch all. 1: RequestFrom2DBrowsing, the page requested presentation while
Chrome was in 2D mode. 2: RequestFromVRBrowsing, the page requested
presentation while Chrome was in VR browsing mode. 3: HeadsetActivation,
the user activated the VR headset while in 2D browsing on the page, which
listens for headset activations to request presentation. 4: DeepLinkedApp
(Obsolete), The page was launched in Chrome from the VR system home (e.g.,
Daydream Home) and requested presentation.
</summary>
</metric>
</event>
<event name="XR.WebXR.Session">
<owner>billorr@chromium.org</owner>
<owner>bialpio@chromium.org</owner>
<owner>xr-dev@chromium.org</owner>
<owner>cassew@google.com</owner>
<summary>
When session ends, records data for a WebXR / WebVR session.
</summary>
<metric name="Duration">
<summary>
The approximate amount of time (in seconds) that elapsed from session
creation to session end. Times are reported accurately when low, for
example, under a minute, and get rounded to minutes and then hours as they
get larger. This is done by SessionTracker::GetRoundedDurationInSeconds.
For inline sessions, this might get pretty large.
</summary>
<aggregation>
<history>
<statistics>
<quantiles type="std-percentiles"/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="FeatureRequest.BoundedFloor" enum="XRFeatureRequestStatus">
<summary>
State of the 'bounded-floor' feature request.
</summary>
</metric>
<metric name="FeatureRequest.Local" enum="XRFeatureRequestStatus">
<summary>
State of the 'local' feature request.
</summary>
</metric>
<metric name="FeatureRequest.LocalFloor" enum="XRFeatureRequestStatus">
<summary>
State of the 'local-floor' feature request.
</summary>
</metric>
<metric name="FeatureRequest.Unbounded" enum="XRFeatureRequestStatus">
<summary>
State of the 'unbounded' feature request.
</summary>
</metric>
<metric name="FeatureRequest.Viewer" enum="XRFeatureRequestStatus">
<summary>
State of the 'viewer' feature request.
</summary>
</metric>
<metric name="FeatureUse.BoundedFloor" enum="Boolean">
<summary>
Whether the 'bounded-floor' feature was used during this session,
regardless of whether it was used successfully.
</summary>
</metric>
<metric name="FeatureUse.Local" enum="Boolean">
<summary>
Whether the 'local' feature was used during this session, regardless of
whether it was used successfully.
</summary>
</metric>
<metric name="FeatureUse.LocalFloor" enum="Boolean">
<summary>
Whether the 'local-floor' feature was used during this session, regardless
of whether it was used successfully.
</summary>
</metric>
<metric name="FeatureUse.Unbounded" enum="Boolean">
<summary>
Whether the 'unbounded' feature was used during this session, regardless
of whether it was used successfully.
</summary>
</metric>
<metric name="FeatureUse.Viewer" enum="Boolean">
<summary>
Whether the 'viewer' feature was used during this session, regardless of
whether it was used successfully.
</summary>
</metric>
<metric name="IsLegacyWebVR" enum="Boolean">
<obsolete>
Removed 2/2020
</obsolete>
<summary>
Boolean value indicating whether a session was created using the legacy
WebVR API rather than WebXR.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Mode" enum="XRSessionMode">
<summary>
An enum value specifying WebXR session's mode. See `device::SessionMode`
for enum type declaration. 0: Unknown, catch all. 1: Inline session. 2:
Immersive VR session. 3: Immersive AR session.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
<event name="XR.WebXR.SessionRequest">
<owner>xr-dev@chromium.org</owner>
<owner>cassew@google.com</owner>
<summary>
Recorded when promise returned by `requestSession` gets resolved / rejected.
</summary>
<metric name="Feature.BoundedFloor" enum="XRFeatureRequestStatus">
<summary>
State of the 'bounded-floor' feature request.
</summary>
</metric>
<metric name="Feature.Local" enum="XRFeatureRequestStatus">
<summary>
State of the 'local' feature request.
</summary>
</metric>
<metric name="Feature.LocalFloor" enum="XRFeatureRequestStatus">
<summary>
State of the 'local-floor' feature request.
</summary>
</metric>
<metric name="Feature.Unbounded" enum="XRFeatureRequestStatus">
<summary>
State of the 'unbounded' feature request.
</summary>
</metric>
<metric name="Feature.Viewer" enum="XRFeatureRequestStatus">
<summary>
State of the 'viewer' feature request.
</summary>
</metric>
<metric name="Mode" enum="XRSessionMode">
<summary>
An enum value that indicates that the `requestSession` API was called to
request session with this mode. See `device::SessionMode` for enum type
declaration. 0: Unknown, catch all. 1: Inline session was requested. 2:
Immersive VR session was requested. 3: Immersive AR session was requested.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
<metric name="Status" enum="XRSessionRequestStatus">
<summary>
An enum value that describes the result of the call to `requestSession`
method. See `` for enum type declaration. 0: Success. 1: Other failure.
</summary>
<aggregation>
<history>
<statistics>
<enumeration/>
</statistics>
</history>
</aggregation>
</metric>
</event>
</ukm-configuration>