<!--
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
chromium-metrics-reviews@google.com.
-->

<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="2027-01-17">
  <owner>dewittj@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>cros-status-area-eng@google.com</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="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>knollr@chromium.org</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.

    This histogram was previously unused from 2024-01-14 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram
    name="Notifications.Android.CachedChannelsStatusOnFirstGetRuleIterator"
    enum="BooleanInitialized" expires_after="2027-02-13">
  <owner>qinmin@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-12-31 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Android.ImageMemorySizeInKB2" units="KB"
    expires_after="2027-05-31">
  <owner>peilinwang@google.com</owner>
  <owner>clank-performance-team@google.com</owner>
  <summary>
    Record the memory size in KB of notification images. Recorded when setting
    BigPictureStyle in ChromeNotificationWrapperBuilder on Android.
  </summary>
</histogram>

<histogram name="Notifications.Android.IntentProcessedInParallel"
    units="intents" expires_after="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records the number of notification that are processed in parallel. A sample
    is recorded when a new intent is received by TrampolineActivity and
    forwarded to Chrome. Measured on Android.

    This histogram was previously unused from 2025-04-13 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram
    name="Notifications.Android.IntentStartToFinishDuration.{NativeInitialized}"
    units="ms" expires_after="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records how long it takes from receiving a notification in the
    TrampolineActivity to finish processing the notification. A sample is
    recorded when a qualified notification is processed. Measured on Android.

    This histogram was previously unused from 2025-04-13 to 2026-02-13, so data
    might be missing.
  </summary>
  <token key="NativeInitialized">
    <variant name="NativeInitialized"
        summary="Native was initialized when receiving the intent."/>
    <variant name="NativeUninitialized"
        summary="Native was not initialized when receiving the intent."/>
  </token>
</histogram>

<histogram name="Notifications.Android.IntentStartToNativeInitializedDuration"
    units="ms" expires_after="2025-04-13">
  <owner>peter@chromium.org</owner>
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records how long it takes from receiving a notification in the
    TrampolineActivity to finish initializing the native library. A sample is
    recorded the first time native library is initialized upon receiving a
    notification intent. Measured on Android.
  </summary>
</histogram>

<histogram name="Notifications.Android.JobIsAlreadyPending{IntentAction}"
    enum="Boolean" expires_after="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</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.

    This histogram was previously unused from 2025-06-22 to 2026-02-13, so data
    might be missing.
  </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="2026-09-06">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</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="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</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.

    This histogram was previously unused from 2025-04-13 to 2026-02-13, so data
    might be missing.
  </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="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</owner>
  <summary>
    Records wheher JobScheduler.schedule() succeeds when it is called to
    schedule a job with the JobScheduler to handle a notification click.

    This histogram was previously unused from 2025-04-13 to 2026-02-13, so data
    might be missing.
  </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="2026-09-13">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</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="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>engedy@chromium.org</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.

    This histogram was previously unused from 2025-06-22 to 2026-02-13, so data
    might be missing.
  </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.NotificationEvent"
    enum="NotificationEvent" expires_after="2025-10-31">
  <owner>qinmin@chromium.org</owner>
  <summary>
    Records various events on calling Android NotificationManager. One record is
    emitted both before and after the call. This metric captures whether a call
    is made, and whether it successfully returns the desired result. Only
    measured on Android.
  </summary>
</histogram>

<histogram name="Notifications.Android.SitesChannel" enum="BooleanUsage"
    expires_after="2027-02-13">
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-26 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Android.TrampolineActivity"
    enum="NotificationsAndroidTrampolineActivityEvent"
    expires_after="2027-02-13">
  <owner>qinmin@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records key lifecycle events (Creation/Launch and Destruction/Teardown) of
    the notification click TrampolineActivity. Measured on Android.
  </summary>
</histogram>

<histogram name="Notifications.Android.TrampolineActivity.Duration" units="ms"
    expires_after="2027-02-13">
  <owner>qinmin@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the lifespan duration of a trampoline activity, from its creation in
    onCreate() to its destruction in onDestroy(). Measured on Android.
  </summary>
</histogram>

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

  <owner>peter@chromium.org</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="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-11-12 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.MutedCount"
    units="notifications" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-09-10 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.ReplacedCount"
    units="notifications" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-09-10 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.RevealDuration" units="ms"
    expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-07-09 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.SessionDuration"
    units="ms" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-11-12 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Blocker.ScreenCapture.SnoozedCount"
    units="notifications" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2023-07-09 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Chime.Android.Events" enum="ChimeEvent"
    expires_after="never">
  <owner>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</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>dtrainor@chromium.org</owner>
  <owner>nyquist@chromium.org</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.ChromeFinds.NotificationInteraction"
    enum="FindsNotificationUserInteraction" expires_after="2027-08-25">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <owner>evanluo@google.com</owner>
  <summary>
    Records interactions with a Chrome finds notification, such as a
    notification body click, dismissal, or button clicks (helpful or unhelpful
    buttons).
  </summary>
</histogram>

<histogram name="Notifications.ChromeFinds.NotificationShown" enum="Boolean"
    expires_after="2027-08-25">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <owner>evanluo@google.com</owner>
  <summary>
    Records when a Chrome finds notification is shown to the user.
  </summary>
</histogram>

<histogram name="Notifications.ChromeFinds.OptInCriteriaFulfilled.Reason"
    enum="FindsOptInTriggerReason" expires_after="2027-08-25">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <owner>evanluo@google.com</owner>
  <summary>
    Records the reason why the opt-in criteria was fulfilled for Chrome Finds.
    Recorded when the user reaches some trigger criteria.
  </summary>
</histogram>

<histogram name="Notifications.ChromeFinds.OptInEvent"
    enum="ChromeFindsOptInEvent" expires_after="2027-08-25">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <owner>evanluo@google.com</owner>
  <summary>
    Records everything around the opt-in flow journey for Chrome Finds. Recorded
    when the bottom sheet is shown, accepted (first-time vs re-opt-in),
    declined, dismissed, or when the action in the confirmation snackbar is
    clicked.
  </summary>
</histogram>

<histogram name="Notifications.Cros.Actions.{NotificationAction}"
    enum="NotificationTypeDetailed" expires_after="2027-02-07">
  <owner>newcomer@chromium.org</owner>
  <owner>cros-status-area-eng@google.com</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="2026-07-14">
  <owner>newcomer@chromium.org</owner>
  <owner>cros-status-area-eng@google.com</owner>
  <summary>
    Records the notification catalog name when a notification interaction
    occurs: {NotificationAction}. ChromeOS only. Note that this histogram is
    expired from March 10 to mid-July 2025.
  </summary>
  <token key="NotificationAction" variants="NotificationAction"/>
</histogram>

<histogram name="Notifications.Database.DeleteAllForOriginsResult"
    enum="NotificationDatabaseStatus" expires_after="M98">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-01-07 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.DeleteResult"
    enum="NotificationDatabaseStatus" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-01-07 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.DestroyResult"
    enum="NotificationDatabaseStatus" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-01-07 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.ExpiredNotificationCount"
    units="notifications" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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).

    This histogram was previously unused from 2023-10-22 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.OldestNotificationTimeInMinutes"
    units="minutes" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the age of the oldest notification for an origin. Logged after
    handling a push event for that origin.

    This histogram was previously unused from 2022-04-17 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.OpenAfterCorruptionResult"
    enum="NotificationDatabaseStatus" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-01-07 to 2026-02-13, so data
    might be missing.
  </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>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-01-07 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.ReadResult"
    enum="NotificationDatabaseStatus" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of reading data of a single notification
    from the Web Notification database.

    This histogram was previously unused from 2023-06-18 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Database.WriteNotificationMetadataReadResult"
    enum="NotificationDatabaseStatus" expires_after="2027-04-22">
  <owner>skrakowi@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the response status after trying to find the existing
    NotificationDatabase entry that corresponds to the one we should update with
    notification content detection metadata. Logged each time a notification is
    shown, when we request to persist the metadata.
  </summary>
</histogram>

<histogram name="Notifications.Database.WriteNotificationMetadataUpdateResult"
    enum="NotificationDatabaseStatus" expires_after="2027-04-22">
  <owner>skrakowi@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the response status after trying to update an existing
    NotificationDatabase entry with notification content detection metadata.
    Logged each time a notification is shown and the database entry is
    successfully found.
  </summary>
</histogram>

<histogram name="Notifications.Database.WriteResult"
    enum="NotificationDatabaseStatus" expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Records the result status codes of writing data for a notification to the
    Web Notification database.

    This histogram was previously unused from 2023-04-16 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Engagement.{Type}.Volume{Volume}"
    units="site-engagement-score*2" expires_after="2027-02-14">
  <owner>antoniosartori@chromium.org</owner>
  <owner>feuunk@chromium.org</owner>
  <summary>
    Records site engagement of sites when notifications are shown or clicked. A
    metric is recorded for every displayed notification, clicked notification,
    and suspicious warning shown reporting the site engagement of the
    corresponding site multiplied by 2 (we multiply by 2 in order to distinguish
    engagement values &gt;=0.5 from 0 - note that the smallest possible nonnull
    engagement value is 0.5). The average daily volume of displayed
    notifications for that particular site over the past week is encoded in the
    histogram name.
  </summary>
  <token key="Type">
    <variant name="Clicked"/>
    <variant name="Displayed"/>
    <variant name="Suspicious"/>
  </token>
  <token key="Volume">
    <variant name="0"/>
    <variant name="1"/>
    <variant name="5"/>
    <variant name="10"/>
    <variant name="20"/>
    <variant name="Above20"/>
  </token>
</histogram>

<histogram name="Notifications.LoadProfileResult" enum="BooleanSuccess"
    expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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).

    This histogram was previously unused from 2022-04-17 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.macOS.AppShimProcess.UptimeOnDisconnect"
    units="ms" expires_after="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>pwa-team@google.com</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="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>pwa-team@google.com</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.AttributionOutcome"
    enum="MacNotificationAttributionOutcome" expires_after="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>pwa-team@google.com</owner>
  <summary>
    Records the outcome of attempting to attribute a Web App notification to its
    App Shim on macOS. Recorded when displaying a notification that has a Web
    App ID.
  </summary>
</histogram>

<histogram name="Notifications.macOS.DeliveryResult.{Style}"
    units="NSErrorCode" expires_after="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>pwa-team@google.com</owner>
  <summary>
    Records the result of adding a notification request to the macOS
    UNUserNotificationCenter. Recorded when the macOS API completion handler is
    called. Logs 0 for success, or the NSError code on failure.
  </summary>
  <token key="Style" variants="MacOSNotificationStyle"/>
</histogram>

<histogram name="Notifications.macOS.ServiceProcessKilled" units="ms"
    expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-08-07 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.macOS.ServiceProcessRuntime" units="ms"
    expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-08-14 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.NonPersistentNotificationThirdPartyCount"
    enum="Boolean" expires_after="2026-11-15">
  <owner>awillia@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram
    name="Notifications.NotificationHelper.NotificationActivatorPrimaryStatus"
    enum="NotificationHelperNotificationActivatorPrimaryStatus"
    expires_after="2027-06-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Warning: this histogram was expired from 2026-05-24 to 2026-07; data may be
    missing.

    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="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.NotificationHelper.ServerRuntime" units="ms"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.NotifierType" enum="NotifierType"
    expires_after="2027-02-13">
  <owner>tbarzic@chromium.org</owner>
  <owner>tengs@chromium.org</owner>
  <owner>gzadina@google.com</owner>
  <summary>
    The number of times a notification was added for the various types of
    sources.

    This histogram was previously unused from 2024-01-14 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Permissions.RevokeDeleteCount" units="units"
    expires_after="2027-02-13">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The number of notifications that got deleted from the NotificationDatabase
    after the notification permissions got revoked.

    This histogram was previously unused from 2022-08-28 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram
    name="Notifications.Permissions.UNNotification.{Style}.PermissionRequest"
    enum="UNNotificationPermissionRequestResult" expires_after="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-03-01">
  <owner>mek@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-06-13">
  <owner>dewittj@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>cros-status-area-eng@google.com</owner>
  <summary>
    Warning: this histogram was expired from 2026-03-15 to 2026-07; data may be
    missing.

    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.PersistentNotificationActionCount"
    units="buttons" expires_after="2027-06-13">
  <owner>peter@chromium.org</owner>
  <summary>
    Warning: this histogram was expired from 2026-03-22 to 2026-07; data may be
    missing.

    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="2027-01-17">
  <owner>knollr@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The result of the promise returned by showNotification, indicating whether
    the notification could be shown successfully. Logged whenever
    showNotification is called.

    This metric was expired between April 2023 and December 2024, so data in
    this period will be missing.
  </summary>
</histogram>

<histogram name="Notifications.PersistentNotificationThirdPartyCount"
    enum="Boolean" expires_after="2026-11-15">
  <owner>awillia@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>deepak.m1@samsung.com</owner>
  <summary>
    Recorded delivery status for persistent notification clicks to a Service
    Worker when handling a click on a persistent WebNotification has finished.

    This histogram was previously unused from 2023-04-23 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.PersistentWebNotificationCloseResult"
    enum="PlatformNotificationStatus" expires_after="2027-02-13">
  <owner>peter@chromium.org</owner>
  <owner>knollr@chromium.org</owner>
  <summary>
    Records delivery status for persistent notification close events sent to a
    Service Worker when the event has been handled.

    This histogram was previously unused from 2022-09-11 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Scheduler.BackgroundTask.NotificationShown"
    units="notifications" expires_after="2027-02-13">
  <owner>shaktisahu@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records the number of notifications shown in each background task run.

    This histogram was previously unused from 2023-06-04 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram
    name="Notifications.Scheduler.NotificationLifeCycleEvent{NotificationSchedulerClientType}"
    enum="NotificationSchedulerNotificationLifeCycleEvent"
    expires_after="2027-02-14">
  <owner>shaktisahu@chromium.org</owner>
  <owner>nyquist@chromium.org</owner>
  <summary>
    Records life cycle events for a scheduled notification, when notification is
    scheduled, shown or encountering any error.
    {NotificationSchedulerClientType}

    This metric was expired between March 2023 and November 2025, so data may be
    missing.
  </summary>
  <token key="NotificationSchedulerClientType">
    <variant name=""/>
    <variant name=".__Test__" summary=""/>
    <variant name=".ChromeFinds" summary=""/>
    <variant name=".ChromeUpdate" summary=""/>
    <variant name=".FeatureGuide" summary="Deprecated"/>
    <variant name=".Prefetch" summary=""/>
    <variant name=".ReadingList" summary=""/>
    <variant name=".Tips" summary=""/>
    <variant name=".Unknown" summary=""/>
    <variant name=".WebUI" summary=""/>
  </token>
</histogram>

<histogram
    name="Notifications.Scheduler.Tips.FeatureTypeAction{NotificationTipsFeatureType}"
    enum="NotificationSchedulerUserActionType" expires_after="2027-02-14">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <summary>
    Records user actions for a shown tips notification, when the notification is
    clicked through the body or button, or dismissed. This is for Android only.
    {NotificationTipsFeatureType}
  </summary>
  <token key="NotificationTipsFeatureType">
    <variant name=""/>
    <variant name=".BottomOmnibox"/>
    <variant name=".CreateTabGroups"/>
    <variant name=".CustomizeMVT"/>
    <variant name=".EnhancedSafeBrowsing"/>
    <variant name=".GoogleLens"/>
    <variant name=".PasswordAutofill"/>
    <variant name=".QuickDelete"/>
    <variant name=".RecentTabs"/>
    <variant name=".Signin"/>
  </token>
</histogram>

<histogram name="Notifications.Scheduler.Tips.FeatureTypeShown"
    enum="TipsNotificationsFeatureType" expires_after="2027-02-14">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <summary>
    Records the number of shown tips notifications broken down by feature type,
    recorded just before the notification is expected to be shown. This is for
    Android only.
  </summary>
</histogram>

<histogram
    name="Notifications.Tips.FeatureTipPromo.EventType{NotificationTipsFeatureType}"
    enum="TipsNotificationsFeatureTipPromoEventType" expires_after="2027-02-14">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <summary>
    Records user actions for a shown feature tip promo, when the promo is shown,
    interacted with through dismissal, accepted on both the main and detail
    pages, and backpressed on the detail page. This is for Android only.
    {NotificationTipsFeatureType}
  </summary>
  <token key="NotificationTipsFeatureType">
    <variant name=""/>
    <variant name=".BottomOmnibox"/>
    <variant name=".CreateTabGroups"/>
    <variant name=".CustomizeMVT"/>
    <variant name=".EnhancedSafeBrowsing"/>
    <variant name=".GoogleLens"/>
    <variant name=".PasswordAutofill"/>
    <variant name=".QuickDelete"/>
    <variant name=".RecentTabs"/>
    <variant name=".Signin"/>
  </token>
</histogram>

<histogram name="Notifications.Tips.OptInPromo.EventType2"
    enum="TipsNotificationsOptInPromoEventType" expires_after="2027-01-17">
  <owner>wylieb@google.com</owner>
  <owner>bjfong@google.com</owner>
  <summary>
    Records the event type for user actions on the Tips Opt In Promo. This is
    recorded on show, on promo acceptance, on promo decline, and on promo
    ignore. Declining the promo includes clicking the negative button. Ignoring
    the promo includes dismissal by scrim touch, backpress, and swipe away. This
    is for Android only.
  </summary>
</histogram>

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

  <owner>peter@chromium.org</owner>
  <owner>knollr@chromium.org</owner>
  <owner>thomasanderson@chromium.org</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>peconn@chromium.org</owner>
  <owner>peter@chromium.org</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>peconn@chromium.org</owner>
  <owner>peter@chromium.org</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="2027-06-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    Warning: this histogram was expired from 2026-06-07 to 2026-07; data may be
    missing.

    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="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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 and
    Sept 2024.

    This histogram was previously unused from 2025-03-09 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.CreateToastManagerErrorCode"
    enum="Hresult" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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 and Sept 2024.

    This histogram was previously unused from 2025-03-09 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayFailure" enum="Hresult"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</owner>
  <summary>
    The HRESULT returned by the Windows Action Center, when showing a
    notification fails. Note: Not logged at the beginning of Sept 2023

    This histogram was previously unused from 2025-05-11 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.DisplayStatus"
    enum="WindowsNotificationDisplayStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-03-09 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedLaunchIdStatus"
    enum="WindowsNotificationGetDisplayedLaunchIdStatus"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-05-11 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetDisplayedStatus"
    enum="WindowsNotificationGetDisplayedStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetNotificationLaunchIdStatus"
    enum="WindowsNotificationGetNotificationLaunchIdStatus"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingPolicy"
    enum="WindowsNotificationGetSettingPolicy" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingPolicyStartup"
    enum="WindowsNotificationGetSettingPolicy" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingStatus"
    enum="WindowsNotificationGetSettingStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.GetSettingStatusStartup"
    enum="WindowsNotificationGetSettingStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HandleEventStatus"
    enum="WindowsNotificationHandleEventStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.HistoryStatus"
    enum="WindowsNotificationHistoryStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.LaunchIdDecodeStatus"
    enum="WindowsNotificationLaunchIdDecodeStatus" expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.OnFailedStatus"
    enum="WindowsNotificationOnFailedStatus" expires_after="2027-02-13">
  <owner>chengx@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.SetReadyCallbackStatus2"
    enum="WindowsNotificationSetReadyCallbackStatus2"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.ShowFailedErrorCode" enum="Hresult"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2025-01-05 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

<histogram name="Notifications.Windows.StartMenuShortcutStatus"
    enum="WindowsNotificationStartMenuShortcutStatus"
    expires_after="2027-02-13">
  <owner>finnur@chromium.org</owner>
  <owner>peter@chromium.org</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.

    This histogram was previously unused from 2024-09-01 to 2026-02-13, so data
    might be missing.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
