chromium/tools/metrics/histograms/metadata/notifications/histograms.xml

<!--
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 Notifications 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="MacOSNotificationStyle">
  <variant name="Alert" summary="Alert: Stays on screen"/>
  <variant name="AppShim" summary="AppShim: Attributed to a PWA"/>
  <variant name="Banner" summary="Banner: Auto dismisses"/>
</variants>

<variants name="NotificationAction">
  <variant name="ClickedBody.BadClick"
      summary="User performed a 'bad click' on the body of a notification,
               which is a click that did not do anything."/>
  <variant name="ClickedBody.GoodClick"
      summary="User performed a 'good click' on the body of a notification,
               which is a click that did do some actions."/>
  <variant name="CountOfNotificationShownInFirstMinutePerUser"
      summary="Count of notifications displayed in the first minute since
               login for a user"/>
  <variant name="NotificationAdded"
      summary="A notification was created and it was shown"/>
  <variant name="Popup.ClickedActionButton"
      summary="User clicks on an action button of a popup notification"/>
  <variant name="Popup.ClickedBody"
      summary="User clicks the body of a popup notification"/>
  <variant name="Popup.ClosedByUser.Click"
      summary="User closes a popup notification by clicking on the close
               button"/>
  <variant name="Popup.ClosedByUser.Swipe"
      summary="User closes a popup notification by swiping it away"/>
  <variant name="Popup.ExpireToTray"
      summary="A popup notification times out and is hidden (but still
               visible in the message center)"/>
  <variant name="Popup.Hover"
      summary="User hover on the body of a popup notification"/>
  <variant name="Popup.InlineReplySent"
      summary="User sends an inline reply in a popup notification"/>
  <variant name="Popup.SettingsShown.HoverControls"
      summary="User opens the settings of a popup notification by clicking on
               the hover button"/>
  <variant name="Popup.Shown" summary="A popup notification is shown"/>
  <variant name="Popup.Snoozed.HoverControls"
      summary="User clicks on the snooze button of a popup notification"/>
  <variant name="Tray.ClickedActionButton"
      summary="User clicks on the action button of a notification in the tray"/>
  <variant name="Tray.ClickedBody"
      summary="User clicks on the body of a notification in the tray"/>
  <variant name="Tray.ClosedByClearAll"
      summary="A tray notification is closed after the user clicks on the
               Clear All button (note that this is logged for each
               notification dismissed)"/>
  <variant name="Tray.ClosedByUser.Click"
      summary="User closes a tray notification by clicking on the close
               button"/>
  <variant name="Tray.ClosedByUser.Swipe"
      summary="User closes a tray notification by swiping it away"/>
  <variant name="Tray.Hover"
      summary="User hover on the body of a notification in the tray"/>
  <variant name="Tray.InlineReplySent"
      summary="User sends an inline reply for a tray notification"/>
  <variant name="Tray.SettingsShown.HoverControls"
      summary="User opens the settings by clicking on the hover button of a
               tray notification"/>
  <variant name="Tray.SettingsShown.SlideControls"
      summary="User opens the settings by clicking on the slide settings
               button of a tray notification"/>
  <variant name="Tray.Snoozed.HoverControls"
      summary="User snoozes a notification by clicking on the hover button of
               a tray notification"/>
  <variant name="Tray.Snoozed.SlideControls"
      summary="User snoozes a notification by clicking on the snooze button
               of a tray notification"/>
</variants>

<histogram name="Notifications.Actions" enum="NotificationActionType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The actions taken on notifications, recorded every time they happen. This
    histogram will record every single event that happens separately.
  </summary>
</histogram>

<histogram name="Notifications.Android.Build" enum="BooleanSuccess"
    expires_after="2024-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether we could successfully build a notification using Android's
    Notification Builder. If unsuccessful, we will silently drop the
    notification display request.
  </summary>
</histogram>

<histogram
    name="Notifications.Android.CachedChannelsStatusOnFirstGetRuleIterator"
    enum="BooleanInitialized" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when the first GetRuleIterator() is called to retrieve notification
    channel content settings, whether cached channels are initialized. This is
    only recorded on non-incognito profile and is only recorded once per browser
    session.
  </summary>
</histogram>

<histogram name="Notifications.Android.JobIsAlreadyPending{IntentAction}"
    enum="Boolean" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded before a call to JobScheduler.schedule() in response to a
    notification intent, and indicates whether there was a job already pending
    with the same ID.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.JobNativeStartupDuration{IntentAction}"
    units="ms" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how long native start-up took before dispatching a notification
    event to the NotificationPlatformBridge. For completeness, a sample is
    recorded also when native start-up was already partially or fully complete,
    in which cases significantly shorter durations are expected. Only measured
    on Android N and above.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.JobPendingReason{IntentAction}"
    enum="NotificationPendingJobReason" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    After a call to JobScheduler.schedule() to handle a notification click,
    records whether the job ends up pending, and if so, the reason why. Recorded
    only in Android U and later.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.JobScheduleResult{IntentAction}"
    enum="BooleanSuccess" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records wheher JobScheduler.schedule() succeeds when it is called to
    schedule a job with the JobScheduler to handle a notification click.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.JobStage{IntentAction}"
    enum="NotificationJobStage" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    After a call to JobScheduler.schedule() to handle a notification click,
    records a sample into a specific bucket whenever the job reaches a specific
    stage.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.JobStartDelay{IntentAction}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the delay between scheduling a job with the JobScheduler (with a
    desired latency of 0ms, in response to a notification click) and receiving
    the onStartJob callback. Only measured on Android N and above.
  </summary>
  <token key="IntentAction">
    <variant name="" summary="Counts intents with every action."/>
    <variant name=".PreUnsubscribe"
        summary="Counts only intents with action PRE_UNSUBSCRIBE."/>
  </token>
</histogram>

<histogram name="Notifications.Android.SitesChannel" enum="BooleanUsage"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <summary>
    Recorded when the Sites channel (which we hope to deprecate) is used as a
    fallback, when a site-specific notification channel is expected to exist but
    does not. Note, we only log when the sites channel is *used*, not when it is
    not used.
  </summary>
</histogram>

<histogram name="Notifications.AppNotificationStatus"
    enum="NotificationAppStatus" expires_after="never">
<!-- expires-never: Indicates whether Chrome has notification permission. -->

  <owner>[email protected]</owner>
  <summary>
    Records whether notifications are enabled for Chrome, as the Android app,
    for each Web Notification that is being shown to the user.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.ClosedCount"
    units="notifications" expires_after="2023-11-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of muted notifications that got closed programmatically (e.g. by
    the developer via JS) during a screen capture session before they were shown
    to the user. Logged once after each screen capture session ends.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.MutedCount"
    units="notifications" expires_after="2023-09-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of notifications that got muted during a screen capture session
    instead of being shown to the user. This number might be higher than the
    actual number of queued notifications at the end of a session as some
    notifications might have been closed programmatically before that. Logged
    once after each screen capture session ends.

    This metric was expired between August 2022 and January 2023, and may be
    missing data until M111.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.ReplacedCount"
    units="notifications" expires_after="2023-09-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of muted notifications that got replaced during a screen capture
    session. The user will only see the final state of the notification without
    the previous versions. Logged once after each screen capture session ends.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.RevealDuration" units="ms"
    expires_after="2023-07-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time from the start of a screen capture session until the user
    decided to reveal notification content again. Only logged if and when the
    user takes that action.

    This metric was expired between June 2022 and January 2023, and may be
    missing data until M111.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.SessionDuration"
    units="ms" expires_after="2023-11-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the length of a screen capture session. Notifications will be muted
    initially but the user may reveal them during a session. This metric will be
    logged after the screen capture session ends.

    This metric was expired between December 2022 and January 2023, and may be
    missing data until M111.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.SnoozedCount"
    units="notifications" expires_after="2023-07-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of snoozed notifications that got prevented from showing up on
    screen during a screen capture session. This means that the user clicked on
    the &quot;Snooze&quot; action of a muted notification and continued to
    receive notifications but we queued them without notifying the user at all.
    Logged once after each screen capture session ends.

    This metric was expired between August 2022 and January 2023, and may be
    missing data until M111.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used. We expect that the number of &quot;0&quot;
    samples is likely an overestimate because of this. This issue is tracked in
    crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Chime.Android.Events" enum="ChimeEvent"
    expires_after="never">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
<!-- expires-never: Monitors Chime notification stability. -->

  <summary>
    Various events when Chrome interacts with Chime notification platform.
    Recorded when Chrome registers to Chime service, receives notifications, and
    the user interacts with the notification.
  </summary>
</histogram>

<histogram name="Notifications.Chime.Android.Registration"
    enum="BooleanSuccess" expires_after="never">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
<!-- expires-never: Monitors Chime notification stability. -->

  <summary>
    Records the result of Chime notification platform registration. Each device
    may have multiple accounts registered. The registration happens right after
    opening Chrome.
  </summary>
</histogram>

<histogram name="Notifications.Cros.Actions.{NotificationAction}"
    enum="NotificationTypeDetailed" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the notification type when a notification interaction occurs:
    {NotificationAction}. ChromeOS only.
  </summary>
  <token key="NotificationAction" variants="NotificationAction"/>
</histogram>

<histogram
    name="Notifications.Cros.Actions.{NotificationAction}.GroupedByCatalog"
    enum="NotificationCatalogName" expires_after="2025-03-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the notification catalog name when a notification interaction
    occurs: {NotificationAction}. ChromeOS only.
  </summary>
  <token key="NotificationAction" variants="NotificationAction"/>
</histogram>

<histogram name="Notifications.Database.DeleteAllForOriginsResult"
    enum="NotificationDatabaseStatus" expires_after="M98">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of deleting all notification data for given
    origins. This happens when notification permissions are revoked for a site.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteBeforeWriteResult"
    enum="NotificationDatabaseStatus" expires_after="2024-01-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of deleting notification data from the Web
    Notification database that share their tag (replacement identifier) with a
    notification that's about to be shown.

    This metric was expired between May 2022 and July 2023 and may be missing
    data.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteResult"
    enum="NotificationDatabaseStatus" expires_after="2024-01-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of deleting notification data from the Web
    Notification database.

    This metric was expired between May 2022 and July 2023 and may be missing
    data.
  </summary>
</histogram>

<histogram name="Notifications.Database.DestroyResult"
    enum="NotificationDatabaseStatus" expires_after="2024-01-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of destroying the Web Notification database
    altogether.

    This metric was expired between May 2022 and July 2023 and may be missing
    data.
  </summary>
</histogram>

<histogram name="Notifications.Database.ExpiredNotificationCount"
    units="notifications" expires_after="2023-10-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of expired notifications that were stored in the database
    and therefore got removed and closed on the system. Logged once at startup
    and every time we synchronize notifications after that (e.g. to schedule the
    next notification trigger event).
  </summary>
</histogram>

<histogram name="Notifications.Database.OldestNotificationTimeInMinutes"
    units="minutes" expires_after="2022-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the age of the oldest notification for an origin. Logged after
    handling a push event for that origin.
  </summary>
</histogram>

<histogram name="Notifications.Database.OpenAfterCorruptionResult"
    enum="NotificationDatabaseStatus" expires_after="2024-01-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of opening the Web Notification database
    after it has been destroyed in response to data corruption.

    This metric was expired between May 2022 and July 2023 and may be missing
    data.
  </summary>
</histogram>

<histogram name="Notifications.Database.OpenResult"
    enum="NotificationDatabaseStatus" expires_after="never">
<!-- expires-never: core storage metric; consumed in separate dashboard (go/chrome-storage-dashboard) -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of opening the Web Notification database.

    This metric may be logged at possibly inappropriate times, such as when
    system profiles are being used, for which the notification database is
    usually not required. This issue is tracked in crbug.com/1385455.
  </summary>
</histogram>

<histogram name="Notifications.Database.ReadForServiceWorkerResult"
    enum="NotificationDatabaseStatus" expires_after="2024-01-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of reading data of all notifications
    associated with a Service Worker from the Web Notification database.

    This metric was expired between May 2022 and July 2023 and may be missing
    data.
  </summary>
</histogram>

<histogram name="Notifications.Database.ReadResult"
    enum="NotificationDatabaseStatus" expires_after="2023-06-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of reading data of a single notification
    from the Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.Database.WriteResult"
    enum="NotificationDatabaseStatus" expires_after="2023-04-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result status codes of writing data for a notification to the
    Web Notification database.
  </summary>
</histogram>

<histogram name="Notifications.LoadProfileResult" enum="BooleanSuccess"
    expires_after="2022-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of loading the profile when forwarding a notification
    event. Logged on each notification action (click, close, settings, disable)
    on platforms that use system notifications (not on Chrome OS or when we're
    using Chrome's notifications).
  </summary>
</histogram>

<histogram name="Notifications.macOS.AppShimProcess.UptimeOnDisconnect"
    units="ms" expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The uptime of the notification service in an app shim (PWA) process. Logged
    when the connection to the service in an app shim process is lost, either on
    purpose or because the connection was lost unexpectedly.
  </summary>
</histogram>

<histogram
    name="Notifications.macOS.AppShimProcess.UptimeOnUnexpectedDisconnect"
    units="ms" expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The uptime of the notification service in an app shim (PWA) process before
    it got killed unexpectedly (for example crashed). Logged when the connection
    to the notification service in the app shim process dies, and this wasn't
    because the user closed the app nor because chrome initiated the disconnect.
  </summary>
</histogram>

<histogram name="Notifications.macOS.ServiceProcessKilled" units="ms"
    expires_after="2024-08-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The uptime of the macOS notification service process to display alerts
    before it got killed unexpectedly. Logged when the service process dies.

    This histogram was expired between 2022-08-07 and 2023-09-06. Data might be
    missing or incomplete for this period.
  </summary>
</histogram>

<histogram name="Notifications.macOS.ServiceProcessRuntime" units="ms"
    expires_after="2024-08-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The uptime of the macOS notification service process to display alerts.
    Logged when we close the connection to the service process either on purpose
    or after it got killed unexpectedly.

    This histogram was expired between 2022-08-14 and 2023-09-06. Data might be
    missing or incomplete for this period.
  </summary>
</histogram>

<histogram name="Notifications.NonPersistentNotificationThirdPartyCount"
    enum="Boolean" expires_after="2025-02-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of non-persistent notifications that are displayed from a
    third-party context. Logged from
    BlinkNotificationServiceImpl::DisplayNonPersistentNotification after the
    notification passes the permissions check.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.ComServerModuleStatus"
    enum="NotificationHelperComServerModuleStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The execute status of a ComServerModule class instance. Logged whenever a
    notification_helper process is launched by Windows. Note: Not logged after
    M87 until end of August 2022.
  </summary>
</histogram>

<histogram
    name="Notifications.NotificationHelper.NotificationActivatorPrimaryStatus"
    enum="NotificationHelperNotificationActivatorPrimaryStatus"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The primary execute status of NotificationActivator::Activate. Logged
    whenever a notification_helper process is launched by Windows. Note: Not
    logged after M85 until end of August 2022, and also not at the beginning of
    Sept 2023.
  </summary>
</histogram>

<histogram
    name="Notifications.NotificationHelper.NotificationActivatorSecondaryStatus"
    enum="NotificationHelperNotificationActivatorSecondaryStatus"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The secondary execute status of NotificationActivator::Activate. Logged
    whenever a notification_helper process is launched by Windows. Note: Not
    logged after M85 until end of August 2022, and also not at the beginning of
    Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.ServerRuntime" units="ms"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The runtime of the notification_helper server process. This process is
    created when a notification is activated from the Windows Action Center.
    Once created, this process does some COM class registration work, so that
    Windows can call certain APIs to handle the notification activation. Upon
    finishing the API calls, Windows signals this process to exit. Note: Not
    logged after M87 until end of August 2022, and also not at the beginning of
    Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.NotifierType" enum="NotifierType"
    expires_after="2024-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times a notification was added for the various types of
    sources.
  </summary>
</histogram>

<histogram name="Notifications.Permissions.RevokeDeleteCount" units="units"
    expires_after="2022-08-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of notifications that got deleted from the NotificationDatabase
    after the notification permissions got revoked.
  </summary>
</histogram>

<histogram
    name="Notifications.Permissions.UNNotification.{Style}.PermissionRequest"
    enum="UNNotificationPermissionRequestResult" expires_after="M134">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The permission request result for sending out UNNotifications through the
    MacNotificationServiceUN. This is recorded when instantiating the service
    which happens at Chrome startup and each time we start the service after
    shutting it down when there were no more notifications on screen.
  </summary>
  <token key="Style" variants="MacOSNotificationStyle"/>
</histogram>

<histogram
    name="Notifications.Permissions.UNNotification.{Style}.PermissionStatus"
    enum="UNNotificationPermissionStatus" expires_after="M134">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The permission status for sending out UNNotifications through the
    MacNotificationServiceUN. This is recorded when instantiating the service
    which happens at Chrome startup and each time we start the service after
    shutting it down when there were no more notifications on screen.
  </summary>
  <token key="Style" variants="MacOSNotificationStyle"/>
</histogram>

<histogram name="Notifications.Permissions.UNNotification.{Style}.Style"
    enum="UNNotificationStyle" expires_after="M134">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The style of notifications being used for sending out UNNotifications
    through the MacNotificationServiceUN. This is recorded when instantiating
    the service which happens at Chrome startup and each time we start the
    service after shutting it down when there were no more notifications on
    screen.
  </summary>
  <token key="Style" variants="MacOSNotificationStyle"/>
</histogram>

<histogram name="Notifications.PerNotificationActions"
    enum="NotificationActionType" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The actions taken on notifications, recorded once per notification, when it
    is closed. This differs from the Notifications.Actions histogram in that
    multiple events of the same type on a single notification will only record a
    single UMA event.
  </summary>
</histogram>

<histogram name="Notifications.Persistent.Actions.Action.SizeInBytes"
    units="bytes" expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The action label size of one of the notification's actions.</summary>
</histogram>

<histogram name="Notifications.Persistent.Actions.Icon.SizeInBytes"
    units="bytes" expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The icon (URL) size of one of the notification's actions.</summary>
</histogram>

<histogram name="Notifications.Persistent.Actions.Placeholder.SizeInBytes"
    units="bytes" expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The placeholder size of one of the notification's actions.</summary>
</histogram>

<histogram name="Notifications.Persistent.Actions.Title.SizeInBytes"
    units="bytes" expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The title size of one of the notification's actions.</summary>
</histogram>

<histogram name="Notifications.Persistent.Badge.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's badge (URL).</summary>
</histogram>

<histogram name="Notifications.Persistent.Body.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's body.</summary>
</histogram>

<histogram name="Notifications.Persistent.Data.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's data field.</summary>
</histogram>

<histogram name="Notifications.Persistent.Icon.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's icon (URL).</summary>
</histogram>

<histogram name="Notifications.Persistent.Image.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's image (URL).</summary>
</histogram>

<histogram name="Notifications.Persistent.Origin.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's origin.</summary>
</histogram>

<histogram name="Notifications.Persistent.Title.SizeInBytes" units="bytes"
    expires_after="2023-10-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The size of the notification's title.</summary>
</histogram>

<histogram name="Notifications.PersistentNotificationActionCount"
    units="buttons" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <summary>
    The number of action buttons the developer provided for a persistent Web
    Notification. Logged whenever showNotification is called.
  </summary>
</histogram>

<histogram name="Notifications.PersistentNotificationDisplayResult"
    enum="PersistentNotificationDisplayResult" expires_after="2023-04-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of the promise returned by showNotification. Logged whenever
    showNotification is called.
  </summary>
</histogram>

<histogram name="Notifications.PersistentNotificationThirdPartyCount"
    enum="Boolean" expires_after="2025-02-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of persistent notifications that are displayed from a
    third-party context. Logged from
    BlinkNotificationServiceImpl::DisplayPersistentNotification after the
    notification passes the permissions check.
  </summary>
</histogram>

<histogram name="Notifications.PersistentWebNotificationClickResult"
    enum="PlatformNotificationStatus" expires_after="2023-04-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded delivery status for persistent notification clicks to a Service
    Worker when handling a click on a persistent WebNotification has finished.
  </summary>
</histogram>

<histogram name="Notifications.PersistentWebNotificationCloseResult"
    enum="PlatformNotificationStatus" expires_after="2022-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records delivery status for persistent notification close events sent to a
    Service Worker when the event has been handled.
  </summary>
</histogram>

<histogram name="Notifications.Scheduler.BackgroundTask.NotificationShown"
    units="notifications" expires_after="2023-06-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of notifications shown in each background task run.
  </summary>
</histogram>

<histogram name="Notifications.Scheduler.NotificationLifeCycleEvent"
    enum="NotificationSchedulerNotificationLifeCycleEvent"
    expires_after="2023-03-05">
<!-- Name completed by histogram_suffixes name="NotificationSchedulerClientType" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records life cycle events for a scheduled notification, when notification is
    scheduled, shown or encountering any error.
  </summary>
</histogram>

<histogram name="Notifications.UsingSystemNotificationCenter"
    enum="BooleanSystemNotifications" expires_after="never">
<!-- expires-never: core to the notification user experience. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates if Chrome is using system notifications or the Chrome notification
    center. Logged on each start up.
  </summary>
</histogram>

<histogram name="Notifications.WebPlatformV2.{Action}.TimeToActivity"
    units="ms" expires_after="M112">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the delay between the user clicking on the {Action} of a web
    platform notification, and an Activity being launched. Only records if the
    duration is less than 10 seconds.
  </summary>
  <token key="Action">
    <variant name="ActionButton" summary="action button"/>
    <variant name="Body" summary="body"/>
  </token>
</histogram>

<histogram name="Notifications.WebPlatformV2.{Action}.TimeToClose" units="ms"
    expires_after="M112">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the delay between the user clicking on the {Action} of a web
    platform notification, and the notification being closed. Only records if
    the duration is less than 10 seconds.
  </summary>
  <token key="Action">
    <variant name="ActionButton" summary="action button"/>
    <variant name="Body" summary="body"/>
  </token>
</histogram>

<histogram name="Notifications.Windows.ActivationStatus"
    enum="WindowsNotificationActivationStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of Activation requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever an activation from a notification occurs. Note: Not
    logged from January 2021 to end of August 2022.
  </summary>
</histogram>

<histogram name="Notifications.Windows.CloseStatus"
    enum="WindowsNotificationCloseStatus" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of Close requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification is closed. Note: Not logged after M98
    until end of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.CreateToastManagerErrorCode"
    enum="Hresult" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when trying to create a
    toast manager fails. This provides a more detailed error in the cases the
    histogram Notifications.Windows.DisplayStatus reported
    CREATE_TOAST_NOTIFIER_WITH_ID_FAILED. Note: Not logged after M89 until end
    of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayFailure" enum="Hresult"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when showing a
    notification fails. Note: Not logged at the beginning of Sept 2023
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayStatus"
    enum="WindowsNotificationDisplayStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of Display requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification is displayed. For a more detailed
    error about CREATE_TOAST_NOTIFIER_WITH_ID_FAILED and SHOWING_TOAST_FAILED,
    see Notification.Windows histograms CreateToastManagerErrorCode and
    ShowFailedErrorCode (respectively). Note: Not logged between January 2022
    until end of August 2022.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedLaunchIdStatus"
    enum="WindowsNotificationGetDisplayedLaunchIdStatus"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of decoding launch ids while processing a GetDisplayed requests
    in NotificationPlatformBridgeWin (Windows only). Logged whenever a request
    to retrieve all displayed notifications comes in. Note: Not logged after M98
    until end of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedStatus"
    enum="WindowsNotificationGetDisplayedStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of GetDisplayedStatus requests in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to retrieve all displayed
    notifications comes in. Note: Not logged after M98 until end of August 2022,
    and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetNotificationLaunchIdStatus"
    enum="WindowsNotificationGetNotificationLaunchIdStatus"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of GetNotificationLaunchId requests in
    NotificationPlatformBridgeWin (Windows only). Logged whenever a request to
    decode the GetNotificationLaunchId comes in. Note: Not logged between
    January 2022 until end of August 2022, and also not at the beginning of Sept
    2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingPolicy"
    enum="WindowsNotificationGetSettingPolicy" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The policy value provided by get_Setting in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to show a notification comes in.
    Note: Not logged after M98 until end of August 2022, and not at the
    beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingPolicyStartup"
    enum="WindowsNotificationGetSettingPolicy" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The policy value provided by get_Setting in NotificationPlatformBridgeWin
    (Windows only). Logged only once at startup on a task runner. Note: Not
    logged at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingStatus"
    enum="WindowsNotificationGetSettingStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The return value of get_Setting calls in NotificationPlatformBridgeWin
    (Windows only). Logged whenever a request to show a notification comes in.
    Note: Not logged at the beginning of Sept 2023
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingStatusStartup"
    enum="WindowsNotificationGetSettingStatus" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The return value of get_Setting calls in NotificationPlatformBridgeWin
    (Windows only). Logged only once at startup on a task runner. Note: Not
    logged at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HandleEventStatus"
    enum="WindowsNotificationHandleEventStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of HandleEvent requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a notification event is being handled. Note: Not
    logged between January 2022 and end of August 2022, and not at the beginning
    of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HistoryStatus"
    enum="WindowsNotificationHistoryStatus" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of History requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever history is requested for notifications. Note: Not
    logged after M98 until end of August 2022, and also not at the beginning of
    Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.LaunchIdDecodeStatus"
    enum="WindowsNotificationLaunchIdDecodeStatus" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Used to indicate the status of decoding an input launch id string (Windows
    only). Logged whenever a notification event is being handled. Note: Not
    logged after M87 until end of August 2022, and also not at the beginning of
    Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.OnFailedStatus"
    enum="WindowsNotificationOnFailedStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of OnFailed requests in NotificationPlatformBridgeWin (Windows
    only). Logged whenever a failed event is handled. Note: Not logged after M98
    until end of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.SetReadyCallbackStatus2"
    enum="WindowsNotificationSetReadyCallbackStatus2"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of SetReadyCallback requests in NotificationPlatformBridgeWin
    (Windows only). Logged once at startup. Note: Not logged after M98 until end
    of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ShowFailedErrorCode" enum="Hresult"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when trying to create a
    toast manager fails. This provides a more detailed error in the cases the
    histogram Notifications.Windows.DisplayStatus reported SHOWING_TOAST_FAILED.
    Note: Not logged after M98 until end of August 2022, and not at the
    beginning of Sept 2023.
  </summary>
</histogram>

<histogram name="Notifications.Windows.StartMenuShortcutStatus"
    enum="WindowsNotificationStartMenuShortcutStatus"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Used to indicate the status of start menu shortcut (Windows only). Logged
    whenever a notification display attempt is made. Note: Not logged after M98
    until end of August 2022, and also not at the beginning of Sept 2023.
  </summary>
</histogram>

</histograms>

</histogram-configuration>