blob: 7654b2cb80080293894f02b7ff0b12a66676aaea [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 Browser histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="ContinuousSearchExperiment">
<variant name=".Discover">
<obsolete>
Deprecated as of 2021-06.
</obsolete>
</variant>
<variant name=".News">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
</variant>
<variant name=".Organic">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
</variant>
</variants>
<variants name="TabSwitchingType">
<variant name=".NoSavedFrames"
summary="The time from the input timestamp on a tab switch, until the
frame is presented on the screen when there is no saved frame
in the cache."/>
<variant name=".NoSavedFrames_Loaded"
summary="Same as NoSavedFrames with the destination tab being loaded
(frozen or not frozen)"/>
<variant name=".NoSavedFrames_Loaded_Frozen"
summary="Same as NoSavedFrames with the destination tab being loaded and
frozen.">
<obsolete>
Frozen is no longer a supported state.
</obsolete>
</variant>
<variant name=".NoSavedFrames_Loaded_NotFrozen"
summary="Same as NoSavedFrames with the destination tab being loaded and
not frozen.">
<obsolete>
Frozen is no longer a supported state.
</obsolete>
</variant>
<variant name=".NoSavedFrames_NotLoaded"
summary="Same as WithSavedFrames with the destination tab being
unloaded."/>
<variant name=".WithSavedFrames"
summary="There is a saved frame in the cache when the tab switch
starts."/>
</variants>
<histogram name="Browser.AnyWindowHasName" enum="Boolean"
expires_after="2022-09-30">
<owner>ellyjones@chromium.org</owner>
<owner>lgrey@chromium.org</owner>
<summary>
Whether any browser window in the current session has a user-set name.
Logged once every histogram recording.
</summary>
</histogram>
<histogram name="Browser.BitmapFetcher.Decode" units="ms"
expires_after="2022-05-08">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>The time elapsed decoding an image using BitmapFetcher.</summary>
</histogram>
<histogram name="Browser.BitmapFetcher.Fetch" units="ms"
expires_after="2022-03-06">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The time elapsed fetching an image from a URL using BitmapFetcher.
</summary>
</histogram>
<histogram name="Browser.ChromeOS.HatsSatisfaction{Survey}" units="score"
expires_after="2022-08-01">
<owner>aalsum@chromium.org</owner>
<owner>cros-telemetry@google.com</owner>
<summary>
Records the overall satisfaction score for HaTS, to be analyzed against
other OS metrics like performance or number of crashes. There is one score
per survey type.
</summary>
<token key="Survey">
<variant name=".ArcGames"/>
<variant name=".Audio"/>
<variant name=".Ent"/>
<variant name=".General"/>
<variant name=".OnboardingExperience"/>
<variant name=".SmartLock"/>
<variant name=".Stability"/>
<variant name=".Unlock"/>
</token>
</histogram>
<histogram name="Browser.ChromeOS.HatsStatus" enum="HatsStatus"
expires_after="2022-08-01">
<owner>aalsum@chromium.org</owner>
<owner>cros-telemetry@google.com</owner>
<summary>
Records the stage up to which the user interacted with the HaTS Chrome OS
survey. This is needed in addition to the Hats metrics data since Chrome OS
relies on client side logic to roll the dice for device selection. This is
recorded when the Hats pipeline ends processing, which is usually when the
controller is destroyed.
</summary>
</histogram>
<histogram
name="Browser.ContinuousSearch.BackNavigationToSrp{ExperimentCategory}"
units="count" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records the number of back navigations to the Google search result page
while in a search session. It is emitted when the session is considered
ended. Different actions that cause the search session to end include
navigating away from SRP (or one of the pages linked in SRP), closing the
SRP tab and closing the browser.
</summary>
<token key="ExperimentCategory">
<variant name="">
<obsolete>
Deprecated 2021-02. Replaced by experiment arm suffixes.
</obsolete>
</variant>
<variant name=".News"/>
<variant name=".Organic"/>
</token>
</histogram>
<histogram name="Browser.ContinuousSearch.DismissalCount" units="count"
expires_after="2021-12-12">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records the number of dismissals of the Continuous Search feature. It is
emitted when the Continuous Search UI is dismissed via the dismiss button.
This metric is only emitted if permanent dismissal is enabled and the UI is
not permanently dismissed.
</summary>
</histogram>
<histogram name="Browser.ContinuousSearch.NumberOfSearchResultsExtracted"
units="count" expires_after="2022-04-17">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records the number of search results extracted. It is emitted when results
for a Google search results page are extracted by the browser when the
continuous search mode is enabled.
</summary>
</histogram>
<histogram name="Browser.ContinuousSearch.SearchResultExtractionStatus"
enum="SearchResultExtractorClientStatus" expires_after="2022-04-10">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records the status of the search result extraction. It is emitted when
results for a Google search results page are extracted by the browser when
the continuous search mode is enabled.
</summary>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.CarouselScrolled2{ExperimentCategory}"
enum="Boolean" expires_after="2021-09-20">
<obsolete>
Obsoleted as of 2021-07. It is replaced by
Browser.ContinuousSearch.UI.CarouselScrolled3 as the emission method has
changed.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether the UI was scrolled while being shown. It is emmited when
the CSN session is considered ended. Actions that can end the session
include closing the tab, navigating away from the CSN url list or dismissing
the UI.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.CarouselScrolled3{ExperimentCategory}"
enum="Boolean" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether the UI was scrolled while being shown. It is emmited when
the CSN session is considered ended. Actions that can end the session
include closing the tab, navigating away from the CSN url list or dismissing
the UI. This ignores programmatic scrolls of the carousel.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.CarouselScrolled{ExperimentCategory}"
enum="Boolean" expires_after="2021-09-20">
<obsolete>
Obsoleted as of 2021-07. It is replaced by
Browser.ContinuousSearch.UI.CarouselScrolled2 as the emission method has
changed.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether the UI was scrolled while being shown. It it emmited when
the UI gets hidden.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.ClickedItemPosition{ExperimentCategory}"
units="position" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records the 0-indexed position of list item in the UI when the user clicks
on the item.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.DismissButtonClicked{ExperimentCategory}"
enum="Boolean" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether the UI dismiss button was pressed while UI was being shown.
It is emmited when the CSN session is considered ended. Actions that can end
the session include closing the tab, navigating away from the CSN url list
or dismissing the UI.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.ItemClickedAtLeastOnce{ExperimentCategory}"
enum="Boolean" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether any item was pressed while UI was being shown. It is emmited
when the CSN session is considered ended. Actions that can end the session
include closing the tab, navigating away from the CSN url list or dismissing
the UI.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram
name="Browser.ContinuousSearch.UI.ProviderButtonClicked{ExperimentCategory}"
enum="Boolean" expires_after="2021-12-20">
<obsolete>
Obsoleted as of 2021-11. The experiment has ended.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<summary>
Records whether the provider button was pressed while UI was being shown. It
is emmited when the CSN session is considered ended. Actions that can end
the session include closing the tab, navigating away from the CSN url list
or dismissing the UI.
</summary>
<token key="ExperimentCategory" variants="ContinuousSearchExperiment"/>
</histogram>
<histogram name="Browser.DarkModeStatus" enum="DarkModeStatus"
expires_after="2022-08-29">
<owner>lgrey@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Whether the user's system is in dark mode, light mode, or if this choice is
unavailable due to lack of system support. Updated every UMA upload.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Capture.CompressedOnDiskSize" units="KB"
expires_after="2022-06-05">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the size of a compressed on-disk capture for the paint preview after
a proto is written to disk if compressed.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Capture.NumberOfFramesCaptured"
units="units" expires_after="2022-06-05">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the number of frames captured by a paint preview if it succeeded.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Capture.Success" enum="BooleanSuccess"
expires_after="2022-06-05">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records a boolean indicating whether a capture attempt was successful.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Capture.TotalCaptureDuration" units="ms"
expires_after="2022-06-05">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the total time spent capturing a paint preview of a page. This
includes capture and serialization of all frames and IPC time.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Capture.UncompressedOnDiskSize"
units="KB" expires_after="2021-10-31">
<obsolete>
Obsoleted on 2021-11-09 as uncompressed captures were never being stored.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the size of an uncompressed on-disk capture for the paint preview
after a proto is written to disk if not compressed.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.CaptureExperiment.CompressedOnDiskSize"
units="KB" expires_after="2020-12-20">
<obsolete>
Obsoleted on 2020-11-17 as corresponding experiment code was removed and the
experiment wrapped up.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the compressed on-disk size of the capture if it succeeded for the
capture experiment.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.CaptureExperiment.Success"
enum="BooleanSuccess" expires_after="2020-12-20">
<obsolete>
Obsoleted on 2020-11-17 as corresponding experiment code was removed and the
experiment wrapped up.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the ratio of success to failure for the Paint Preview capture
experiment.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Player.CompositorProcessStartedCorrectly"
units="BooleanSuccess" expires_after="2022-04-17">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records if the paint preview compositor process started correctly.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Player.CompositorProcessStartupTime"
units="ms" expires_after="2022-07-11">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the time it took to start the paint preview compositor process.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.Player.LinkClicked"
units="BooleanSuccess" expires_after="2022-06-12">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>Records when a link is clicked in the paint preview player.</summary>
</histogram>
<histogram name="Browser.PaintPreview.Player.TimeToFirstBitmap" units="ms"
expires_after="2022-07-11">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the time taken to from the request to start the compositor process
to the first bitmap being loaded.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.CompositorFailureReason"
enum="TabbedPaintPreviewCompositorFailureReason" expires_after="2022-06-12">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the the reason for exiting the compositor process for the
TabbedPaintPreviewPlayer. Recorded when the compositor returns an error or
disconnects.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.ExitCause"
enum="TabbedPaintPreviewExitCause" expires_after="2022-06-05">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the the reason for exiting TabbedPaintPreviewPlayer. Recorded when
paint preview is removed.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.FirstPaintBeforeTabLoad"
units="Boolean" expires_after="2022-04-10">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records whether paint preview was drawn before the tab finished loading.
Recorded when tab has finished loading.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.HadCapture" units="Boolean"
expires_after="2022-06-19">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records whether a paint preview exists. Recorded when attempting to show a
preview on startup. This in conjuction with CompositorFailureReason gives
the total number of failures to show a paint preview.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.SnackbarCount" units="units"
expires_after="2022-06-12">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the number of times that the upgrade snackbar was shown in a session
of TabbedPaintPreviewPlayer. Recorded when paint preview is removed.
</summary>
</histogram>
<histogram name="Browser.PaintPreview.TabbedPlayer.TimeToFirstBitmap"
units="ms" expires_after="2022-07-11">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the time taken to from actvity creation to the first bitmap being
shown. Recorded on first paint preview paint event.
</summary>
</histogram>
<histogram
name="Browser.PaintPreview.TabbedPlayer.UpTime{TabbedPaintPreviewPlayerUptime}"
units="ms" expires_after="2022-03-31">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the length of the time that a session of TabbedPaintPreviewPlayer
lasts. Recorded when paint preview is removed.
{TabbedPaintPreviewPlayerUptime}
</summary>
<token key="TabbedPaintPreviewPlayerUptime">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
<variant name=".RemovedByCompositorFailure"
summary="Removed by compositor failure"/>
<variant name=".RemovedByLinkClick" summary="Removed by link click"/>
<variant name=".RemovedByNavigation" summary="Removed by navigation"/>
<variant name=".RemovedByPullToRefresh"
summary="Removed by pull to refresh"/>
<variant name=".RemovedBySnackBar" summary="Removed by SnackBar"/>
<variant name=".RemovedOnAccessibilityNotSupported"
summary="Removed on accessibility not supported"/>
<variant name=".RemovedOnLoad" summary="Removed on load"/>
<variant name=".RemovedOnOfflineAvailable"
summary="Removed on offline page available"/>
<variant name=".RemovedOnTabDestroy" summary="Removed on tab destroy"/>
</token>
</histogram>
<histogram name="Browser.PaintPreview.TabService.DiskUsageAtStartup" units="KB"
expires_after="2022-03-06">
<owner>ckitagawa@chromium.org</owner>
<owner>yashard@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records the total disk usage by the Paint Preview Tab Service at startup of
the profile keyed service.
</summary>
</histogram>
<histogram name="Browser.Responsiveness.IOJanksTotalPerMinute" units="janks"
expires_after="2022-06-19">
<owner>gab@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
Similar to Browser.Responsiveness.IOJankyIntervalsPerMinute but sums janky
events across all foreground threads over the monitored minute rather than
considering each interval a boolean. This aims to cover a blind spot of
IOJankyIntervalsPerMinute as it cannot see an improvement where we unblock
19/20 threads performing I/O. Not reported across system sleep. More details
@ https://bit.ly/chrome-io-jank-metric
</summary>
</histogram>
<histogram name="Browser.Responsiveness.IOJankyIntervalsPerMinute"
units="janks" expires_after="2022-06-12">
<owner>gab@chromium.org</owner>
<owner>olivierli@chromium.org</owner>
<summary>
This metric is emitted every minute. It reports a number between 0 and 60
which corresponds to the number of 1 second intervals during the monitored
minute to which a stalled foreground thread
ScopedBlockingCall(BlockingType::MAY_BLOCK) was attributed. A stalled call
is first attributed to the interval in which it began, and is attributed to
a number of intervals equal to the length of the call, rounded to the
nearest second. (Before http://crrev.com/c/2314873, the length was truncated
rather than rounded.) This aims to capture moments where the main thread is
responsive but the application is not (because things aren't loading). Not
reported across system sleep. More details @
https://bit.ly/chrome-io-jank-metric
</summary>
</histogram>
<histogram name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds2"
units="janks" expires_after="2022-05-15">
<!-- JankyIntervalsPerThirtySeconds3 is on probation to replace this -->
<owner>erikchen@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
This metric is emitted every 30 seconds after main message loop start, when
there is user activity. Each 30 second duration is divided into 100ms
intervals. This metric counts the number of these intervals that were
&quot;janky&quot;. An interval is janky if during it the UI or IO thread
executes an &quot;important&quot; task that was queued more than 100 ms ago,
or a non-important task or a native event handler that started executing
more than 100 ms ago. See
https://docs.google.com/document/d/1vDSGFvJblh7yJ3U3RVB_7qZLubyfTbQdQjuN1GoUNkc/edit
for more details.
Update (M82 March 2020): Stopped recording background intervals on Android.
</summary>
</histogram>
<histogram name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds3"
units="janks" expires_after="2022-06-05">
<!-- on probation: expected to graduate as a go/chrome-browser-guiding-metrics -->
<owner>etienneb@chromium.org</owner>
<owner>gab@chromium.org</owner>
<summary>
This metric is emitted every 30 seconds after main message loop start, when
there is user activity. Each 30 second duration is divided into 100ms
intervals. This metric counts the number of these intervals that were
&quot;janky&quot;. An interval is janky if during it the UI or IO thread
executes an &quot;important&quot; task that was queued more than 100 ms ago,
or a non-important task or a native event handler that started executing
more than 100 ms ago. See
https://docs.google.com/document/d/1vDSGFvJblh7yJ3U3RVB_7qZLubyfTbQdQjuN1GoUNkc/edit
for more details.
JankyIntervalsPerThirtySeconds3 differs from JankyIntervalsPerThirtySeconds2
in that it doesn't start recording until the first 30 seconds window *after*
the main message loop first reached idle. This avoids considering all tasks
queued during startup as janky and makes for a more accurate ongoing jank
metric.
</summary>
</histogram>
<histogram
name="Browser.Responsiveness.JankyIntervalsPerThirtySeconds{JankyIntervalsPerThirtySeconds}"
units="janks" expires_after="never">
<!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
<owner>erikchen@chromium.org</owner>
<owner>chrome-analysis-team@google.com</owner>
<summary>
This metric is emitted every 30 seconds [when there is user activity]. Each
30 second duration is divided into 100ms intervals. This metric counts the
number of these intervals that were &quot;janky&quot;. See
https://docs.google.com/document/d/1vDSGFvJblh7yJ3U3RVB_7qZLubyfTbQdQjuN1GoUNkc/edit
for more details.
On desktop platforms, this metric measures native events, as well as tasks
posted to the UI and IO threads of the browser process. On Android, this
metric only measures tasks posted to the UI and IO threads.
Update (October 27th 2019): The responsiveness::Watcher emitting this metric
previously started observation before the main message loop was running,
this resulted in the 99th percentile being mostly comprised of slow startups
(before the message loop gets to run). This was fixed and a fake-improvement
in the high percentiles is expected when the fix goes live.
Update (M82 March 2020): Stopped recording background intervals on Android.
Due to a bug, this metric does not measure long queueing time as jankiness.
It only measures jankiness as individual tasks taking a long time to run.
Given that it's a long-standing bug, this metric will not be modified. We
are testing a new metric
Browser.Responsiveness.JankyIntervalsPerThirtySeconds2 that correctly
accounts for queueing time. See
https://groups.google.com/a/google.com/forum/#!topic/chrome-scheduler/X32gKl6fW2A
for more details.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
{JankyIntervalsPerThirtySeconds}
</summary>
<token key="JankyIntervalsPerThirtySeconds">
<variant name=""/>
<variant name=".Initial"
summary="The first 30 seconds interval after the message loop starts."/>
<variant name=".NonStartup"
summary="Does not include jank in the first 30 seconds [startup].">
<obsolete>
This metric is now only recorded after the main message loop starts and
no longer distinguishes the first 30 seconds as &quot;startup&quot;.
Startup.BrowserMessageLoopStartTime can be used for the startup phase
(before the loop is running) and Startup.FirstWebContents.NonEmptyPaint3
can be used for the user-visible startup performance.
</obsolete>
</variant>
<variant name=".NoSuspend"
summary="Only counts jank without power suspend/resume.">
<obsolete>
This metric is now only recorded after the main message loop starts and
no longer distinguishes the first 30 seconds as &quot;startup&quot;.
Startup.BrowserMessageLoopStartTime can be used for the startup phase
(before the loop is running) and Startup.FirstWebContents.NonEmptyPaint3
can be used for the user-visible startup performance.
</obsolete>
</variant>
<variant name=".Periodic" summary="All intervals after OnFirstIdle()."/>
<variant name=".Startup"
summary="Only counts jank in the first 30 seconds [startup].">
<obsolete>
This metric is now only recorded after the main message loop starts and
no longer distinguishes the first 30 seconds as &quot;startup&quot;.
Startup.BrowserMessageLoopStartTime can be used for the startup phase
(before the loop is running) and Startup.FirstWebContents.NonEmptyPaint3
can be used for the user-visible startup performance.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.InputEventToSelectionTime{TabSwitchInputLatency}"
units="microseconds" expires_after="2019-08-31">
<owner>ejoe@google.com</owner>
<owner>jonross@chromium.org</owner>
<summary>
The time between input event timestamp for tab switch and when the
TabStripModel begins processing the switch. {TabSwitchInputLatency}
</summary>
<token key="TabSwitchInputLatency">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
<variant name=".Keyboard"
summary="The time it takes from receiving a keyboard input event that
leads to the active tab changing to just before the TabStrip
notifies its observers of the change."/>
<variant name=".Mouse"
summary="The time it takes from receiving a mouse input event that
leads to the active tab changing to just before the TabStrip
notifies its observers of the change."/>
<variant name=".Touch"
summary="The time it takes from receiving a touch input event that
leads to the active tab changing to just before the TabStrip
notifies its observers of the change."/>
<variant name=".Wheel"
summary="The time it takes from receiving a mouse scroll event that
leads to the active tab changing to just before the TabStrip
notifies its observers of the change."/>
</token>
</histogram>
<histogram name="Browser.Tabs.SelectionToVisibilityRequestTime"
units="microseconds" expires_after="2022-06-26">
<owner>sadrul@chromium.org</owner>
<owner>sky@chromium.org</owner>
<summary>
The time it takes for the browser to request a tab to be visible. Note that
this only measures the time from the browser deciding to make the tab
visible (after a click, or keyboard-shortcut to switch tabs), until the tab
is requested to become visible. The time it takes to actually make the tab
visible and show on screen is measured in a separate metric, in
Browser.Tabs.TotalSwitchDuration2.
This metric uses UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES so only users with
high resolution clocks will report this metric.
</summary>
</histogram>
<histogram name="Browser.Tabs.TabSwitchHasRWHV" enum="BooleanExists"
expires_after="2022-04-26">
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Reported at the beginning of every tab switch to record whether a
RenderWidgetHostView existed for the target tab. If not, the
Browser.Tabs.TabSwitchResult family of metrics will be recorded for the tab
switch if the TabSwitchMetrics2 feature is enabled (new behaviour) but not
if it is disabled (existing behaviour). So the count of
Browser.Tabs.TabSwitchHasRWHV == false should equal the number of extra
Browser.Tabs.TabSwitchResult records received with the feature enabled.
</summary>
</histogram>
<histogram name="Browser.Tabs.TabSwitchResult2{TabSwitchingType}"
enum="TabSwitchResult" expires_after="2022-04-26">
<owner>fdoray@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Whether a frame was presented after a tab switch event. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.TabSwitchResult{TabSwitchingType}"
enum="TabSwitchResult" expires_after="2022-04-26">
<owner>fdoray@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Whether a frame was presented after a tab switch event. Not recorded in
several cases described at http://shortn/_1wrMKYQjzu. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.TotalIncompleteSwitchDuration2{TabSwitchingType}"
units="ms" expires_after="2022-04-26">
<owner>fdoray@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The time between a tab switch input event timestamp and when the tab is
hidden, if no frame is presented in the meantime. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.TotalIncompleteSwitchDuration{TabSwitchingType}"
units="ms" expires_after="2022-04-26">
<owner>fdoray@chromium.org</owner>
<owner>jonross@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The time between a tab switch input event timestamp and when the tab is
hidden, if no frame is presented in the meantime. Not recorded in several
cases described at http://shortn/_1wrMKYQjzu. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.TotalSwitchDuration2{TabSwitchingType}"
units="ms" expires_after="2022-04-26">
<owner>ejoe@google.com</owner>
<owner>jonross@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The time between the input event timestamp and the frame presentation time
on a tab switch. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.Tabs.TotalSwitchDuration{TabSwitchingType}" units="ms"
expires_after="2022-04-26">
<owner>ejoe@google.com</owner>
<owner>jonross@chromium.org</owner>
<owner>joenotcharles@google.com</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The time between the input event timestamp and the frame presentation time
on a tab switch. Not recorded in several cases described at
http://shortn/_1wrMKYQjzu. {TabSwitchingType}
</summary>
<token key="TabSwitchingType" variants="TabSwitchingType">
<variant name="">
<obsolete>
Base histogram. Use suffixes of this histogram instead.
</obsolete>
</variant>
</token>
</histogram>
<histogram name="Browser.WindowCount.Guest" units="units"
expires_after="2022-06-19">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
Number of open guest windows at the same time. Recorded when a new guest
window is created. Please note that this metric double counts the lower
numbers, meaning that if user opens three windows (without closing any in
between), then buckets 1, 2, and 3 will all be incremented in turn.
</summary>
</histogram>
<histogram name="Browser.WindowCount.Incognito" units="units"
expires_after="2022-06-19">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-privacy-core@google.com</owner>
<summary>
Number of open incognito windows at the same time. Recorded when a new
incognito window is created. Please note that this metric double counts the
lower numbers, meaning that if user opens three windows (without closing any
in between), then buckets 1, 2, and 3 will all be incremented in turn.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.BackgroundTime" units="ms"
expires_after="2021-04-04">
<obsolete>
Obsoleted on 2021-01-22 as corresponding experiment code was removed and the
experiment wrapped up.
</obsolete>
<owner>johnidel@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary>
Record the time spent in the background after RenderProcessHost
initialization of the process. Recorded when the RenderProcessHost for the
process is destroyed.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildCodeIntegrityFailures"
enum="RendererType" expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>
Count of renderer process terminations due to a code integrity failure,
grouped by type. This is only reported on Windows.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildCrashes" enum="RendererType"
expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>Count of renderer process crashes grouped by type.</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildKills" enum="RendererType"
expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>Count of renderer process kills grouped by type.</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType"
expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>oshima@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>
Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
which is a strong signal of out of memory on Chrome OS, grouped by renderer
type.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildLaunchFailureCodes"
enum="LaunchErrorCodes" expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>
The launch error codes for failed renderer process launches.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.ChildLaunchFailures"
enum="RendererType" expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>Count of renderer process launch failures grouped by type.</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.DisconnectedAlive"
enum="RendererType" expires_after="never">
<!-- expires-never: For monitoring stability regressions. -->
<owner>wfh@chromium.org</owner>
<owner>chrome-stability-core@google.com</owner>
<summary>
Count of renderer process crashes that we miscounted because we took the
exit code too early. Grouped by type.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.FramePrioritiesSeen"
enum="FramePrioritiesSeen" expires_after="2021-06-13">
<obsolete>
Obsoleted on 2021-01-22 as corresponding experiment code was removed and the
experiment wrapped up.
</obsolete>
<owner>csharrison@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary>
Determines what combination of low and normal priority frames were attached
to a render process during its lifetime. Recorded when the host for the
render process is destroyed.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.InvisibleMediaStreamFrameDepth"
units="frame_depth" expires_after="M72">
<owner>boliu@chromium.org</owner>
<owner>alexmos@chromium.org</owner>
<summary>
Recorded at most once per renderer process when it first becomes invisible
and has media stream. Record the frame depth of the process. Note this
metric is only meaningful when some form of OOPIF is enabled; otherwise
frame depth is always 0.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.LabeledInTaskManager"
units="BooleanLabeledRendererTask" expires_after="2022-09-01">
<owner>creis@chromium.org</owner>
<owner>avi@chromium.org</owner>
<summary>
Reports false each time the Task Manager displays an unlabeled renderer
process using the fallback task provider, indicating that a type of renderer
process is missing a task provider, which is a bug. For comparison, this
reports true when renderer processes are properly labeled by a primary task
provider. These values are only reported when the Task Manager is open. This
can be removed when no unlabeled cases remain, per https://crbug.com/739782.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.SpareProcessMaybeTakeAction"
enum="SpareProcessMaybeTakeAction" expires_after="2022-07-11">
<owner>alexmos@chromium.org</owner>
<owner>lukasza@chromium.org</owner>
<summary>
Records what happens when an attempt is made to use a spare
RenderProcessHost - logs that either the attempt succeeded or why it failed.
</summary>
</histogram>
<histogram name="BrowserRenderProcessHost.TotalTime" units="ms"
expires_after="2021-06-06">
<obsolete>
Obsoleted on 2021-01-22 as corresponding experiment code was removed and the
experiment wrapped up.
</obsolete>
<owner>johnidel@chromium.org</owner>
<owner>chrome-ads-histograms@google.com</owner>
<summary>
Record the lifetime of the RenderProcessHost after initialization of the
process. Recorded when the RenderProcessHost for the process is destroyed.
</summary>
</histogram>
<histogram name="BrowserServices.BrowsableIntentCheck" units="ms"
expires_after="M104">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when we check whether a Trusted Web Activity client app can handle
Browsable Intents. It measures how long consulting the Android
PackageManager takes.
</summary>
</histogram>
<histogram name="BrowserServices.ClientAppDataLoad" units="ms"
expires_after="2022-04-24">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when any Android app is uninstalled or has its data cleared. This
measures how long it takes to read data from Preferences to determine
whether we need to act.
</summary>
</histogram>
<histogram name="BrowserServices.ServiceTabResolveInfoQuery" units="ms"
expires_after="2022-05-01">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when an Android background service attempts to create a Tab. We
time how long the Android package manager queryIntentActivities call takes.
</summary>
</histogram>
<histogram name="BrowserServices.TwaOpenTime.V2" units="ms"
expires_after="2022-04-17">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when a TrustedWebActivity is paused, recording the time since it
had been resumed.
</summary>
</histogram>
<histogram name="BrowserServices.VerificationResult"
enum="BrowserServicesVerificationResult" expires_after="2022-05-01">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
The result of Digital Asset Link verification performed when starting a
Trusted Web Activity.
</summary>
</histogram>
<histogram name="BrowserServices.VerificationTime.Offline" units="ms"
expires_after="M104">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when Trusted Web Activity verification completes. Records how long
it takes the device to realise it is offline and fall back to the cached
result.
</summary>
</histogram>
<histogram name="BrowserServices.VerificationTime.Online" units="ms"
expires_after="M104">
<owner>peconn@chromium.org</owner>
<owner>peter@chromium.org</owner>
<summary>
Triggered when Trusted Web Activity verification completes. Records how long
verification took when online.
</summary>
</histogram>
<histogram name="BrowserSwitcher.AlternativeBrowser" enum="BrowserType"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records which browser the Legacy Browser Support feature is configured to
open (which defaults to IE). Recorded on browser startup, and when the value
changes. Only measured when Legacy Browser Support is enabled via the
BrowserSwitcher* policies. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.CacheFile.MkDirSuccess" enum="BooleanSuccess"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records whether the &quot;AppData/Local/Google/BrowserSwitcher&quot;
directory was successfully created. Windows only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.CacheFile.MkTempSuccess" enum="BooleanSuccess"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records whether a temp file in
&quot;AppData/Local/Google/BrowserSwitcher&quot; the directory was
successfully created. Windows only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.CacheFile.MoveSuccess" enum="BooleanSuccess"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records whether the temp file in
&quot;AppData/Local/Google/BrowserSwitcher&quot; directory was successfully
moved to its final destination (&quot;cache.dat&quot;) after writing its
contents. Windows only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.Decision" enum="BooleanBrowserSwitch"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
On navigation and redirect, whether to switch browsers or not. Only measured
when Legacy Browser Support is enabled via the BrowserSwitcher* policies.
When this is true, Chrome attempts to launch an alternative browser
(typically IE) with the navigation URL. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.DecisionTime" units="ms"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
On navigation and redirect, records how long it took to compute a decision
(stay in Chrome/open in IE). Only measured when Legacy Browser Support is
enabled via the BrowserSwitcher* policies. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.ExternalGreylistSize" units="rules"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Number of rules that come from an external greylist XML file. Measured when
the sitelist is loaded during browser startup. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.ExternalSitelistSize" units="rules"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Number of rules that come from an external sitelist XML file. Measured when
the sitelist is loaded during browser startup. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.GreylistSize" units="rules"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Number of rules in the BrowserSwitcherUrlGreylist policy. Measured when the
policy is loaded. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.GreylistWildcard" enum="BooleanPresent"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Whether there is a wildcard (&quot;*&quot;) rule in the
BrowserSwitcherUrlGreylist policy. Measured when the
BrowserSwitcherUrlGreylist policy gets updated. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.IeemSitelistSize" units="rules"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Number of rules that come from Internet Explorer Enterprise Mode's sitelist.
Measured when the sitelist is loaded during browser startup. Windows only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.LaunchSuccess" enum="BooleanSuccess"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records whether an attempt to launch an alternate browser failed or
succeeded. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.LaunchTime" units="ms"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Records how long it took to launch an alternate browser (regardless of
whether it failed or succeeded). Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.UrlListSize" units="rules"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Number of rules in the BrowserSwitcherUrlList policy. Measured when the
policy gets updated. Desktop Chrome only.
</summary>
</histogram>
<histogram name="BrowserSwitcher.UrlListWildcard" enum="BooleanPresent"
expires_after="2022-06-05">
<owner>nicolaso@chromium.org</owner>
<owner>pastarmovj@chromium.org</owner>
<summary>
Whether there is a wildcard (&quot;*&quot;) rule in the
BrowserSwitcherUrlList policy. Measured when the BrowserSwitcherUrlList
policy gets updated. Desktop Chrome only.
</summary>
</histogram>
<histogram name="InfoBar.Shown" enum="InfoBarIdentifier" expires_after="never">
<!-- expires-never: Required as long as infobars exist. -->
<owner>rkaplow@chromium.org</owner>
<owner>src/components/infobars/OWNERS</owner>
<summary>
Records how many times a particular infobar was shown to the user. On
Android, the infobar may be partially hidden due to stacking. On desktop, a
tab with a visible infobar will increment this histogram every time the user
switches away from the tab and back to it with the infobar still visible.
</summary>
</histogram>
<histogram name="InfoBar.Shown.Hidden" enum="InfoBarIdentifier"
expires_after="never">
<!-- expires-never: Required as long as infobars exist. -->
<owner>mdjones@chromium.org</owner>
<summary>
Records how many times a particular infobar was displayed in a hidden state
due to at least one other infobar existing. If there are no existing
infobars, but the user scrolls at the exact moment a new infobar is added,
the infobar may be hidden, but not recorded in this metric. Reliably
triggering and detecting this combination is tricky so it isn't done. Only
recorded on Android.
</summary>
</histogram>
<histogram name="InfoBar.Shown.Hiding" enum="InfoBarIdentifier"
expires_after="never">
<!-- expires-never: Required as long as infobars exist. -->
<owner>mdjones@chromium.org</owner>
<summary>
Records how many times a particular infobar was visible and hiding a new
infobar behind it. Only recorded on Android.
</summary>
</histogram>
<histogram name="InfoBar.Shown.Visible" enum="InfoBarIdentifier"
expires_after="never">
<!-- expires-never: Required as long as infobars exist. -->
<owner>mdjones@chromium.org</owner>
<summary>
Records how many times a particular infobar was displayed in a visible state
due to no other infobars existing. If there are no existing infobars, but
the user scrolls at the exact moment a new infobar is added, the infobar may
be hidden, but recorded here as visible. Reliably triggering and detecting
this combination is tricky so it isn't done. Only recorded on Android.
</summary>
</histogram>
</histograms>
</histogram-configuration>