<!--
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 Mobile histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="MobileFreInflationSpeedComparison">
<variant name=".FasterThanInflation"
summary="This histogram reports just those timings that were faster
than inflation."/>
<variant name=".SlowerThanInflation"
summary="This histogram reports just those timings that were slower
than inflation."/>
</variants>
<variants name="MobileInfobarType">
<variant name="InfobarTypeAutofillAddressProfile"
summary="Recorded for Autofill Address Infobar."/>
<variant name="InfobarTypeConfirm" summary="Recorded for Confirm Messages."/>
<variant name="InfobarTypeParcelTracking"
summary="Recorded for Parcel Tracking Infobar."/>
<variant name="InfobarTypePasswordSave"
summary="Recorded for Save Password Infobar."/>
<variant name="InfobarTypePasswordUpdate"
summary="Recorded for Update Password Messages."/>
<variant name="InfobarTypePermissions"
summary="Recorded for PermissionsInfobar."/>
<variant name="InfobarTypeSaveCard"
summary="Recorded for Save Card Infobar."/>
<variant name="InfobarTypeSyncError"
summary="Recorded for Sync Error Infobar."/>
<variant name="InfobarTypeTailoredSecurityService"
summary="Recorded for Tailored Security Service Infobar."/>
<variant name="InfobarTypeTranslate"
summary="Recorded for Translate Infobar."/>
</variants>
<histogram name="Mobile.AppMenu.TimeToTakeAction.Abandoned" units="ms"
expires_after="2023-05-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the user to abandon the app menu after it's shown by
pressing back or touching outside the menu. This is only logged if the menu
is abandoned. See Mobile.AppMenu.TimeToTakeAction.SelectedItem for the cases
where it is closed as a result of user interaction with the menu. Android
only.
</summary>
</histogram>
<histogram name="Mobile.AppMenu.TimeToTakeAction.SelectedItem" units="ms"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time it takes for the user to select an item. This is only logged if the
menu is closed as a result of the user clicking a menu item. See
Mobile.AppMenu.TimeToTakeAction.Abandoned for the cases where it is
abandoned by the user. Android only.
</summary>
</histogram>
<histogram name="Mobile.CanonicalURLResult" enum="CanonicalURLResult"
expires_after="2023-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The result of the operation to retrieve the page's canonical URL.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.CopyImage" enum="ContextMenuIOSCopyImage"
expires_after="2025-03-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logged when "copy image" from context menu is invoked. Log the
events happening during the copying image procedure.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.EntryPoints" enum="IOSMenuScenario"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks which context menu was shown. To drill down into a specific context
menu's usage, take a look at its actions' histogram (the format for actions
histograms is Mobile.ContextMenu.*.Actions). Currently only on iOS.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.GetImageDataByJsResult"
enum="ContextMenuIOSGetImageDataByJsResult" expires_after="2024-06-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Result of getting image data by JavaScript for CopyImage, SaveImage and
SearchByImage from iOS context menu. Recorded when the JavaScript returns,
or fails for timeout.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.LensSupportStatus"
enum="IOSLensSupportStatus" expires_after="2024-07-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not Lens is supported, and if not, the reason why. Recorded only
if the feature is enabled when the long-press context menu is shown for an
image.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.LensWebImageProcessTime" units="ms"
expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the time it takes to process an image before sending it to Lens.
Recorded when Lens is used from any entry point.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.LensWebUploadStatus"
enum="IOSLensWebUploadStatus" expires_after="2023-06-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The status of the upload of image data to Lens. Recorded only when the Lens
feature is triggered via the context menu entry from an image long-press.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.LensWebUploadTime" units="ms"
expires_after="2023-06-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the time it takes to upload image data to the Lens Web servers.
Recorded only when the Lens feature is triggered via the context menu entry
from an image long-press.
</summary>
</histogram>
<histogram name="Mobile.ContextMenu.{EntryPoint}.Actions" enum="IOSMenuAction"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks which action was selected in the context menu shown for a
{EntryPoint}. To view how often this context menu was shown, take a look at
this other histogram: Mobile.ContextMenu.EntryPoints. Currently only on iOS.
</summary>
<token key="EntryPoint">
<variant name="AutofillManualFallbackAddressEntry"
summary="Autofill manual fallback address entry"/>
<variant name="AutofillManualFallbackAllPasswordsEntry"
summary="Autofill manual fallback all passwords entry"/>
<variant name="AutofillManualFallbackPasswordEntry"
summary="Autofill manual fallback password entry"/>
<variant name="AutofillManualFallbackPaymentEntry"
summary="Autofill manual fallback payment entry"/>
<variant name="BookmarkEntry" summary="Bookmark entry"/>
<variant name="BookmarkFolder" summary="Bookmark folder"/>
<variant name="HistoryEntry" summary="History entry"/>
<variant name="InactiveTabsEntry" summary="Inactive Tabs entry"/>
<variant name="MostVisitedEntry" summary="Most Visited entry"/>
<variant name="OmniboxMostVisitedEntry"
summary="Omnibox Most Visited entry"/>
<variant name="PinnedTabsEntry" summary="Pinned Tabs entry"/>
<variant name="ReadingListEntry" summary="Reading List entry"/>
<variant name="RecentTabsEntry" summary="Recent Tabs entry"/>
<variant name="RecentTabsHeader" summary="Recent Tabs header/device"/>
<variant name="SelectDriveIdentityEntry"
summary="Select Drive Identity Entry"/>
<variant name="SortDriveItemsEntry" summary="Sort Drive Items Entry"/>
<variant name="TabGrid" summary="Tab Grid Entry"/>
<variant name="TabGridAddTo" summary="Tab Grid Add To"/>
<variant name="TabGridEdit" summary="Tab Grid Edit"/>
<variant name="TabGridSearchResult" summary="Tab Grid Search Result"/>
<variant name="TabGroupEntry" summary="Tab group view entry"/>
<variant name="TabGroupsPanelEntry" summary="Tab group panel entry"/>
<variant name="TabGroupViewEntry"
summary="Tab group view entry in tab grid"/>
<variant name="TabStrip" summary="Tab Strip tab"/>
<variant name="Toolbar" summary="Menu from a toolbar button"/>
<variant name="WebImage" summary="Image on a Web page"/>
<variant name="WebImageLink" summary="Image-Link on a Web page"/>
<variant name="WebLink" summary="Link on a Web page"/>
</token>
</histogram>
<histogram base="true" name="Mobile.DefaultBrowser.BrowserCount" units="units"
expires_after="never">
<!-- Name completed by histogram_suffixes name="Mobile.DefaultBrowser.Type" -->
<!-- expires-never: Used to keep track of Android browser ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The number of browsers installed on the device. Logged when a new
session is started.
</summary>
</histogram>
<histogram name="Mobile.DefaultBrowser.State" enum="MobileDefaultBrowserState"
expires_after="never">
<!-- expires-never: Used to keep track of Android browser ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Whether or not the device has a default browser and whether or not
it is a part of the original system image. Logged when a new session is
started.
This can be subtly misleading. Read the information below!
Some manufacturers have their initial setup program configured to install
apps rather than have the apps come pre-installed as part of the system
image. These apps that are installed during the initial setup will not be
counted as coming pre-installed in the system image. For example, on a
Samsung Galaxy Tab S7 used for testing, after a factory reset you get to
choose whether you want to install Samsung Internet Browser or not. If you
say yes and choose it, Samsung Internet Browser will be marked as not part
the system image.
Also, manufacturers may change how they set up devices over time. A
manufacturer can go from shipping a browser app as part of the system image
to downloading it during the initial setup. As a result, these metrics can
change over time even if the user preferences did not.
Consequently, browsers that are marked as "not part of the system
image" does not mean the user had to go out of their way to install
those apps. It also means that decisions made by manufacturers (when an app
gets installed)--not users--may affect the balance between "in original
system image" and "not in original system image".
</summary>
</histogram>
<histogram base="true" name="Mobile.DefaultBrowser.SystemBrowserCount"
units="units" expires_after="never">
<!-- Name completed by histogram_suffixes
name="Mobile.DefaultBrowser.SystemDefaultBrowser.Type" -->
<!-- expires-never: Used to keep track of Android browser ecosystem. -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The number of system installed browsers. Logged when a new session
is started.
</summary>
</histogram>
<histogram name="Mobile.Keyboard.LensSupportStatus" enum="IOSLensSupportStatus"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not Lens is supported in the Omnibox keyboard accessory view
(shown above the number keys upon focusing the omnibox for edit), and if
not, the reason why. Recorded each time the Omnibox keyboard is opened.
</summary>
</histogram>
<histogram name="Mobile.Messages.Badge.Tapped.{MobileInfobarType}"
enum="MobileMessagesBadgeState" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of a badge when it was tapped. {MobileInfobarType}
</summary>
<token key="MobileInfobarType" variants="MobileInfobarType"/>
</histogram>
<histogram name="Mobile.Messages.Banner.Dismiss.{MobileInfobarType}"
enum="MobileMessagesBannerDismissType" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason why an infobar banner was dismissed. {MobileInfobarType}
</summary>
<token key="MobileInfobarType" variants="MobileInfobarType"/>
</histogram>
<histogram name="Mobile.Messages.Banner.Event.{MobileInfobarType}"
enum="MobileMessagesBannerEvent" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records infobar banner events. {MobileInfobarType}</summary>
<token key="MobileInfobarType" variants="MobileInfobarType"/>
</histogram>
<histogram name="Mobile.Messages.Banner.OnScreenTime" units="ms"
expires_after="2025-02-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time an Infobar (Messages) Banner is visible on screen. Used to
know how long it takes a user to act on the banner before it gets
auto-dismissed.
</summary>
</histogram>
<histogram name="Mobile.Messages.ConcurrentPresented" units="infobars"
expires_after="2022-07-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of multiple Infobars being presented at the same time.
This will be recorded everytime an Infobar is presented.
</summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Confirm.Accept.Time" units="ms"
expires_after="2025-04-06">
<!-- Name completed by histogram_suffixes name="Mobile.Messages.Confirm.Type" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time between the Infobar Delegate is created, and the user
accepts a Confirm Infobar action.
</summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Confirm.Event"
enum="MobileMessagesConfirmInfobarEvents" expires_after="2025-06-16">
<!-- Name completed by histogram_suffixes name="Mobile.Messages.Confirm.Type" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the events related to Confirm Infobars (e.g. Presented, Accepted,
Dismissed,etc.)
</summary>
</histogram>
<histogram name="Mobile.Messages.Modal.Event.{MobileInfobarType}"
enum="MobileMessagesModalEvent" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records generic infobar modal events. {MobileInfobarType}</summary>
<token key="MobileInfobarType" variants="MobileInfobarType"/>
</histogram>
<histogram base="true" name="Mobile.Messages.OverflowRow.Tapped"
enum="MobileMessagesInfobarType" expires_after="2024-06-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records a tap on an Infobar overflow menu row.</summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Passwords.Modal.Dismiss"
enum="MobileMessagesPasswordsModalDismiss" expires_after="2025-01-05">
<!-- Name completed by histogram_suffixes name="Mobile.Messages.Password.Type" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the reason why a Password Modal was dismissed.</summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Passwords.Modal.Event"
enum="MobileMessagesPasswordsModalEvent" expires_after="2024-09-29">
<!-- Name completed by histogram_suffixes name="Mobile.Messages.Password.Type" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records Password specific Infobar Modal events.</summary>
</histogram>
<histogram base="true" name="Mobile.Messages.Passwords.Modal.Present"
enum="MobileMessagesPasswordsModalPresent" expires_after="2025-06-20">
<!-- Name completed by histogram_suffixes name="Mobile.Messages.Password.Type" -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the context when a Password Modal was presented.</summary>
</histogram>
<histogram name="Mobile.Messages.Save.Card.Modal.Event"
enum="MobileMessagesSaveCardModalEvent" expires_after="2023-10-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records Save Card specific Infobar Modal events.</summary>
</histogram>
<histogram name="Mobile.Messages.Translate.Banner.Event"
enum="MobileMessagesTranslateBannerEvent" expires_after="2025-06-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the context when an iOS user taps on a Translate Banner Action
Button.
</summary>
</histogram>
<histogram name="Mobile.Messages.Translate.Modal.Event"
enum="MobileMessagesTranslateModalEvent" expires_after="2025-01-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when an iOS user initiates an Translate specific Infobar Modal
event.
</summary>
</histogram>
<histogram name="Mobile.Messages.Translate.Modal.Present"
enum="MobileMessagesTranslateModalPresent" expires_after="2025-06-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the context when an iOS user initiates a Translate Modal
presentation.
</summary>
</histogram>
<histogram name="Mobile.NewTabPage.LensSupportStatus"
enum="IOSLensSupportStatus" expires_after="2024-07-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not Lens is supported in the new tab page, and if not, the reason
why. Recorded when a new tab is created. Subsequent navigations to an
existing new tab page will not log the event.
</summary>
</histogram>
<histogram name="Mobile.PlusButton.LensSupportStatus"
enum="IOSLensSupportStatus" expires_after="2024-07-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not Lens is supported in the new tab opener "plus"
button long press menu, and if not, the reason why. Recorded when the user
long presses the new tab opener "plus" button.
</summary>
</histogram>
<histogram name="Mobile.RecentTabsManager.TotalTabsFromOtherDevicesOpenAll"
units="count" expires_after="2024-09-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total number of tabs opened when Open all was selected from
other devices in Recent Tabs, iOS only. Warning: this histogram expired
between 2023-04-19 and M119.
</summary>
</histogram>
<histogram name="Mobile.Share.EntryPoints" enum="IOSActivityScenario"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<improvement direction="HIGHER_IS_BETTER"/>
<summary>
Tracks which sharing entry point was triggered. To view the outcome of these
sharing scenarios, take a look at their actions' histogram (the format is
Mobile.Share.*.Actions). Currently only on iOS.
</summary>
</histogram>
<histogram name="Mobile.Share.{EntryPoint}.Actions" enum="IOSShareAction"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the sharing actions executed when the sharing scenario was initiated
for a {EntryPoint}. To view how often this sharing scenario was triggered,
take a look at: Mobile.Share.EntryPoints. Currently only on iOS. Expired
between 2023-05-06 and 2023-07-07.
</summary>
<token key="EntryPoint">
<variant name="BookmarkEntry" summary="Bookmark entry"/>
<variant name="HistoryEntry" summary="History entry"/>
<variant name="MostVisitedEntry" summary="Most Visited entry"/>
<variant name="OmniboxMostVisitedEntry"
summary="Omnibox Most Visited entry"/>
<variant name="QRCodeImage" summary="QR code image"/>
<variant name="ReadingListEntry" summary="Reading List entry"/>
<variant name="RecentTabsEntry" summary="Recent Tabs entry"/>
<variant name="ShareChrome" summary="link to Chrome in the app store"/>
<variant name="SharedHighlight" summary="highlighted fragment"/>
<variant name="ShareInContextMenu" summary="share in context menu"/>
<variant name="TabGridItem" summary="tab grid item"/>
<variant name="TabGridSelectionMode" summary="tab grid selection mode"/>
<variant name="TabShareButton" summary="current tab"/>
<variant name="TabStripItem" summary="tab strip item"/>
</token>
</histogram>
<histogram name="Mobile.Spotlight.LensSupportStatus"
enum="IOSLensSupportStatus" expires_after="2024-07-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not Lens is supported in iOS spotlight search, and if not, the
reason why. Recorded once when the spotlight actions are populated, which
happens after app startup.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Action.Click"
enum="SystemNotificationActionType" expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Records which Android notifications users interact with. Recorded when an
user taps the button in a notification, for any Chrome-generated
notification on Android that includes a button tap-target.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Action.Click.Age" units="minutes"
expires_after="never">
<!-- Name completed by histogram_suffixes
name="SystemNotificationAgeType" -->
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Records the duration in minutes from the time when the system notification
is shown to the time that the user clicked on an action button on the
Android notification.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Blocked"
enum="SystemNotificationType" expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Android: Represents the number of system notifications that were blocked and
could not be shown by type.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.BlockedAfterShown"
enum="SystemNotificationType" expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Android: Represents the type of notification that was last shown before the
user disabled notification permissions on Chrome. This is only logged the
first time we attempt to show a notification and fail.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.ChannelBlocked"
enum="SystemNotificationType" expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Android: Represents the number of system notifications by type that we
attempted to show but were blocked, due to their notification channel being
blocked. Only applies to devices on Android O and above.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Content.Click"
enum="SystemNotificationType" expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of notification when the user clicks the body of Android
notification. This does not include clicks on notification action buttons.
This histogram is of special interest to the chrome-analysis-team@. Do not
change its semantics or retire it without talking to them first.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Content.Click.Age" units="minutes"
expires_after="never">
<!-- Name completed by histogram_suffixes
name="SystemNotificationAgeType" -->
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Records the duration in minutes from the time when the system notification
is shown to the time that the user clicked the notification on Android.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Dismiss"
enum="SystemNotificationType" expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Records the type of notification when the user dismisses the Android
notification.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Dismiss.Age" units="minutes"
expires_after="never">
<!-- Name completed by histogram_suffixes
name="SystemNotificationAgeType" -->
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Records the duration in minutes from the time when the system notification
is shown to the time that the user dismissed the notification on Android.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Permission.Change"
enum="BooleanEnabled" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the notification permission state every time Android notifies Chrome
of a change, this includes when granting access via the OS prompt and
granting/blocking access via the OS settings.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.DuplicatePreUnsubscribeRealDelay"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded for each `PRE_UNSUBSCRIBE` intent that is identified as a
duplicate; and measures the time elapsed starting when the most recent
non-duplicate `PRE_UNSUBSCRIBE` intent was dispatched and stopping when this
duplicate intent is dispatched.
Measure time as `elapsedRealtime`, which includes time spent in power-saving
modes and/or display being dark, to approximate delays as perceived by the
user.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.IsDuplicatePreUnsubscribe"
enum="Boolean" expires_after="2025-01-26">
<owner>[email protected]</owner>
<summary>
Records whether the origin was already in the provisionally unsubscribed
state when a tap on the `PRE_UNSUBSCRIBE` action button was processed. This
can happen in case the native startup takes a long time and the user hits
the button twice while waiting.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.PreUnsubscribePreNativeDuration"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long the pre-native processing for the `PRE_UNSUBSCRIBE` action
button intent took. The clocks starts when the broadcast receiver
syncronously calls into `onNotificationPreUnsubcribe`; and ends when the
posted task to show the `provisionally unsubscribed` notification and
suspend all other notifications is completed. Only recorded for each
non-duplicate tap on the `PRE_UNSUBSCRIBE` action.
Measures time as `uptimeMillis`, which stops the clock when in power-saving
modes and/or display being dark.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.PreUnsubscribePreNativeRealDuration"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long the pre-native processing for the `PRE_UNSUBSCRIBE` action
button intent took. The clocks starts when the broadcast receiver
syncronously calls into `onNotificationPreUnsubcribe`; and ends when the
posted task to show the `provisionally unsubscribed` notification and
suspend all other notifications is completed. Only recorded for each
non-duplicate tap on the `PRE_UNSUBSCRIBE` action.
Measures time as `elapsedRealtime`, which includes time spent in
power-saving modes and/or display being dark.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.SuspendedNotificationCount"
units="notifications" expires_after="2025-01-26">
<owner>[email protected]</owner>
<summary>
Records the number of notifications that were suspended, each time the user
hits the `PRE_UNSUBSCRIBE` action button. The count includes the clicked
notification.
</summary>
</histogram>
<histogram
name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.WasGlobalStatePreserved.{ForAction}"
enum="Boolean" expires_after="2025-01-26">
<owner>[email protected]</owner>
<summary>
Records whether the Java global state was preserved between the
`PRE_UNSUBSCRIBE` action, and the `COMMIT_UNSUBSCRIBE_*` or
`UNDO_UNSUBSCRIBE` actions.
</summary>
<token key="ForAction">
<variant name="Commit"
summary="Measure at the time a commit action is performed."/>
<variant name="Undo"
summary="Measure at the time an undo action is performed."/>
</token>
</histogram>
<histogram name="Mobile.SystemNotification.Permission.OSPromptResult"
enum="BooleanEnabled" expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the action taken by the user after being shown the OS prompt to
grant notification permissions. Only recorded on Android T+.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Permission.RationaleResult"
enum="NotificationRationaleResult" expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the action taken by the user after being shown the notification
rationale prompt. Only recorded on Android T+.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Permission.StartupRequestCount"
units="attempts" expires_after="2024-07-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many times we've shown the user any notification permission UI
(either rationale and/or OS prompt) on startup. Recorded every time we are
about to show any UI. Only recorded on Android T+.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Permission.StartupState"
enum="NotificationPermissionState" expires_after="2023-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the current state of the notification permission and if disabled the
reason. Recorded on startup before any permission prompts are shown. Only
recorded on Android T+.
</summary>
</histogram>
<histogram name="Mobile.SystemNotification.Shown" enum="SystemNotificationType"
expires_after="never">
<!-- expires-never: Core Android notification metrics. Used by multiple teams. -->
<owner>[email protected]</owner>
<summary>
Android: Represents the number of system notifications that will be
successfully shown to the user by type.
</summary>
</histogram>
<histogram name="Mobile.Translate.Unused.Count" units="units"
expires_after="2023-07-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a histogram for an infobar (both legacy and Messages) that the user
did not interact with throughout its lifetime.
</summary>
</histogram>
<histogram name="MobileDownload.DownloadLaterPromptStatus"
enum="DownloadLaterPromptStatus" expires_after="2023-02-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records whether download later dialog will be shown to the user.
Recorded when the download later preference is initialized in native.
</summary>
</histogram>
<histogram name="MobileDownload.DownloadPromptStatus"
enum="DownloadPromptStatus" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records whether download dialog will be shown to the user. Recorded
when the download preference is initialized in native.
</summary>
</histogram>
<histogram name="MobileDownload.Location.Dialog.DirectoryType"
enum="DownloadLocationDirectoryType" expires_after="2022-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the directory type when the user selects the download directory
through download location dialog. May be recorded even when the user didn't
download anything.
</summary>
</histogram>
<histogram name="MobileDownload.Location.Dialog.Result"
enum="DownloadLocationDialogResult" expires_after="2022-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the user accepted or dismissed the dialog to select a
download location.
</summary>
</histogram>
<histogram name="MobileDownload.Location.Dialog.Suggestion.Events"
enum="DownloadLocationSuggestionEvent" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the download location suggestion event.</summary>
</histogram>
<histogram name="MobileDownload.Location.Dialog.SuggestionSelected"
enum="BooleanSelected" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the download location suggestion choice.</summary>
</histogram>
<histogram name="MobileDownload.Location.Dialog.Type"
enum="DownloadLocationDialogType" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the download location dialog type when the dialog is shown to the
user.
</summary>
</histogram>
<histogram name="MobileDownload.Location.DirectoryType"
enum="DownloadLocationDirectoryType" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the directory type shown when a user opens download location dialog
or download location setting. This is recorded when the directory provider
generates a list of available directories.
</summary>
</histogram>
<histogram name="MobileDownload.Location.Download.DirectoryType"
enum="DownloadLocationDirectoryType" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Records the directory type when download is completed.</summary>
</histogram>
<histogram name="MobileDownload.Location.Setting.DirectoryType"
enum="DownloadLocationDirectoryType" expires_after="2023-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the directory type when the user selects the download directory
through download preference. May be recorded even when the user didn't
download anything.
</summary>
</histogram>
<histogram
name="MobileFre.CctTos.EnterprisePolicyCheckSpeed2{MobileFreInflationSpeedComparison}"
units="ms" expires_after="2022-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records the time it takes from ToS fragment attached to the
activity to the enterprise policy check completing. This check is often
skipped when its result becomes irrelevant.
{MobileFreInflationSpeedComparison}
</summary>
<token key="MobileFreInflationSpeedComparison"
variants="MobileFreInflationSpeedComparison"/>
</histogram>
<histogram
name="MobileFre.CctTos.IsDeviceOwnedCheckSpeed2{MobileFreInflationSpeedComparison}"
units="ms" expires_after="2022-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records the time it takes from ToS fragment attached to the
activity to the device ownership check completing.
{MobileFreInflationSpeedComparison}
</summary>
<token key="MobileFreInflationSpeedComparison"
variants="MobileFreInflationSpeedComparison"/>
</histogram>
<histogram name="MobileFre.CctTos.LoadingDuration" units="ms"
expires_after="2022-05-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records how long it takes to load the enterprise CCT/ToS fragment.
</summary>
</histogram>
<histogram name="MobileFre.ChildAccountStatusDuration" units="ms"
expires_after="2023-11-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The amount of time spent fetching child account status during the
FRE. Not applicable for light weight FRE.
</summary>
</histogram>
<histogram base="true" name="MobileFre.FragmentInflationSpeed" units="ms"
expires_after="2023-06-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Enterprise FRE cannot fully show the first page until the
appRestrictions call returns. This suffixed histogram measures when fragment
inflation was slower or faster than the appRestrictions call, and wether the
UI had to wait. Note this is recorded for all clients, not just enterprise.
Not applicable for light weight FRE.
</summary>
</histogram>
<histogram name="MobileFre.FromLaunch.{Target}" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time between when the FRE intent was initially constructed and
when {Target}. Not emitted for the light-weight FRE. Android chrome only.
</summary>
<token key="Target">
<variant name="ActivityInflated"
summary="the activity is ready to be drawn, although likely empty"/>
<variant name="ChildStatusAvailable"
summary="the child account status is loaded"/>
<variant name="FirstFragmentInflatedV2"
summary="the first fragment is ready to be drawn, the first
meaningful paint. Version V2 fixed an issue that previous
data was not recording the time duration from FRE launched"/>
<variant name="FreCompleted" summary="the entire FRE is completed"/>
<variant name="NativeInitialized" summary="the native code is initialized"/>
<variant name="NativePolicyAndChildStatusLoaded"
summary="the native code, policies and child account status are
loaded"/>
<variant name="PoliciesLoaded" summary="policies are loaded"/>
<variant name="TosAccepted" summary="the ToS is accepted"/>
<variant name="TriggerLayoutInflation"
summary="layout inflation is triggered"/>
</token>
</histogram>
<histogram name="MobileFre.NativeInitialized" units="ms"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The amount of time spent between FRE started and native
initialization. Recorded when native is fully initialized.
</summary>
</histogram>
<histogram name="MobileFre.Progress" enum="MobileFreProgress"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: Records which states of the "first run experience" have
been reached. Each bucket represents a state and recorded everytime the
state changed. Pages can be double counted if the user goes backwards in the
flow.
</summary>
</histogram>
<histogram name="MobileFre.SignInChoice" enum="MobileFreSignInChoice"
expires_after="M82">
<owner>[email protected]</owner>
<summary>
Android: How the user left the sign-in part of the "first run
experience" activity (M-38+).
</summary>
</histogram>
<histogram name="MobileFre.SlowestLoadPoint" enum="LoadPoint"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Slowest loading point among native, policy and child account status in the
signin mobile FRE. Not emitted for the light-weight FRE. Android chrome
only.
</summary>
</histogram>
<histogram name="MobileFre.TosFragment.SpinnerVisibleDuration" units="ms"
expires_after="2022-02-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The amount of time that the small spinner, which become visible
after the ToS is accepted, is showing on screen.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.DurationAfterPotraitRotation" units="ms"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records the duration that a fullscreen video is played after device
rotates from portrait to landscape mode for the first time, and before it
exits fullscreen. If there is no device rotation or if the video starts with
landscape mode, it is not recorded. If there are mutiple rotations between
portrait and landscape mode, only one record is emitted and it is equal to
the time period from the first rotation to the moment when the video exits
fullscreen.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.LandscapeDuration" units="ms"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records the duration that a fullscreen video is played in landscape
mode. If a video starts playing in landscape mode, and then it is switched
back and forth between landscape and portrait mode, only the time period
before the first switch is accounted. If a video starts playing in portrait
mode, it is not recorded.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.LandscapeRotation" enum="BooleanEnabled"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records whether a fullscreen video is switched from landscape to
portrait mode at any point during playback.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.OrientationPortrait"
enum="BooleanEnabled" expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records the device orientation when a video enters fullscreen. The
value is true if device orientation is portrait, or false otherwise. The
video doesn't necessarily needs to be in a playing state.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.PortraitDuration" units="ms"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records the duration that a fullscreen video is played in portrait
mode. If a video starts playing in portrait mode, and then it is switched
back and forth between landscape and portrait mode, only the time period
before the first switch is accounted. If a video starts playing in landscape
mode, it is not recorded.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.PortraitRotation" enum="BooleanEnabled"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records whether a fullscreen video is switched from portrait to
landscape mode at any point during playback.
</summary>
</histogram>
<histogram name="MobileFullscreenVideo.VideoPortrait" enum="BooleanEnabled"
expires_after="M85">
<owner>[email protected]</owner>
<summary>
Android: Records whether a video has a larger height than width when it
enters the fullscreen mode.
</summary>
</histogram>
<histogram name="MobileIntent.PageLoadDueToExternalApp" enum="ClientAppId"
expires_after="never">
<!-- expires-never: Navigation (external-apps) heartbeat metric for Android. -->
<owner>[email protected]</owner>
<summary>
Android: Count of page loads started by intents from external apps. In M87
the reporting of this histogram was updated to exclude intents sent from
Chrome itself.
</summary>
</histogram>
<histogram name="MobileOmnibox.LongPressPasteAge" units="ms"
expires_after="2021-04-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when user long presses and pastes clipboard content into omnibox.
The value indicates the estimated age of the clipboard.
Intended to be compared to Omnibox.ClipboardSuggestionShownAge.
</summary>
</histogram>
<histogram name="MobileOmnibox.PopupOpenDuration" units="ms"
expires_after="2022-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the omnibox popup is closed. Indicates the duration it was
open.
</summary>
</histogram>
<histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a user presses an omnibox suggestion based on the content of the
clipboard, this histograms records how long ago Chrome detected a change in
the clipboard.
Intended to be compared to Omnibox.ClipboardSuggestionShownAge.
If Chrome never detected a change to the clipboard, no clipboard suggestion
is shown, meaning this histogram will never be emitted to.
</summary>
</histogram>
<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilDismiss"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the signin promo is implicitly dismissed (by closing
the bookmark manager) per impression.
</summary>
</histogram>
<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilSigninButtons"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times one of the "sign in" buttons (any of the
signed-out "Sign in to Chrome" button, the "Continue as
|name|" button, or the "Not |email|?" button) is clicked per
impression.
</summary>
</histogram>
<histogram name="MobileSignInPromo.BookmarkManager.ImpressionsTilXButton"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the explicit "X"-to-close button is clicked
per impression.
</summary>
</histogram>
<histogram name="MobileSignInPromo.NTPFeedTop.ImpressionsTilDismiss"
units="impressions" expires_after="2024-09-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the signin promo is implicitly dismissed (by leaving
the NTP) per impression of the NTP feed top section sign in promo.
</summary>
</histogram>
<histogram name="MobileSignInPromo.NTPFeedTop.ImpressionsTilSigninButtons"
units="impressions" expires_after="2023-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times one of the "sign in" buttons (any of the
signed-out "Sign in to Chrome" button, the "Continue as
|name|" button, or the "Not |email|?" button) is clicked per
impression of the NTP feed top section sign in promo.
</summary>
</histogram>
<histogram name="MobileSignInPromo.NTPFeedTop.ImpressionsTilXButton"
units="impressions" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the explicit "X"-to-close button is clicked
per impression of the NTP feed top section sign in promo.
</summary>
</histogram>
<histogram name="MobileSignInPromo.ReadingList.ImpressionsTilDismiss"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the signin promo is implicitly dismissed (by closing
the reading list) per impression. Recorded when the sign-in promo is removed
from the reading list view without being used. If the promo is removed by
user authentication (eg. sign-in from another view), the histogram is not
recorded.
</summary>
</histogram>
<histogram name="MobileSignInPromo.ReadingList.ImpressionsTilSigninButtons"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times one of the "sign in" buttons (any of the
signed-out "Sign in to Chrome" button, the "Continue as
|name|" button, or the "Not |email|?" button) is clicked per
impression in the reading list. Recorded when one of those buttons from the
reading list sign-in promo is clicked.
</summary>
</histogram>
<histogram name="MobileSignInPromo.ReadingList.ImpressionsTilXButton"
units="impressions" expires_after="2025-04-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how many times the explicit "X"-to-close button is clicked
per impression in the reading list. Recorded when the "X"-to-close
button from the reading list sign-in promo is clicked.
</summary>
</histogram>
<histogram name="MobileStartup.DailyLaunchCount" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android only.
The number of times the tabbed mode of Chrome is launched within a given 24
hour window. Recall that custom tabs is not considered tabbed mode. A
"launch" here is defined as anytime the tabbed mode is made
visible (foregrounded), but all Chrome activities must be completely hidden
before we'll count an additional launch. It includes all kinds of intents,
such as MAIN and VIEW. By ensuring all Chrome activities are hidden, we
avoid overcounting by going to Settings and returning to Chrome.
This launch definition includes some items one might not expect: (i) click a
link in Chrome that opens in another app, then click back. (ii) have Chrome
in the foreground, then the screen times out (goes blank) or engages the
lock screen, then wake up/unlock the device. (iii) switch to
"Recents", then re-select Chrome. In all these cases, Chrome has
gone to the background so returning to it counts as another launch.
The value reported reflects activity over a 24-hour window in the past,
possibly the distant past. Reporting is controlled by storing an initial
launch timestamp and counting all "launches" as a count until a
new launch happens after the 24hr window has elapsed (at this point, a new
24hr window is started). The count is reported at the start of the next 24hr
window, so this is a retroactive count. For example, if a user uses Chrome
in one day two months ago, then doesn't use Chrome at all, then when Chrome
launches today it'll report the value during that 24-hour window.
</summary>
</histogram>
<histogram name="MobileStartup.IntentToCreationTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Android: The time it takes from creating an intent for ChromeActivity to
activity creation. This includes activity creation time spent in the
framework.
</summary>
</histogram>
<histogram name="MobileStartup.LaunchCause" enum="LaunchCause"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records what caused Chrome to be launched.
Recorded for all types of ChromeActivity, in all cases where Chrome becomes
visible to the user, or intentionally transitions between Chrome Activities.
</summary>
</histogram>
<histogram base="true" name="MobileStartup.ToolbarInflationTime" units="ms"
expires_after="2023-12-28">
<owner>[email protected]</owner>
<summary>
Android: The time spent performing toolbar layout inflation.
</summary>
</histogram>
</histograms>
</histogram-configuration>