blob: f5b4d0aac2249abd2ee021241614697f18debbb0 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of Tab 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="BatteryState">
<variant name="" summary="On battery or plugged-in"/>
<variant name=".OnBattery"/>
<variant name=".PluggedIn"/>
</variants>
<variants name="RecentlyClosedType">
<variant name="Bulk" summary="RecentlyClosedBulkEvent"/>
<variant name="Group" summary="RecentlyClosedGroup"/>
<variant name="Tab" summary="RecentlyClosedTab"/>
</variants>
<variants name="TabActiveState">
<variant name="Active" summary="active"/>
<variant name="Inactive" summary="inactive"/>
</variants>
<variants name="TabDiscardReason">
<variant name=".External"
summary="from outside of TabManager (e.g. by an extension)"/>
<variant name=".Proactive"
summary="proactively by Performance Manager before the system is in a
critical condition, such as when Memory Saver Mode discards
the tab"/>
<variant name=".Urgent"
summary="urgently by TabManager when the system is in a critical
condition"/>
</variants>
<variants name="Tabs_SwitchLatency">
<variant name="_Actual"
summary="The time it takes to show a real live frame from the renderer
on the screen after the user selects a tab. This doesn not
include fake snapshots or other tricks, but the actual time to
get real interactable content displayed."/>
</variants>
<histogram name="Discarding.DailyDiscards{TabDiscardReason}" units="tabs"
expires_after="2024-02-22">
<owner>vovoy@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
The number of tabs discards since last emit. The emit interval is at least
24 hours, see metrics::DailyEvent for more details. The discards are
requested {TabDiscardReason}.
</summary>
<token key="TabDiscardReason" variants="TabDiscardReason"/>
</histogram>
<histogram name="Discarding.DailyReloads{TabDiscardReason}" units="tabs"
expires_after="2024-02-22">
<owner>vovoy@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
The number of tabs reloads since last emit. The emit interval is at least 24
hours, see metrics::DailyEvent for more details. The discards corresponding
to the reloads are requested {TabDiscardReason}.
</summary>
<token key="TabDiscardReason" variants="TabDiscardReason"/>
</histogram>
<histogram name="Discarding.DiscardCandidatesCount" units="tabs"
expires_after="2023-12-18">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The number of tabs discard candidates. This is recorded each time Chrome
needs to urgently discard a tab.
</summary>
</histogram>
<histogram name="Discarding.LargestTabFootprint" units="MiB"
expires_after="2021-02-28">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The largest tab's resident set among all the urgent discarding candidates.
</summary>
</histogram>
<histogram name="Discarding.OldestTabFootprint" units="MiB"
expires_after="2021-02-28">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>The resident set of the oldest urgent discarding candidate.</summary>
</histogram>
<histogram name="Discarding.OnCriticalPressure.TotalRSS_Mb2" units="MB"
expires_after="2021-10-30">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
An estimate of the total resident set of Chrome when receiving a critical
memory pressure event, in megabytes. Note that the estimate is based on the
most recent data collected by Performance Manager, which are refreshed at a
low frequency (up to 2 minutes).
</summary>
</histogram>
<histogram name="Discarding.OnCriticalPressure.TotalRSS_PercentOfRAM2"
units="%" expires_after="2021-10-30">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
An estimate of the total resident set of Chrome when receiving a critical
memory pressure event, in percentage of the total amount of RAM. Note that
the estimate is based on the most recent data collected by Performance
Manager, which are refreshed at a low frequency (up to 2 minutes).
</summary>
</histogram>
<histogram name="Tab.AgeAtDeletion" units="ms" expires_after="2023-12-13">
<owner>ewannpv@chromium.org</owner>
<owner>gambard@chromium.org</owner>
<owner>bling-team@google.com</owner>
<summary>
The age of a Tab when closed (Time between creation time on the current
device and closure time).
</summary>
</histogram>
<histogram name="Tab.AndroidCrashUpload{AndroidCrashUploadTypes}"
enum="BooleanSuccess" expires_after="M85">
<owner>wnwen@chromium.org</owner>
<summary>
[Android] Count of upload success/failures by crash type.
{AndroidCrashUploadTypes}
</summary>
<token key="AndroidCrashUploadTypes">
<variant name="_Browser" summary="Measures browser crash uploads."/>
<variant name="_GPU" summary="Measures GPU crash uploads."/>
<variant name="_Other" summary="Measures other crash uploads."/>
<variant name="_Renderer" summary="Measures renderer crash uploads."/>
</token>
</histogram>
<histogram name="Tab.BackgroundLoadStatus" enum="TabBackgroundLoadStatus"
expires_after="M77">
<owner>ppi@chromium.org</owner>
<summary>
Mobile-specific metric: when a tab that was opened in background (via
&quot;Open link in new tab&quot;) is switched to, we record whether the
eagerly loaded tab was still memory resident, or we lost the loaded page due
to memory pressure.
</summary>
</histogram>
<histogram name="Tab.CloseAllTabsDialog.ClosedAllTabs" enum="Boolean"
expires_after="2022-09-11">
<obsolete>
Removed 4/2022. Replaced with a metric split by incognito and non-incognito
usage of the modal dialog as experiments showed possible differences between
the groups. The sum of the new .Incognito and .NonIncognito values should be
equivalent to what this value reported.
</obsolete>
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records whether the &quot;Close all tabs&quot; action was taken when the
close all tabs confirmation dialog was shown through App Menu &gt; Close all
tabs. This is only recorded for Android.
</summary>
</histogram>
<histogram name="Tab.CloseAllTabsDialog.ClosedAllTabs.{CloseType}"
enum="Boolean" expires_after="2023-09-11">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Records whether the &quot;Close all tabs&quot; action was taken when the
close all tabs confirmation dialog was shown through App Menu &gt; Close all
tabs. This is only recorded for Android for {CloseType} close all tabs menu
actions.
</summary>
<token key="CloseType">
<variant name="Incognito"/>
<variant name="NonIncognito"/>
</token>
</histogram>
<histogram name="Tab.Count.Guest" units="units" expires_after="2023-09-03">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-incognito@google.com</owner>
<summary>
Number of open tabs in each guest window. Recorded once a new tab in a guest
window is opened and adds one to the bucket of number of tabs in that
particular window (it does not count the total number of tabs in all open
guest windows). Please note that this metric double counts the lower
numbers, meaning that if user opens three tabs (without closing any in
between), then buckets 1, 2, and 3 will all be incremented in turn. The
metric also overcounts the tabs that are moved from one window to another as
they are recorded both when they are created in the first window and when
they are added to the second window.
</summary>
</histogram>
<histogram name="Tab.Count.Incognito" units="units" expires_after="2023-08-27">
<owner>rhalavati@chromium.org</owner>
<owner>chrome-incognito@google.com</owner>
<summary>
Number of open tabs in each incognito window. Recorded once a new tab is
opened in an incognito window and adds one to the bucket of number of tabs
in that particular window (it does not count the total number of tabs in all
open incognito windows). Please note that this metric double counts the
lower numbers, meaning that if user opens three tabs (without closing any in
between), then buckets 1, 2, and 3 will all be incremented in turn. The
metric also overcounts the tabs that are moved from one window to another as
they are recorded both when they are created in the first window and when
they are added to the second window.
</summary>
</histogram>
<histogram name="Tab.ExternalApplicationOpened" enum="ExternalLauncherOption"
expires_after="2022-08-21">
<owner>mrefaat@chromium.org</owner>
<owner>bling-team@google.com</owner>
<summary>
[iOS] Used on External App launcher Prompt to determine if the user clicked
open or cancel.
</summary>
</histogram>
<histogram name="Tab.NewTab" enum="NewTabType" expires_after="2023-10-22">
<owner>tbergquist@chromium.org</owner>
<owner>bsep@chromium.org</owner>
<summary>
Recorded when a new tab is opened. Tracks the method in which the tab was
opened. Does not apply to opening existing links or searches in a new tab,
only to brand new empty tabs. Note: Currently the &quot;Regular menu
option&quot; includes some programmatic actions in addition to user actions.
</summary>
</histogram>
<histogram name="Tab.NewTabOnload{TabNewTabOnload}" units="ms"
expires_after="2021-03-07">
<owner>carlosk@chromium.org</owner>
<owner>harringtond@chromium.org</owner>
<summary>
The time for the new tab page to load. Only recorded on Android. Recorded
only once per tab, i.e. excluding back/forward navigations.
{TabNewTabOnload}
</summary>
<token key="TabNewTabOnload">
<variant name=""/>
</token>
</histogram>
<histogram name="Tab.PageLoadInPortrait" enum="DeviceOrientation"
expires_after="M85">
<owner>marq@chromium.org</owner>
<summary>[iOS] The orientation of the device. Recorded on page load.</summary>
</histogram>
<histogram name="Tab.PageLoadsSinceLastSwitchToEvictedTab" units="units"
expires_after="M77">
<owner>dtrainor@chromium.org</owner>
<summary>
[Android] The number of page loads since the last switch to an evicted tab
on Android. This was sampled each time an evicted tab was reloaded.
</summary>
</histogram>
<histogram name="Tab.PerceivedRestoreTime" units="ms"
expires_after="2023-09-03">
<owner>ckitagawa@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>yfriedman@chromium.org</owner>
<summary>
[Android] User-perceived load time for a successful tab restore, measured
from the first time the user sees the tab being restored until the load
completes.
Warning this historgram was expired between M89 and 2022-08-24.
</summary>
</histogram>
<histogram name="Tab.Preview.TimeToFirstUsableFrameAfterStartCapture"
units="ms" expires_after="2023-08-06">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
When generating a preview for a background tab, this measures the time
between requesting a video capture and receiving the first usable frame.
</summary>
</histogram>
<histogram name="Tab.Preview.TimeToNotifyObserversAfterCaptureReceived"
units="microseconds" expires_after="2022-11-27">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
When generating a preview, a tab's contents are captured as an uncompressed
image, compressed in the background, then sent to subscribers on the main
thread. This roughly measures the time between the capture completing and
the compressed image being available on the main thread.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Tab.Preview.TimeToStoreAfterFrameReceived"
units="microseconds" expires_after="2022-11-27">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
When generating a preview for a background tab, this measures the time
between receiving a frame and storing it as the current thumbnail.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Tab.Preview.TimeToStoreAfterTabSwitch" units="ms"
expires_after="2023-08-20">
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
On tab switch, the visible content area is captured and stored as a
thumbnail. This measures the time between requesting the capture and storing
it as the current thumbnail.
</summary>
</histogram>
<histogram name="Tab.Preview.VideoCaptureDuration" units="ms"
expires_after="2022-11-27">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>collinbaker@chromium.org</owner>
<summary>
Measures the total time spent in video capture mode when generating a
preview for a background tab. This is emitted at the end of each capture
session.
</summary>
</histogram>
<histogram name="Tab.PullDownGesture" enum="PullDownGestureAction"
expires_after="2024-01-15">
<owner>gambard@chromium.org</owner>
<owner>chromeleon@google.com</owner>
<summary>
Record the action executed when the user performs a pull down gesture. This
feature is currently iOS only.
A pull down gesture is an action completed when the user scrolls past the
edge of the web page and continues scrolling in the same direction revealing
a specific UI on the header with multiple actions icons. The user can then
choose an action by scrolling left or right and lift the finger or cancel by
scrolling back up. This is currently an iOS specific feature.
</summary>
</histogram>
<histogram name="Tab.RendererTermination.AliveRenderersCount" units="renderers"
expires_after="2023-09-17">
<owner>ajuma@chromium.org</owner>
<owner>bling-fundamentals@google.com</owner>
<summary>
[iOS] A count of the number of alive renderers in the current window when a
renderer termination occurs. Expired for M78-94.
</summary>
</histogram>
<histogram name="Tab.RendererTermination.RecentlyAliveRenderersCount"
units="renderers" expires_after="M106">
<owner>pkl@chromium.org</owner>
<summary>
[iOS] The number of renderers which are either currently alive or recently
terminated in the current window at the time of a renderer termination.
</summary>
</histogram>
<histogram name="Tab.RendererTermination.TotalTabCount" units="tabs"
expires_after="2023-09-17">
<owner>ajuma@chromium.org</owner>
<owner>thegreenfrog@chromium.org</owner>
<summary>
[iOS] The number of tabs of the current window at the time of a renderer
termination.
</summary>
</histogram>
<histogram name="Tab.RestoreClosedTab" enum="Boolean"
expires_after="2023-11-30">
<owner>sreejakshetty@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
[Desktop] This metric is recorded whenever a tab is restored by the user.
Set to true if the tab is restored from ClosedTabCache and false indicates
the tab is restored normally. This accounts for all types of tab restores
i.e., in a closed window, closed group also on startup tab restores.
</summary>
</histogram>
<histogram name="Tab.Screenshot.Action" enum="TabScreenshotAction"
expires_after="2023-10-08">
<owner>skare@chromium.org</owner>
<summary>
Records actions taken after one or more screenshots of a page were taken.
This will not be recorded if Chromium is killed before leaving the page. If
several types of action (IPH and Sharing) occur, only the last is recorded.
We think that both IPH and Sharing happening at the same time is rare, so we
do not expect to lose much data this way.
</summary>
</histogram>
<histogram name="Tab.Screenshot.ScreenshotsPerPage" units="screenshots"
expires_after="2022-12-18">
<owner>skare@chromium.org</owner>
<summary>
Records the number of screenshots taken of a specific page. It is recorded
when the user navigates away from this page or the tab is destroyed. This
will not be recorded if Chromium is killed before leaving the page.
</summary>
</histogram>
<histogram name="Tab.StateAtRendererTermination" enum="TabForegroundState"
expires_after="2023-09-17">
<owner>gambard@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
The state (foreground/background) of a tab when its renderer is terminated.
</summary>
</histogram>
<histogram name="Tab.StatusWhenSwitchedBackToForeground" enum="TabStatus"
expires_after="2023-09-03">
<owner>ckitagawa@chromium.org</owner>
<owner>marq@chromium.org</owner>
<summary>
[Android and iOS] The status of a tab collected each time the user switches
to it on mobile. That does not include tabs being created at the time the
user switches to them, such as NTP or tabs opened to handle intents.
Warning this historgram was expired between M86 and 2022-08-24.
</summary>
</histogram>
<histogram name="Tab.SwitchedToForegroundAge" units="ms" expires_after="M85">
<owner>dtrainor@chromium.org</owner>
<summary>
[Android] Age (in ms) when the tab was switched to foreground.
</summary>
</histogram>
<histogram name="Tab.TotalTabCount.BeforeLeavingApp" units="tabs"
expires_after="M85">
<owner>tedchoc@chromium.org</owner>
<owner>clank-team@google.com</owner>
<summary>
[Android] The total count of tabs which were kept while Chrome process is in
the foreground. This is recorded only for Android right before Chrome
process goes into the background.
</summary>
</histogram>
<histogram name="TabGroups.CollapsedGroupCountPerLoad" units="groups"
expires_after="2023-10-22">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs groups that are collapsed in all browsers (counting
app-mode windows) when a load completes.
</summary>
</histogram>
<histogram name="TabGroups.CollapsedTabCount" units="tabs"
expires_after="2021-09-12">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs in a collapsed tab group in all browsers, reported every
5 minutes. Desktop only.
</summary>
</histogram>
<histogram name="TabGroups.NonZeroUserGroupCountPerLoad" units="groups"
expires_after="2021-09-12">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of (non-zero) tabs groups open in all browsers (counting app-mode
windows) when a load completes.
</summary>
</histogram>
<histogram name="TabGroups.SessionsPerGroup" units="sessions"
expires_after="2023-10-22">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
This histogram records the number of sessions of a selected tab group
whenever Chrome comes to the foreground, or switch tab in the tab switcher.
This number is accumulated until that group id is outdated, meaning all the
tabs with that group id has been closed.
</summary>
</histogram>
<histogram name="TabGroups.TimeSpentCollapsed2" units="seconds"
expires_after="2021-09-12">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The time a tab group spends in the collapsed state before the group is
either expanded or closed.
</summary>
</histogram>
<histogram name="TabGroups.TimeSpentExpanded2" units="seconds"
expires_after="2021-09-12">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The time a tab group spends in the expanded state before the group is either
collapsed or closed.
</summary>
</histogram>
<histogram name="TabGroups.UserCustomizedGroupCountPerLoad" units="groups"
expires_after="2023-09-03">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs groups with a user-set name or color open in all browsers
(counting app-mode windows) when a load completes.
</summary>
</histogram>
<histogram name="TabGroups.UserGroupCount" units="groups"
expires_after="2023-09-10">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
This histogram records the number of tab groups whenever Chrome comes to the
foreground.
</summary>
</histogram>
<histogram name="TabGroups.UserGroupCountPerLoad" units="groups"
expires_after="2023-10-22">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs groups open in all browsers (counting app-mode windows)
when a load completes.
</summary>
</histogram>
<histogram name="TabGroups.UserNamedGroupCount" units="groups"
expires_after="2023-09-10">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
This histogram records the number of tab groups that have customized group
name whenever Chrome comes to the foreground.
</summary>
</histogram>
<histogram name="TabGroups.UserPinnedTabCountPerLoad" units="tabs"
expires_after="2023-09-05">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of pinned tabs in the tabstrip in all browser windows, when a
page load completes.
</summary>
</histogram>
<histogram name="TabHoverCards.LastTabHoverCardPreviewTime{TabCountMetrics}"
units="ms" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the time the user sees a full hover card with preview
image on tab they then go on to select. The time is counted from the time
the hover card is fully opaque and has landed on the target tab and a valid
preview image for the tab is visible, and may be zero if the user clicks
before the preview appears. This metric is not recorded if previews are
disabled. {TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram name="TabHoverCards.LastTabHoverCardViewedTime{TabCountMetrics}"
units="ms" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the time the user sees a full hover card on tab they
then go on to select. The time is counted from the time the hover card is
fully opaque and has landed on the target tab, and may be zero if the user
clicks before the card is visible. {TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram name="TabHoverCards.TabHoverCardPreviewTime{TabCountMetrics}"
units="ms" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the time the user sees a full hover card with preview
image on any tab. The time is counted from the time the hover card is fully
opaque and has landed on the target tab and a valid preview image for the
tab is visible. This metric is not recorded if previews are disabled, or if
an image is never displayed for the tab. {TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram
name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection{TabCountMetrics}"
units="hover cards" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the number of tab hover cards seen between the last
active tab change and a tab change by mouse click. {TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram name="TabHoverCards.TabHoverCardViewedTime{TabCountMetrics}"
units="ms" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the time the user sees a full hover card on any tab.
The time is counted from the time the hover card is fully opaque and has
landed on the tab. This metric is not recorded if the card never actually
lands on the tab. {TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram
name="TabHoverCards.TabPreviewsSeenBeforeTabSelection{TabCountMetrics}"
units="previews" expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>dfried@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the number of tab hover card previews seen between
the last active tab change and a tab change by mouse click.
{TabCountMetrics}
</summary>
<token key="TabCountMetrics">
<variant name=""/>
<variant name=".ByTabCount.0To2Tabs"
summary="Recorded with between 0 and 3 tabs open in the browser."/>
<variant name=".ByTabCount.3To4Tabs"
summary="Recorded with between 3 and 4 tabs open in the browser."/>
<variant name=".ByTabCount.5To7Tabs"
summary="Recorded with between 5 and 7 tabs open in the browser."/>
<variant name=".ByTabCount.8To19Tabs"
summary="Recorded with between 8 and 19 tabs open in the browser."/>
<variant name=".ByTabCount.20To39Tabs"
summary="Recorded with between 20 and 39 tabs open in the browser."/>
<variant name=".ByTabCount.40OrMoreTabs"
summary="Recorded with 40 or more tabs open in the browser."/>
</token>
</histogram>
<histogram name="TabHoverCards.TimeSinceLastVisible" units="ms"
expires_after="2023-01-01">
<obsolete>
Removed 12/2022. Not actively used because reported values are 0 most of the
time. It would be more useful to report number of discards per day.
</obsolete>
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the time between when a hover card was last hidden to
when it is shown again. Since users can easily hover out of the tab strip we
want to reshow the tab hover card with no delay if we think they
unintentionally exited the tab strip. If the user reenters the tab strip
within X ms we want to reshow the hover card immediately. This histogram
will help to better refine that number.
</summary>
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabCount" units="tabs"
expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
The max number of background tabs pending or loading when opening background
tabs. This is recorded at the end of the 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 metric is not recorded when the session overlaps
with session restore.
</summary>
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadAutoStartedCount"
units="tabs" expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
The number of background tabs whose loading was triggered by TabManager
automatically when opening background tabs. This is recorded at the end of
the 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
metric is not recorded when the session overlaps with session restore.
</summary>
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadTimeout"
enum="BooleanTimedOut" expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
Whether the tab load is timed out during 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 metric is not recorded when the session overlaps
with session restore.
</summary>
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabLoadUserInitiatedCount"
units="tabs" expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
The number of background tabs whose loading was triggered by user action
when opening background tabs. For example, when the user selects a
background tab and brings it to foreground, that tab will start to load
immediately if not already loading. This is recorded at the end of the
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 metric is
not recorded when the session overlaps with session restore.
</summary>
</histogram>
<histogram name="TabManager.BackgroundTabOpening.TabPausedCount" units="tabs"
expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
The max number of background tabs paused to load due to memory pressure when
opening background tabs. This is recorded at the end of the background tab
opening session 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 metric is not recorded when the session overlaps with session
restore.
</summary>
</histogram>
<histogram name="TabManager.Discarding.DiscardCount" units="Discards"
expires_after="2023-09-03">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Cumulative number of tabs discarded due to low memory conditions, recorded
once per tab discard event. For example, a user who had 3 tabs discarded
records a count in the 1 bin, 2 bin and 3 bin. Thus each bin N is the number
of sessions where users experienced N or more tab discard events.
</summary>
</histogram>
<histogram name="TabManager.Discarding.DiscardedTabCouldFastShutdown"
enum="BooleanTabDiscardFastShutdown" expires_after="M77">
<owner>oysteine@chromium.org</owner>
<summary>
Recorded for each discarding, indicates whether the discarded tab succeeded
in doing a render process fast shutdown or not.
</summary>
</histogram>
<histogram name="TabManager.Discarding.DiscardedTabCouldUnsafeFastShutdown"
enum="BooleanTabDiscardFastShutdown" expires_after="M77">
<owner>oysteine@chromium.org</owner>
<summary>
Recorded for each discarding, allowing us to know whether the discarded tab
succeeded an unsafe process shutdown (not invoking unload handlers).
</summary>
</histogram>
<histogram name="TabManager.Discarding.DiscardedTabHasBeforeUnloadHandler"
enum="Boolean" expires_after="M77">
<owner>georgesak@chromium.org</owner>
<summary>
Recorded for each discarding, allowing us to know whether the discarded tab
had a before unload handler or not.
</summary>
</histogram>
<histogram name="TabManager.Discarding.DiscardToReloadTime" units="ms"
expires_after="2023-10-08">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Elapsed time between a tab getting discarded to eventually being reloaded by
the user.
</summary>
</histogram>
<histogram name="TabManager.Discarding.InactiveToReloadTime" units="ms"
expires_after="2023-09-10">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Elapsed time between the time a tab switched from being active to inactive
(that eventually gets discarded) until it gets reloaded.
</summary>
</histogram>
<histogram name="TabManager.Discarding.ReloadCount" units="Reloads"
expires_after="2023-09-03">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Cumulative number of discarded tabs that have been reloaded by the user,
recorded once per tab discard event. For example, a user who had 3 tabs
reloaded records a count in the 1 bin, 2 bin and 3 bin. Thus each bin N is
the number of sessions where users experienced N or more tab reload events.
</summary>
</histogram>
<histogram name="TabManager.Discarding.ReloadToCloseTime" units="ms"
expires_after="2023-09-17">
<owner>chrisha@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Elapsed time between the last time a discarded tab was reloaded and the time
it gets closed.
</summary>
</histogram>
<histogram
name="TabManager.Experimental.SessionRestore.TabSwitchLoadTime.UntilTabIsLoaded"
units="ms" expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
The tab load time of a tab that is switched to during a session restore. Tab
load time 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 load time is measured from that point in time. The metric is only
recorded when a tab is switched to from another tab within the same
tabstrip. As a result, the initial forground tab is not included in this
metric since it was not switched to from another tab. The metric is only
recorded when session restore is actively loading tabs, which ends when
either all tabs have been loaded and their pages rendered, or tab loading
needs to be deferred in cases where the system is under memory pressure. The
metric is not recorded when the session overlaps with background tab opening
session.
</summary>
</histogram>
<histogram name="TabManager.Heuristics.FromBackgroundedToFirstFaviconUpdated"
units="ms" expires_after="M85">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Measures the time duration from when the tab is backgrounded to when its
favicon is updated. The first-time set of favicon will be ignored; this
metric will only be recorded after 5 minutes from main frame navigation
committed and when the tab is in the background.
</summary>
</histogram>
<histogram
name="TabManager.Heuristics.FromBackgroundedToFirstNonPersistentNotificationCreated"
units="ms" expires_after="M78">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Measures the time duration from when the tab is backgrounded to when a
non-persistent notification is created. Only recorded when the tab is in the
background.
</summary>
</histogram>
<histogram name="TabManager.Heuristics.FromBackgroundedToFirstTitleUpdated"
units="ms" expires_after="M77">
<owner>chrisha@chromium.org</owner>
<owner>lpy@chromium.org</owner>
<summary>
Measures the time duration from when the tab is backgrounded to when its
title is updated. The first-time set of title will be ignored; this metric
will only be recorded after 5 minutes from main frame navigation committed
and when the tab is in the background.
</summary>
</histogram>
<histogram name="TabManager.SessionOverlap.BackgroundTabOpening"
enum="BooleanOverlap" expires_after="M79">
<owner>chrisha@chromium.org</owner>
<summary>
Whether background tab opening session is overlapped with other types of
session, e.g., session restore. Background tab opening session is 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. This metric helps to understand how often background tab
opening has overlap with other sessions.
</summary>
</histogram>
<histogram name="TabManager.TabRanker.Result" enum="TabManagerTabRankerResult"
expires_after="M85">
<owner>michaelpg@chromium.org</owner>
<owner>charleszhao@chromium.org</owner>
<summary>
Logged when calculating a tab reactivation score for a background tab. Any
value other than &quot;none&quot; may indicate a bug in the inference code,
a problem with the preprocessor configuration shipped with the model, or a
bug in the code that populates the RankerExample for a tab.
</summary>
</histogram>
<histogram name="TabRestore.{RestoreType}.TimeBetweenClosedAndRestored"
units="ms" expires_after="2023-07-10">
<owner>sreejakshetty@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<summary>
Recorded when the user restores a {RestoreType}. The value is the time
duration between the previous closing of the {RestoreType} and the
{RestoreType} being restored.
</summary>
<token key="RestoreType">
<variant name="Group" summary="tab group"/>
<variant name="Tab" summary="tab"/>
<variant name="Window" summary="window"/>
</token>
</histogram>
<histogram name="Tabs.ActiveCountAtStartup" units="tabs"
expires_after="2023-10-01">
<owner>alionadangla@chromium.org</owner>
<owner>lpromero@chromium.org</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] Records the number of tabs that are considered active as per the
current tab inactivity threshold. This is recorded at cold launch.
</summary>
</histogram>
<histogram name="Tabs.CountAtResume" units="tabs" expires_after="2024-01-15">
<!-- This histogram was expired between 2022-11-02 and M111 -->
<owner>marq@chromium.org</owner>
<owner>olivierrobin@chromium.org</owner>
<summary>
[iOS] The number of tabs opened when the app comes out of the background.
</summary>
</histogram>
<histogram name="Tabs.CountAtStartup" units="tabs" expires_after="2023-09-10">
<owner>marq@chromium.org</owner>
<owner>chromeleon@google.com</owner>
<summary>[Android and iOS] The number of tabs opened at cold launch.</summary>
</histogram>
<histogram name="Tabs.DuplicatesCountAtStartup" units="tabs"
expires_after="2024-01-15">
<owner>pakzhygitov@google.com</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] The number of duplicated tabs restored at cold launch.
Note: This metric counts each non-unique tab as a duplicate. E.g. if there
are 3 tabs with the same URL, this metric will reprepresnet the amount of
total duplicates (i.e. two duplicates).
</summary>
</histogram>
<histogram name="Tabs.FirstSwitchedToForegroundCreationRank" units="units"
expires_after="M77">
<owner>pkotwicz@chromium.org</owner>
<summary>
Records the &quot;Tab Creation Rank&quot; for the first background tab which
was switched to the foreground. The &quot;Tab Creation Rank&quot; is
relative to other background tabs which were opened from the same URL via
the context menu. The oldest background tab has a rank of zero.
</summary>
</histogram>
<histogram name="Tabs.FirstSwitchedToForegroundCreationReverseRank"
units="units" expires_after="M77">
<owner>pkotwicz@chromium.org</owner>
<summary>
Records the &quot;Reverse Tab Creation Rank&quot; for the first background
background tab which was switched to the foreground. The &quot;Reverse Tab
Creation Rank&quot; is relative to other background tabs which were opened
from the same URL via the context menu. The newest background tab has a
&quot;Reverse Tab Creation Rank&quot; of zero.
</summary>
</histogram>
<histogram name="Tabs.InactiveCountAtStartup" units="tabs"
expires_after="2023-10-01">
<owner>alionadangla@chromium.org</owner>
<owner>lpromero@chromium.org</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] Records the number of tabs that are considered inactive as per the
current tab inactivity threshold. This is recorded at cold launch.
</summary>
</histogram>
<histogram name="Tabs.LiveNTPCountAtResume" units="tabs"
expires_after="2024-02-26">
<owner>thegreenfrog@chromium.org</owner>
<owner>bling-team@google.com</owner>
<summary>
[iOS] The number of live allocated regular (not incognito) NTP tabs when the
app comes out of a background state. A live NTP is one whose UI classes are
initialized. Prior to M99 this incorrectly counted whichever interface
(regular or incognito) was selected.
</summary>
</histogram>
<histogram name="Tabs.MaxTabsInADay{BatteryState}" units="tabs"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The maximum number of tabs that Chrome displays at the same time over the
course of a day. Desktop only.
NOTE: This metric is asynchronous, the value reported on a given day
represents the previous day's observations (which can be from a different
build).
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.MaxTabsPerWindowInADay{BatteryState}" units="tabs"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The maximum number of tabs per window that Chrome displays over the course
of a day. Desktop Only.
NOTE: This metric is asynchronous, the value reported on a given day
represents the previous day's observations (which can be from a different
build).
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.MaxWindowsInADay{BatteryState}" units="tabs"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The maximum number of windows existing at the same time over the course of a
day. Desktop only.
NOTE: This metric is asynchronous, the value reported on a given day
represents the previous day's observations (which can be from a different
build).
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.NewNavigationWithSameOriginTab" enum="Boolean"
expires_after="2023-10-08">
<owner>gjc@google.com</owner>
<owner>blink-network-dev@chromium.org</owner>
<summary>
Whether another tab under the same origin can be found when a tab has
finished a navigation to a new security origin. This can happen when a new
tab is added with a website or the user navigates to another security
origin. The browser will iterate over all the tabs to find if there is a tab
with content under the same origin as the new link.
</summary>
</histogram>
<histogram name="Tabs.NTPCountAtResume" units="tabs" expires_after="2023-10-08">
<owner>gogerald@chromium.org</owner>
<owner>nasims@google.com</owner>
<summary>
[iOS] The number of NTP tabs open when the app comes out of the background.
</summary>
</histogram>
<histogram name="Tabs.NTPCountAtStartup" units="tabs"
expires_after="2023-09-17">
<owner>gogerald@chromium.org</owner>
<owner>nasims@google.com</owner>
<summary>[iOS] The number of NTP tabs open at cold launch.</summary>
</histogram>
<histogram name="Tabs.NumberOfTabsOnResume{BatteryState}" units="tabs"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The number of tabs total at resume from sleep/hibernate. This is being
logged on all desktop platforms.
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.OldCountAtStartup" units="tabs"
expires_after="2023-10-01">
<owner>alionadangla@chromium.org</owner>
<owner>lpromero@chromium.org</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] Number of tabs older than 21 days. Recorded at cold launch.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Critical.Map.Success"
enum="BooleanSuccess" expires_after="2024-01-08">
<owner>davidjm@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
CriticalPersistedTabData persists core Tab metadata (tab id, web contents
etc.) across restarts. This metric records if the Tab metadata is
successfully mapped from raw storage into an object which can be consumed in
Tab restoration.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Deserialize.Critical"
enum="BooleanSuccess" expires_after="2023-06-19">
<!-- P2 project which hasn't launched yet -->
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
CriticalPersistedTabData stores data pertinent to the running of the app
such as tab id, parent id, web contents. This data is serialized and stored
across restarts. This records if the deserialization succeeds or fails.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Serialize.Critical"
enum="BooleanSuccess" expires_after="2024-01-08">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
CriticalPersistedTabData stores data pertinent to the running of the app
such as tab id, parent id, web contents. This data is serialized and stored
across restarts. This records if the serialization succeeds or fails.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.Delete.File"
enum="BooleanSuccess" expires_after="2023-06-20">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records if a delete was
successful or unsuccessful.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.Exists.File"
enum="BooleanSuccess" expires_after="2023-06-19">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records if a delete
operation was found to have the file not existing.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.LevelDB.OrphanedDataCount"
units="keys" expires_after="2023-06-27">
<owner>davidjm@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<summary>
Records the number of keys that were identified to be orphaned in the
LevelDB database for PersistedTabData. PersistedTabData stores Tab data to
be persisted across restarts. When a Tab is closed, the data is removed,
however, it is possible for data to become orphaned if the app crashes after
a Tab is closed and before the cleanup is complete. This metric is recorded
in the first callback, OnPerformMaintenance, whereby orphaned keys are
identified and before they are deleted.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.LoadAndMapTime.File" units="ms"
expires_after="2024-01-08">
<owner>davidjm@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
PersistedTabData stores Tab related data across restarts in a number of
storage options. This metric stores the time to load Tab data from file
storage and map it into an object available for consumption on Tab
restoration. The only client currently using File storage is
CriticalPersistedTabData which persists core Tab metadata (tab id, web
contents etc.) across restarts.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.LoadTime.File" units="ms"
expires_after="2024-01-08">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records how long it took
to load the file in the event the file exists. .
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.MapTime.File" units="ms"
expires_after="2024-01-08">
<owner>davidjm@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
PersistedTabData stores Tab related data across restarts in a number of
storage options. This metric stores the time to map data acquired from raw
file storage into an object which can be consumed on Tab restoration. The
only client currently using File storage is CriticalPersistedTabData which
persists core Tab metadata (tab id, web contents etc.) across restarts.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.Restore.File"
enum="BooleanSuccess" expires_after="2023-11-21">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records if a restore was
successful or unsuccessful.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.Save.File" enum="BooleanSuccess"
expires_after="2024-01-08">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records if a save was
successful or unsuccessful.
</summary>
</histogram>
<histogram
name="Tabs.PersistedTabData.Storage.Save.File.FirstStorageRequestType"
enum="FileStorageRequestType" expires_after="2023-08-20">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
First storage request type in FilePersistedTabData. It would be expected
that the first storage request will be a restore (as restoring the active
tab) is pivotal for startup performance.
</summary>
</histogram>
<histogram name="Tabs.PersistedTabData.Storage.SaveTime.File" units="ms"
expires_after="2024-04-10">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
FilePersistedTabData storage stores serialized PersistedTabData (metadata
persisted across restarts) in a file. This metric records how long it took
to save the file in the event of a successful save.
</summary>
</histogram>
<histogram
name="Tabs.RecentlyClosed.EntriesRestoredInPage.{RecentlyClosedType}"
units="entries restored" expires_after="2023-08-05">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
The number of distinct entries from TabRestoreService of
{RecentlyClosedType} type that were restored in one Recent Tabs page session
on Android. This is recorded when destroying the Recent Tabs page if any
entires of {RecentlyClosedType} type were shown.
</summary>
<token key="RecentlyClosedType" variants="RecentlyClosedType"/>
</histogram>
<histogram name="Tabs.RecentlyClosed.EntriesShownInPage.{RecentlyClosedType}"
units="entries shown" expires_after="2023-08-05">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
The number of distinct entries from TabRestoreService of
{RecentlyClosedType} type shown in one Recent Tabs page session on Android.
This is recorded when destroying the Recent Tabs page.
</summary>
<token key="RecentlyClosedType" variants="RecentlyClosedType"/>
</histogram>
<histogram name="Tabs.RecentlyClosed.HistoricalSaverCloseType"
enum="HistoricalSaverCloseType" expires_after="2023-08-05">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
Recorded once for each tab closure event processed by HistoricalTabSaverImpl
on Android. Enum categories correspond to the the type of closure that was
saved to the native TabRestoreService. Tab for single tab, Group for a
single tab group and Bulk for a combination of tabs and groups or more than
one of either.
</summary>
</histogram>
<histogram
name="Tabs.RecentlyClosed.PercentOfEntriesRestoredInPage.{RecentlyClosedType}"
units="percentage restored" expires_after="2023-08-05">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
The percentage of entries from TabRestoreService of {RecentlyClosedType}
type that were restored relative to the number shown in one Recent Tabs page
session on Android. This is recorded when destroying the Recent Tabs page if
any entires of {RecentlyClosedType} type were shown.
</summary>
<token key="RecentlyClosedType" variants="RecentlyClosedType"/>
</histogram>
<histogram name="Tabs.RestoredFromInactiveCount" units="tabs"
expires_after="2024-02-23">
<owner>lpromero@google.com</owner>
<owner>chromeleon@google.com</owner>
<summary>
Recorded on disabling Inactive Tabs (for example in case of an unlaunch).
The number of tabs rescued from the orphan inactive tabs browser after the
Inactive Tabs experimental flag has been disabled.
</summary>
</histogram>
<histogram name="Tabs.RestoreTabStateException" enum="RestoreTabStateException"
expires_after="2023-08-27">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
[Android] TabState restoration may fail resulting in fallback restoration
from the TabStateList or aborting restoration altogether. TabState
restoration occurs on startup when restoring tab state from disk or when
merging multi-instance modes together. This histogram is emitted when
TabState restoration fails to indicate the cause of the failure.
</summary>
</histogram>
<histogram name="Tabs.SadTab.Feedback.Event" enum="SadTabEvent"
expires_after="2023-09-10">
<owner>sonnyrao@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
Counts of events from the style of sad tab which has a feedback button as
its primary action. Currently, events include being displayed (actually
visible in a window), and the actions a user can take on the page.
</summary>
</histogram>
<histogram name="Tabs.SadTab.Reload.Event" enum="SadTabEvent"
expires_after="2023-09-03">
<owner>sonnyrao@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
Counts of events from the style of sad tab which has a reload button as its
primary action. Compare to Tabs.SadTab.Feedback.Event.
</summary>
</histogram>
<histogram name="Tabs.SadTab.ReloadCount" units="tabs"
expires_after="2021-06-01">
<owner>sonnyrao@chromium.org</owner>
<owner>jamescook@chromium.org</owner>
<summary>
The number of times a tab was reloaded because it was killed (usually by the
kernel OOM killer) and the user clicked on it later, recorded once per
reload event. For example, a user who clicks on 3 discarded tabs will record
a count in the 1 bin, 2 bin, and 3 bin. Thus each bin N is the number of
sessions where users experienced N or more reload events. Compare to
Tabs.Discard.DiscardCount.
</summary>
</histogram>
<histogram name="Tabs.SavedTabLoadTime.{SavedTabMethod}.{SavedTabLoadResult}"
units="ms" expires_after="2023-05-30">
<owner>davidjm@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>yusufo@chromium.org</owner>
<summary>
Records load time of a Tab using {SavedTabMethod} storage and whether the
{SavedTabLoadResult}
</summary>
<token key="SavedTabMethod">
<variant name="CriticalPersistedTabData"
summary="CriticalPersistedTabData"/>
<variant name="TabState" summary="TabState"/>
</token>
<token key="SavedTabLoadResult">
<variant name="Exists" summary="Tab storage file was found."/>
<variant name="Null" summary="Tab storage file was not found."/>
</token>
</histogram>
<histogram name="Tabs.ScrubbedInInterval.KeyPress" units="tabs"
expires_after="2023-05-07">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the number of tabs that are 'scrubbed' by key press
during a given interval of time (i.e. ctrl+tab navigation). For this metric,
a tab is considered 'scrubbed' if it was active for less than or equal to a
given amount of time.
</summary>
</histogram>
<histogram name="Tabs.ScrubbedInInterval.MousePress" units="tabs"
expires_after="2023-07-09">
<owner>corising@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
This histogram records the number of tabs that are 'scrubbed' by mouse press
during a given interval of time. For this metric, a tab is considered
'scrubbed' if it was active for less than or equal to a given amount of
time.
</summary>
</histogram>
<histogram name="Tabs.ScrubDistance" units="tabs" expires_after="2024-03-20">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
The distance a user multi-finger scrubbed to change tabs. Always positive
(ignores left / right).
</summary>
</histogram>
<histogram name="Tabs.ScrubDuration" units="ms" expires_after="2023-08-20">
<owner>afakhry@chromium.org</owner>
<owner>tclaiborne@chromium.org</owner>
<summary>
The duration a user spent doing multi-finger scrubbing to change tabs before
a different tab than the currently active one was actually activated.
</summary>
</histogram>
<histogram name="Tabs.ShoppingPersistedTabData.FoundBuyableProductAnnotation"
enum="FoundBuyableProductAnnotation" expires_after="2024-01-08">
<owner>yusufo@chromium.org</owner>
<owner>ayman@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
Records if we find a BuyableProductAnnotation in the response from our
endpoint which provides page annotations to enrich the user experience. The
endpoint is called for every Tab when we enter the Tab grid switcher and is
cached with a time to live of 1 hour.
</summary>
</histogram>
<histogram name="Tabs.Startup.TabCount.{TabType}" units="count"
expires_after="2024-01-08">
<owner>davidjm@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>Records the number of {TabType} Tabs loaded on startup.</summary>
<token key="TabType">
<variant name="Incognito" summary="Incognito"/>
<variant name="Regular" summary="Regular"/>
</token>
</histogram>
<histogram name="Tabs.StateTransfer.NumberOfOtherTabsActivatedBeforeMadeActive"
units="tabs" expires_after="M77">
<owner>kouhei@chromium.org</owner>
<owner>tzik@chromium.org</owner>
<summary>
Recorded once per tab activation. The number of tabs that were activated
while the tab was inactive.
This metric is to be removed after M46 hits stable. We don't expect this
metric to change over release, so we will remove this once we have the
numbers from stable.
</summary>
</histogram>
<histogram name="Tabs.StateTransfer.TabDistanceInactiveToActive" units="tabs"
expires_after="M85">
<owner>kouhei@chromium.org</owner>
<owner>tzik@chromium.org</owner>
<summary>
Number of tabs between the previously active tab and the new active tab.
This metric is to be removed after M46 hits stable. We don't expect this
metric to change over release, so we will remove this once we have the
numbers from stable.
</summary>
</histogram>
<histogram name="Tabs.Suggestions.NumSuggestionsChanged{TabSuggestionType}"
units="count" expires_after="2023-10-16">
<owner>yusufo@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<owner>meiliang@chromium.org</owner>
<summary>
The user is presented with recommendations on which Tabs they could take the
suggested action. The user has the option to: 1) Remove a Tab from the
recommendation 2) Add a Tab which wasn't in the recommendation to the
recommendation.
This metric records the sum of the number of times the user does 1) or 2)
and is a measure of how useful the recommendation is. This metric is
recorded after the user accepts a recommendation - potentially with edits by
performing 1) or 2).
Note: Adding and removing the same Tab, or vice versa, would be counted as
0. {TabSuggestionType}
</summary>
<token key="TabSuggestionType">
<variant name=".ClosingSuggestion"
summary="This bukect is for the closing suggestion. It suggests users
to close the recommended tabs."/>
<variant name=".GroupingSuggestion"
summary="This bukect is for the grouping suggestion. It suggests
users to group the recommended tabs."/>
</token>
</histogram>
<histogram name="Tabs.TabCountActiveWindow" units="tabs" expires_after="never">
<!-- expires-never: usage drives tab optimization and analysis. -->
<owner>markchang@google.com</owner>
<summary>
The number of tabs open in the active window when a load completes.
</summary>
</histogram>
<histogram name="Tabs.TabCountInGroupPerLoad" units="tabs"
expires_after="2023-06-18">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs in the current active group when a load completes.
Records 0 if the active tab is not in a group.
</summary>
</histogram>
<histogram name="Tabs.TabCountPerDomainPerLoad.{TotalTabCountBucket}"
units="tabs" expires_after="2021-06-30">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs across all browsers (counting app-mode windows) with the
same host piece when a load completes. {TotalTabCountBucket} is inclusive
and describes the total number of tabs when logging.
</summary>
<token key="TotalTabCountBucket">
<variant name="0to5" summary=""/>
<variant name="6to10" summary=""/>
<variant name="10to15" summary=""/>
<variant name="16to20" summary=""/>
<variant name="21to30" summary=""/>
<variant name="31to40" summary=""/>
<variant name="41to60" summary=""/>
<variant name="61to80" summary=""/>
<variant name="81to100" summary=""/>
<variant name="101to150" summary=""/>
<variant name="151to200" summary=""/>
<variant name="201to300" summary=""/>
<variant name="301to400" summary=""/>
<variant name="401to500" summary=""/>
<variant name="500+" summary=""/>
</token>
</histogram>
<histogram name="Tabs.TabCountPerLoad" units="tabs" expires_after="2023-08-27">
<owner>mpearson@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<owner>sbirch@google.com</owner>
<summary>
The number of tabs open in all browsers (counting app-mode windows) when a
load completes.
This is basically the average number of tabs over time.
</summary>
</histogram>
<histogram name="Tabs.TabCountPerWindow" units="tabs"
expires_after="2023-08-27">
<owner>mpearson@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The number of tabs open per window (counting app-mode windows) when a load
completes.
This value will be recorded multiple times per load if more than one window
is open.
</summary>
</histogram>
<histogram name="Tabs.TabCount{BatteryState}" units="tabs"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>chrisha@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Counts the number of tabs across all windows, reported every 5 minutes.
Desktop only.
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.TabOffsetOfSwitch{TabOffsetOfSwitchComponentList}"
units="units" expires_after="M85">
<owner>yusufo@chromium.org</owner>
<summary>
How many tabs a user moved forward or backward in the Android tab switcher.
{TabOffsetOfSwitchComponentList}
Logged by the Android tab switcher when a user switches tabs (other than by
opening a new tab). If the user switches to an earlier tab in the stack, we
log a positive offset value indicating how many tabs back they moved. If the
user switches to a later tab, we log a negative offset value. If the user
stays on the same tab, we log 0. If the user switches to a tab in a
different stack (i.e. they switch from normal to incognito or vice-versa),
we don't log a value.
</summary>
<token key="TabOffsetOfSwitchComponentList">
<variant name=".GridTabSwitcher" summary="Tab switcher in grid layout"/>
<variant name=".TabStrip" summary="The TabStrip componets"/>
</token>
</histogram>
<histogram name="Tabs.TabRestoreMethod" enum="TabRestoreMethod"
expires_after="2023-08-27">
<owner>davidjm@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<summary>
CriticalPersistedTabData is a schema based Tab restoration system which
persists Tab metadata such as web contents and time last accessed across
restarts. CriticalPersistedTabData will replace legacy hand-written
TabState.
This metric records how many Tabs are restored using
CriticalPersistedTabData, TabState, are re-created, skipped or failed to be
restored. As we migrate from TabState to CriticalPersistedTabData it is
imperative we can compare the success rate of each system vs. how many Tabs
are re-created or failed to be restored. This metric is emitted once for
each Tab restoration on startup.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.CloseAction" enum="TabSearchCloseActions"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI is shown in a bubble anchored to an
element of the UI in the browser window.
The bubble is dismissed when it loses focus or the escape key is pressed.
This metric tracks if the UI bubble was dismissed as a result of an action
taken from within the UI (such as switching to an open tab) or dismissed
without direct interaction with the Tab Search UI.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.Mojo.SwitchToTab" units="ms"
expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
The time taken to switch tab. This is measured as the time from when the
user clicks a tab in Tab Search to when the browser finishes switching tab.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.Mojo.SwitchToTab.IsOverlap" enum="Boolean"
expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Records whether there's a pending Tabs.TabSearch.Mojo.SwitchToTab
measurement when a new measurement is requested.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.Mojo.TabUpdated" units="ms"
expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
The time taken for Tab Search to update its tab list when the browser's tab
strip model changes. This is measured as the time from when the browser
emits a notification to when the WebUI updates its state.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.Mojo.TabUpdated.IsOverlap" enum="Boolean"
expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Records whether there's a pending Tabs.TabSearch.Mojo.TabUpdated measurement
when a new measurement is requested.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.NumTabsClosedPerInstance" units="tabs"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs and close any currently open tabs. This records the
number of tabs closed from a single instance of the UI (the number of tabs
closed from within Tab Search in the time between when the UI is open and
when it is closed).
</summary>
</histogram>
<histogram name="Tabs.TabSearch.NumTabsOnOpen" units="tabs"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs. It can be opened and closed. This records the number
of tabs there are in the payload Tab Search is sent when it is first opened.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.NumWindowsOnOpen" units="windows"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs. It can be opened and closed. This records the number
of windows there are in the payload Tab Search is sent when it is first
opened.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.OpenAction" enum="TabSearchOpenActions"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI is shown in a bubble anchored to an
element of the UI in the browser window.
The bubble can be invoked via a number of different means including mouse
click, keyboard navigation, keyboard shortcut or touch gesture. This metric
tracks the kind of action the user took to invoke the Tab Search bubble UI.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.PageHandlerConstructionDelay" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI is shown in a bubble anchored to an
element of the UI in the browser window.
When the WebUIController is first created it waits for the WebUI code in the
renderer process to request the creation of the TabSearchPageHandler. This
metric tracks the time between when the WebUIController was constructed to
when the TabSearchPageHandler begins construction. This metric is emitted
right before the TabSearchPageHandler's constructor is called.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.RecentlyClosedSectionToggleAction"
enum="TabSearchRecentlyClosedToggleActions" expires_after="2023-12-13">
<owner>romanarora@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI displays both open and recently closed
tabs under different list sections. The recently closed section can be
expanded or collapsed by the user by clicking a button.
This metric tracks the recently closed section being expandeded or collapsed
via the toggle button.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.RecentlyClosedSectionToggleStateOnOpen"
enum="TabSearchRecentlyClosedToggleActions" expires_after="2023-12-13">
<owner>romanarora@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI displays both open and recently closed
tabs under different list sections. The recently closed section can be
expanded or collapsed by the user by clicking a button.
This metric tracks if the recently closed section is in an expanded or
collapsed state at the time of opening the Tab Search dialog.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.IndexOf{Action}In{State}List"
units="tabs" expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs and close any currently open tabs.
This records the index at which a {Action} has been performed on a tab in
Tab Search's tab list in a {State} state.
</summary>
<token key="Action">
<variant name="CloseTab"/>
<variant name="OpenRecentlyClosedEntry"/>
<variant name="SwitchTab"/>
</token>
<token key="State">
<variant name="Filtered" summary="Filtered by user search query."/>
<variant name="Unfiltered" summary="Unfiltered by user search query."/>
</token>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.LoadCompletedTime" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad event
and the RenderFrameHost DocumentOnLoadCompleted event for the Tab Search
WebUI page.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.LoadDocumentTime" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
The amount of time between the RenderFrameHost StartProvisionalLoad and
DidFinishDocumentLoad events for the Tab Search WebUI page.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.RecentlyClosed{Item}OpenAction"
enum="TabSearchRecentlyClosedItemOpenAction" expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>chrome-cros@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs or recently closed tabs and tab groups. This records
whether the user used Tab Search to open a recently closed {Item} from a
filtered search results list or the default unfiltered list.
</summary>
<token key="Item">
<variant name="Group"/>
<variant name="Tab"/>
</token>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.SearchAlgorithmDuration" units="ms"
expires_after="2023-12-13">
<owner>yuhengh@chromium.org</owner>
<owner>chrome-cros@chromium.org</owner>
<summary>
The time taken to run the search algorithm. The algorithm takes an
unfiltered list of items and user search query as inputs, then generate a
list of filtered items as output. Recorded after the measurement ends.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.TabListDataReceived" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<summary>
The time taken for the WebUI in the renderer to receive the full list of
tabs for the current user profile. This is measured as the time from when
the data was first requested by the WebUI to when the data was received by
the WebUI.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.TabListDataReceived2" units="ms"
expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>kerenzhu@chromium.org</owner>
<summary>
The time taken for the WebUI in the renderer to receive the full list of
tabs for the current user profile. This is measured as the time from when
the data was first requested by the WebUI to when the data was received by
the WebUI.
This metric is recorded by MetricsReporter.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.TabListDataReceived2.IsOverlap"
enum="Boolean" expires_after="2023-12-13">
<owner>kerenzhu@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>kerenzhu@chromium.org</owner>
<summary>
Records whether there's a pending Tabs.TabSearch.WebUI.TabListDataReceived2
measurement when a new measurement is requested.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.TabSwitchAction"
enum="TabSearchTabSwitchAction" expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for and switch to their desired tabs. This records whether the user used Tab
Search to switch to a tab from a filtered search results list or the default
unfiltered list.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WebUI.TimeTo{Action}In{State}List" units="ms"
expires_after="2023-12-13">
<owner>yuhengh@chromium.org</owner>
<owner>chrome-cros@chromium.org</owner>
<summary>
The time taken between the tab search bubble is open and user switches to a
tab or opens a recently closed tab, with or without search query. Recorded
after the measurement ends.
</summary>
<token key="Action">
<variant name="OpenRecentlyClosedEntry"/>
<variant name="SwitchTab"/>
</token>
<token key="State">
<variant name="Filtered" summary="Filtered by user search query."/>
<variant name="Unfiltered" summary="Unfiltered by user search query."/>
</token>
</histogram>
<histogram name="Tabs.TabSearch.WindowDisplayedDuration3" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search their browsers
for their desired tabs. It can be opened and closed. This records the amount
of time between when a Tab Search bubble is opened and when it is closed. It
does so by recording the difference in time between when the the hosting
WebUIBubbleDialogView's Widget is first created and when the widget is
destroyed.
The Tab Search UI is a bubble anchored to an element within a browser window
and is closed if the user switches to a tab, presses the escape key or
performs an action to return focus to the hosting window. The Tab Search UI
bubble will also close if the hosting browser window is closed or crashes.
Users may leave the bubble open for long periods of time without directly
interacting with the UI which could result in a long tail of displayed
durations.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WindowTimeToShowCachedWebView" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI is shown in a bubble anchored to an
element of the UI in the browser window.
This tracks the time between when the Tab Search WebUI bubble widget is
first created and when it is first shown to users. This metric is only
logged if a previously cached WebView is used for the construction of the
bubble widget. This metric is emitted when the bubble window is first
revealed.
</summary>
</histogram>
<histogram name="Tabs.TabSearch.WindowTimeToShowUncachedWebView" units="ms"
expires_after="2023-12-13">
<owner>tluk@chromium.org</owner>
<owner>robliao@chromium.org</owner>
<owner>yuhengh@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<summary>
Tab Search is a feature that allows users to better search for and switch to
their desired tabs. The Tab Search UI is shown in a bubble anchored to an
element of the UI in the browser window.
This tracks the time between when the Tab Search WebUI bubble widget is
first created and when it is first shown to users. This metric is only
logged if a new WebView was created for the construction of the bubble
widget. This metric is emitted when the bubble window is first revealed.
</summary>
</histogram>
<histogram name="Tabs.TabsStatsDailyEventInterval"
enum="DailyEventIntervalType" expires_after="M77">
<owner>sebmarchand@chromium.org</owner>
<summary>
Counts how often tab stats daily interval events were fired.
</summary>
</histogram>
<histogram name="Tabs.TabState.LoadTime" units="ms" expires_after="2023-10-01">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
Time taken to load a TabState file in the event that it exists.
</summary>
</histogram>
<histogram name="Tabs.TabState.SaveTime" units="ms" expires_after="2023-06-18">
<owner>yusufo@chromium.org</owner>
<owner>nyquist@chromium.org</owner>
<owner>dtrainor@chromium.org</owner>
<owner>davidjm@chromium.org</owner>
<summary>
Time taken to save a TabState file in the event of a successful save.
</summary>
</histogram>
<histogram name="Tabs.Tasks.OrderValidOnStartup" units="boolean"
expires_after="2023-09-17">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
[Android] boolean value indicating whether the invariant that tab groups are
contiguous holds. Recorded on cold start after all tabs are restored.
</summary>
</histogram>
<histogram name="Tabs.Tasks.TabAddedWithValidProposedPosition" units="boolean"
expires_after="2023-09-17">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<summary>
[Android] boolean value indicating whether a tab that was added to the
TabModel would have been added at the correct position if
TabGroupModelFilter had not interved to move it so it respected group
position. Recorded each time a tab is added to the TabModel.
</summary>
</histogram>
<histogram name="Tabs.TimeSinceCreationAtStartup" enum="IOSAllOpenTabsAge"
expires_after="2024-01-15">
<owner>pakzhygitov@google.com</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] The age of tabs opened at cold launch. The age of a tab is the time
elapsed since its creation.
</summary>
</histogram>
<histogram name="Tabs.UnusedCountAtStartup" units="tabs"
expires_after="2024-01-15">
<owner>pakzhygitov@google.com</owner>
<owner>chromeleon@google.com</owner>
<summary>
[iOS] The number of old/unused tabs opened at cold launch. Inactive tab is a
tab that has been not interacted with for more than 7 days.
</summary>
</histogram>
<histogram name="Tabs.WindowCount{BatteryState}" units="windows"
expires_after="never">
<!-- expires-never: https://crbug.com/966137 -->
<owner>fdoray@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
Counts the number of Chrome windows, reported every 5 minutes. Desktop only.
</summary>
<token key="BatteryState" variants="BatteryState"/>
</histogram>
<histogram name="Tabs.WindowWidth" units="DIPs" expires_after="2023-09-03">
<owner>collinbaker@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The width of each open browser window, in DIPs, reported every 5 minutes.
Desktop only.
</summary>
</histogram>
<histogram name="Tabs.{TabActiveState}TabWidth" units="px"
expires_after="2023-12-01">
<owner>dpenning@chromium.org</owner>
<owner>tbergquist@chromium.org</owner>
<summary>
[Desktop] The size in pixels of the {TabActiveState} tab logged when a tab
is added. Used to collect size data for scrolling tabs.
</summary>
<token key="TabActiveState" variants="TabActiveState"/>
</histogram>
<histogram name="TabStrip.ReasonToShow" enum="TabStripReasonToShow"
expires_after="2021-02-01">
<obsolete>
Removed 01/2023. Feature deprecated and code deleted.
</obsolete>
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
When conditional tab strip shows, records which kind of intentional
tab-related action triggered it.
</summary>
</histogram>
<histogram name="TabStrip.Tab.{Framework}.ActivationAction"
enum="TabActivationTypes" expires_after="2023-12-13">
<owner>yuhengh@chromium.org</owner>
<owner>tluk@chromium.org</owner>
<owner>romanarora@chromium.org</owner>
<summary>
Tab activation triggered by click or touch on a tab. This is used to measure
tab activation count of tab strip vs WebUI tab strip.
</summary>
<token key="Framework">
<variant name="Views"/>
<variant name="WebUI"/>
</token>
</histogram>
<histogram name="TabStrip.TabCountOnPageLoad" units="tabs"
expires_after="2023-08-27">
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
This histogram records the number of tabs within the group during page load.
If the loading happens in a tab that does not belong to a group, we log 0.
Else, we log a positive number &gt;= 2.
</summary>
</histogram>
<histogram name="TabStrip.TimeToCreateNewTabFromPress" units="ms"
expires_after="2023-09-10">
<owner>robliao@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The amount of time from receiving a new tab button pressed to creating the
elements necessary to represent a new tab.
</summary>
</histogram>
<histogram name="TabStrip.TimeToSwitch" units="ms" expires_after="2023-10-22">
<owner>dpenning@chromium.org</owner>
<owner>chrome-desktop-ui-sea@google.com</owner>
<summary>
The amount of time from cursor entering the tabstrip to first click on a tab
to switch.
This will exclude some kinds of switching (hotkeys, between windows) where
it would be difficult to define a start time. Entering the tabstrip is an
approximation which will vary between users, but should still be useful for
A/B comparison.
</summary>
</histogram>
<histogram name="TabStrip.UserStatus" enum="TabStripUserStatus"
expires_after="2022-04-17">
<obsolete>
Removed 01/2023. Feature deprecated and code deleted.
</obsolete>
<owner>yusufo@chromium.org</owner>
<owner>wychen@chromium.org</owner>
<summary>
A tab strip session starts when the last time Chrome comes to the foreground
was more than an hour ago. At the beginning of a tab strip session, records
the user status of conditional tab strip feature in the last tab strip
session.
</summary>
</histogram>
</histograms>
</histogram-configuration>