<!--
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 Settings 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="PrefValueType">
  <variant name="Binary" summary="binary"/>
  <variant name="Boolean" summary="boolean"/>
  <variant name="Dictionary" summary="dictionary"/>
  <variant name="Double" summary="double"/>
  <variant name="Integer" summary="integer"/>
  <variant name="List" summary="list"/>
  <variant name="None" summary="none"/>
  <variant name="String" summary="string"/>
</variants>

<!-- Each profile on a client is assigned a unique bucket, see go/profile-metrics.
Regular profiles start at bucket 1. Incognito profiles count towards the original profile. -->

<!-- LINT.IfChange(Profile) -->

<variants name="ProfileBucketName">
  <variant name="Profile_1" summary="Profile bucket 1 for a client."/>
  <variant name="Profile_2" summary="Profile bucket 2 for a client."/>
  <variant name="Profile_3" summary="Profile bucket 3 for a client."/>
  <variant name="Profile_4" summary="Profile bucket 4 for a client."/>
  <variant name="Profile_5" summary="Profile bucket 5 for a client."/>
  <variant name="Profile_6" summary="Profile bucket 6 for a client."/>
  <variant name="Profile_7" summary="Profile bucket 7 for a client."/>
  <variant name="Profile_8" summary="Profile bucket 8 for a client."/>
  <variant name="Profile_9" summary="Profile bucket 9 for a client."/>
  <variant name="Profile_10" summary="Profile bucket 10 for a client."/>
  <variant name="Profile_11+"
      summary="All profiles with a bucket of 11+ will be bucketed here, 11
               inclusive."/>
</variants>

<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/privacy/histograms.xml:Profile) -->

<variants name="RegrantType">
  <variant name="InSafetyHub" summary="Regrant in Safety Hub UI."/>
  <variant name="OutsideSafetyHub"
      summary="Regrant outside of Safety Hub UI (e.g. via permission prompt)."/>
</variants>

<variants name="SafetyHubDashboardModuleType">
  <variant name="AccountPasswords"/>
  <variant name="BrowserState"/>
  <variant name="LocalPasswords"/>
  <variant name="NotificationReview"/>
  <variant name="RevokedPermissions"/>
  <variant name="SafeBrowsing"/>
  <variant name="UnifiedPasswords"/>
  <variant name="UpdateCheck"/>
</variants>

<variants name="SafetyHubLifecycleEvent">
  <variant name="OnExit"/>
  <variant name="OnImpression"/>
</variants>

<!-- LINT.IfChange(AllPermissionTypes) -->

<variants name="SettingsAllPermissionTypes">
  <variant name="AR"/>
  <variant name="AudioAndVideoCapture"/>
  <variant name="AudioCapture"/>
  <variant name="CameraPanTiltZoom"/>
  <variant name="ClipboardReadWrite"/>
  <variant name="Geolocation"/>
  <variant name="IdleDetection"/>
  <variant name="KeyboardLock"/>
  <variant name="LocalFonts"/>
  <variant name="LocalNetwork"/>
  <variant name="LocalNetworkAccess"/>
  <variant name="LoopbackNetwork"/>
  <variant name="MidiSysEx"/>
  <variant name="MultipleDownload"/>
  <variant name="Nfc"/>
  <variant name="Notifications"/>
  <variant name="PaymentHandler"/>
  <variant name="PointerLock"/>
  <variant name="ProtectedMedia"/>
  <variant name="Quota"/>
  <variant name="RegisterProtocolHandler"/>
  <variant name="SecurityKeyAttestation"/>
  <variant name="Sensors"/>
  <variant name="StorageAccess"/>
  <variant name="TopLevelStorageAccess"/>
  <variant name="U2fApiRequest"/>
  <variant name="VideoCapture"/>
  <variant name="VR"/>
  <variant name="WindowPlacement"/>
</variants>

<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/permissions/histograms.xml:AllPermissionTypes) -->

<variants name="TrackedPreferencesExternalValidators">
  <variant name=".FromRegistry"
      summary="Validation using MACs in the Windows Registry."/>
</variants>

<histogram name="Settings.AdvancedSpellcheck.OnStartup2" enum="BooleanEnabled"
    expires_after="2024-10-13">
  <owner>harrisonsean@chromium.org</owner>
  <owner>chrome-privacy-controls@google.com</owner>
  <summary>
    The state of the advanced spellcheck setting, recorded on profile open for
    regular profiles (not Incognito, Guest, etc.).

    Expired in M109, re-instated in M118.
  </summary>
</histogram>

<histogram name="Settings.AiPage.Compose.Interactions"
    enum="SettingsAiPageComposeInteractions" expires_after="2026-10-25">
  <owner>zalmashni@google.com</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the user interaction with all elements in AI Compose settings page.
  </summary>
</histogram>

<histogram name="Settings.AiPage.ElementVisibility.{FeatureName}"
    enum="BooleanVisible" expires_after="2027-01-03">
  <owner>zalmashni@google.com</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures whether the entry point for the {FeatureName} in AI settings page
    is shown to the user. The metric is recorded when the user navigates to
    'chrome://settings/ai'.
  </summary>
  <token key="FeatureName">
    <variant name="Compare"/>
    <variant name="Compose"/>
    <variant name="GoogleSearchAiModeWorkspace"/>
    <variant name="HistorySearch"/>
    <variant name="Indigo"/>
    <variant name="PasswordChange"/>
    <variant name="Suggestions"/>
  </token>
</histogram>

<histogram name="Settings.AiPage.HistorySearch.Interactions"
    enum="SettingsAiPageHistorySearchInteractions" expires_after="2026-12-27">
  <owner>zalmashni@google.com</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the user interaction with all elements in AI History Search
    settings page.
  </summary>
</histogram>

<histogram name="Settings.AiPage.Interactions"
    enum="SettingsAiPageInteractions" expires_after="2026-12-27">
  <owner>zalmashni@google.com</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the user interaction with all entrypoints in AI settings page.
  </summary>
</histogram>

<histogram name="Settings.AiPage.Suggestions.Interactions"
    enum="SettingsAiPageAiSuggestionsInteractions" expires_after="2026-12-27">
  <owner>sophiechang@google.com</owner>
  <owner>iwells@chromium.org</owner>
  <summary>
    Captures the user interaction with all elements in AI Suggestions settings
    page.
  </summary>
</histogram>

<histogram name="Settings.AutocompleteSearches.OnStartup2"
    enum="BooleanEnabled" expires_after="2025-12-28">
  <owner>harrisonsean@chromium.org</owner>
  <owner>chrome-privacy-controls@google.com</owner>
  <summary>
    The state of the autocomplete searches setting, recorded on profile open,
    only for regular profiles (not Incognito, Guest, etc.).
  </summary>
</histogram>

<histogram name="Settings.ClearBrowsingData.Advanced.TimePeriod"
    enum="SettingsClearBrowsingDataTimePeriod" expires_after="2027-02-07">
  <owner>rainhard@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records the time period that users cleared from the Clear Browsing Data
    dialog.

    Note: The `Advanced` refers to the Advanced tab in Clear Browsing Data,
    which has become the only available tab after DBD dialog revamp
    (crbug.com/502885275).
  </summary>
</histogram>

<histogram name="Settings.DefaultBrowserFromSource"
    enum="IOSDefaultBrowserSettingsPageSource" expires_after="2027-01-17">
  <owner>gayane@google.com</owner>
  <owner>bling-mony-pod@google.com</owner>
  <summary>
    The source surface that requested displaying the default browser system
    settings. Logged when the user actually opens the iOS system settings (IOS
    only).
  </summary>
</histogram>

<histogram name="Settings.FirstPartySets.State" enum="FirstPartySetsState"
    expires_after="2026-05-03">
  <owner>alimariam@google.com</owner>
  <owner>olesiamarukhno@google.com</owner>
  <owner>sauski@google.com</owner>
  <summary>
    Records either the state of first party sets (FPS) or not relevant,
    depending on the user's cookie settings. This is logged on startup.
  </summary>
</histogram>

<histogram name="Settings.FragmentAttached"
    enum="AndroidSettingsFragmentHashes" expires_after="2027-02-21">
  <owner>dullweber@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records the classname of a Fragment when it is attached to a
    SettingsActivity. For evaluating popularity and priorities for Android
    settings GUI. The name is hashed using String.hashCode.

    Notes: SingleCategorySettings powers all permission related pages in
    SiteSettings (e.g. Location, Camera, ...).

    For Desktop settings usage check WebUI.Settings.PathVisited.
  </summary>
</histogram>

<histogram name="Settings.GivenShowHomeButton_HomePageIsNewTabPage2"
    enum="Boolean" expires_after="2027-02-07">
  <owner>mpearson@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <summary>
    Whether or not the home page user preference is set to the default NTP value
    when a regular profile is loaded. This is only logged if the home button is
    shown.

    To be explicit: not logged when an Incognito profile is opened because that
    inherits the settings from its parent profile. As such, it's not necessary
    to log the Incognito profile's settings.
  </summary>
</histogram>

<histogram name="Settings.GlassFrame.Enabled" enum="BooleanEnabled"
    expires_after="2027-02-14">
  <owner>dominicaustria@google.com</owner>
  <owner>dpenning@chromium.org</owner>
  <summary>
    Logs whether the glass frame setting is enabled or disabled when it is
    toggled in chrome://settings/appearance. Record for mac only.
  </summary>
</histogram>

<histogram name="Settings.Homepage.HomeButtonStatus" enum="HomeButtonStatus"
    expires_after="2026-12-20">
  <owner>jthiesen@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>wenyufu@chromium.org</owner>
  <summary>
    The status of the home button, whether turned on or off, and by who. Is
    affected by several homepage related policies, as well as user and
    potentially partner actions. Recorded on deferred startup. Android only.
  </summary>
</histogram>

<histogram name="Settings.Homepage.LocationType" enum="HomepageLocationType"
    expires_after="2027-01-17">
  <owner>bttk@chromium.org</owner>
  <owner>twellington@chromium.org</owner>
  <owner>wenyufu@chromium.org</owner>
  <summary>
    The location type for the homepage if the homepage is enabled. Recorded on
    deferred startup iff the homepage is enabled. Android only.
  </summary>
</histogram>

<histogram name="Settings.HomePageEngineType2" enum="OmniboxSearchEngineType"
    expires_after="2024-04-30">
  <owner>mpearson@chromium.org</owner>
  <owner>csharp@chromium.org</owner>
  <summary>
    Tries to pretend the home page URL is a search URL, and records the search
    engine type of that URL by comparing the TLD+1 of the home page URL with
    those of the different known search engines. Recorded when a regular profile
    is opened, if a home page URL has been set. Note that at least one profile
    is opened on startup.

    To be explicit: not logged when an Incognito profile is opened because that
    inherits the settings from its parent profile. As such, it's not necessary
    to log the Incognito profile's settings.
  </summary>
</histogram>

<histogram name="Settings.HoverCards.ImagePreview.Enabled"
    enum="BooleanEnabled" expires_after="2026-04-12">
  <owner>charlesmeng@chromium.org</owner>
  <owner>estalin@chromium.org</owner>
  <summary>
    Logged whether the hover card preview images setting is enabled or disabled
    when it is toggled in chrome://settings/appearance.
  </summary>
</histogram>

<histogram name="Settings.HoverCards.MemoryUsage.Enabled" enum="BooleanEnabled"
    expires_after="2026-10-30">
  <owner>dominicaustria@chromium.org</owner>
  <owner>emshack@chromium.org</owner>
  <summary>
    Logged whether the hover card memory usage bar is enabled or disabled when
    it is toggled in chrome://settings/appearance. Record for desktop only.
  </summary>
</histogram>

<histogram name="Settings.NonSettingsFragmentAttached"
    enum="AndroidSettingsFragmentHashes" expires_after="2026-04-25">
  <owner>hidehiko@chromium.org</owner>
  <owner>nya@chromium.org</owner>
  <summary>
    Records the classname of a Fragment when it is attached to a
    SettingsActivity but not implements SettingsFragment interface. The name is
    hashed using String.hashCode. All fragment attached to SettingsActivity
    should implement SettingsFragment and this helps to identify missing ones.
  </summary>
</histogram>

<histogram name="Settings.Opened" enum="Boolean" expires_after="2026-12-27">
  <owner>adelm@google.com</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    User opened settings UI. Recorded when the main Settings preference fragment
    is opened via 3-dot menu. Android only.
  </summary>
</histogram>

<histogram name="Settings.OpenSettingsFromMenu.PerProfileType"
    enum="BrowserProfileType" expires_after="2024-04-28">
  <owner>roagarwal@chromium.org</owner>
  <owner>chrome-incognito@google.com</owner>
  <summary>
    Records the profile type for opening the Settings page from menu.
  </summary>
</histogram>

<histogram name="Settings.OverscrollHistoryNavigation.Enabled"
    enum="BooleanEnabled" expires_after="2025-11-16">
  <owner>charlesmeng@chromium.org</owner>
  <owner>estalin@chromium.org</owner>
  <summary>
    Logs whether the overscroll history navigation setting is enabled or
    disabled when it is toggled in chrome://settings/accessibility. Compare to
    the histogram
    &quot;ChromeOS.Settings.OverscrollHistoryNavigation.Enabled&quot; on Chrome
    OS.
  </summary>
</histogram>

<histogram name="Settings.PinUnlockSetup" enum="LockScreenProgress"
    expires_after="2027-01-24">
  <owner>antrim@chromium.org</owner>
  <owner>teresachow@google.com</owner>
  <owner>cros-lurs@google.com</owner>
  <summary>
    The users progress through the pin unlock setup wizard. Each type
    corresponds to the user completing a different stage of the setup wizard.

    Warning: this histogram was expired from 2025-08-31 to 2025-11-25; data may
    be missing.
  </summary>
</histogram>

<histogram name="Settings.PreloadStatus.OnStartup3" enum="PreloadPagesState"
    expires_after="2027-01-17">
  <owner>rainhard@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The status of the preload setting, recorded on regular profile open (not
    Incognito, Guest, etc.). Not recorded for iOS where the setting does not
    exist.
  </summary>
</histogram>

<histogram name="Settings.PrivacyElementInteractions"
    enum="SettingsPrivacyElementInteractions" expires_after="2027-01-17">
  <owner>harrisonsean@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>sauski@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Which privacy related settings elements a user interacted with. Recorded
    every time a user interacts with an element of interest.
  </summary>
</histogram>

<histogram name="Settings.PrivacyGuide.EntryExit"
    enum="SettingsPrivacyGuideInteractions" expires_after="2026-12-27">
  <owner>harrisonsean@chromium.org</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    How the users navigated into the Privacy guide as well as links out of the
    privacy guide.
  </summary>
</histogram>

<histogram name="Settings.PrivacyGuide.FlowLength" units="steps"
    expires_after="2026-10-25">
  <owner>rainhard@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The number of settings steps that can be shown in the Privacy Guide flow.
    This number varies based on the users' setting states. Recorded when the
    user clicks 'Next' in the Privacy Guide welcome card.
  </summary>
</histogram>

<histogram name="Settings.PrivacyGuide.NextNavigation"
    enum="SettingsPrivacyGuideInteractions" expires_after="2026-10-25">
  <owner>harrisonsean@chromium.org</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The step in the Privacy guide from which a user clicked the 'next' button.
  </summary>
</histogram>

<histogram name="Settings.PrivacyGuide.SettingsStates"
    enum="SettingsPrivacyGuideSettingsStates" expires_after="2026-10-25">
  <owner>harrisonsean@chromium.org</owner>
  <owner>rainhard@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records whether or not the user kept the same settings or changed it, and
    the corresponding value, on every |Next| or |Back| button click inside of
    Privacy guide.
  </summary>
</histogram>

<histogram name="Settings.PrivacyGuide.StepsEligibleAndReached"
    enum="SettingsPrivacyGuideStepsEligibleAndReached"
    expires_after="2026-12-27">
  <owner>rainhard@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records which steps were set to be eligible to be shown when user clicks
    'Next' button in the Welcome step. Records which steps were reached when
    user reaches the individual step in the flow.
  </summary>
</histogram>

<histogram name="Settings.SafetyCheck.Interactions"
    enum="SettingsSafetyCheckInteractions" expires_after="2027-02-07">
  <owner>rainhard@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>anaudrey@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Which user actions were taken in safety check. Recorded every time a user
    does an interaction in safety check. Value 5 and 6 got added with M86, 7-9
    with M87, 10 with M88, and 11 with M89.
  </summary>
</histogram>

<histogram name="Settings.SafetyCheck.PasswordsResult2"
    enum="SafetyCheckPasswordsStatus" expires_after="2026-05-03">
  <owner>rainhard@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Resulting state of the safety check password check. Replaced
    Settings.SafetyCheck.PasswordsResult in M116 after fixing a bug on Safety
    Check on iOS that was recording password results multiple times for the same
    password check.
  </summary>
</histogram>

<histogram name="Settings.SafetyCheck.SafeBrowsingResult"
    enum="SafetyCheckSafeBrowsingStatus" expires_after="2023-12-24">
  <owner>andzaytsev@google.com</owner>
  <owner>msramek@chromium.org</owner>
  <summary>Resulting state of the safety check Safe Browsing check.</summary>
</histogram>

<histogram name="Settings.SafetyCheck.UnusedSitePermissionsAllowAgainDays"
    units="days" expires_after="2025-11-16">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    The number of days between the revocation of the permissions for an unused
    site and when the user reverts this revocation through the unused site
    permissions module of safety check in Chrome settings. Emitted when the user
    clicks regrants permissions through the permissions review interface in
    Chrome settings.
  </summary>
</histogram>

<histogram name="Settings.SafetyCheck.UnusedSitePermissionsMigrationFail"
    units="type" expires_after="2025-12-14">
  <owner>alimariam@google.com</owner>
  <owner>sideyilmaz@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    The number of the failed type which could not be migrated to the SafetyCheck
    new unused site permissions module with string name IDs. Recorded on profile
    startup if the integer value ID in prefs doesn't match any
    ContentSettingsType.
  </summary>
</histogram>

<histogram name="Settings.SafetyCheck.UnusedSitePermissionsModuleInteractions"
    enum="SafetyCheckUnusedSitePermissionsModuleInteractions"
    expires_after="2027-01-24">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The user actions taken on the unused site permissions module in safety check
    in Chrome settings. Recorded every time the user interacts with the
    respective UI element.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyCheck.UnusedSitePermissionsRegrantDays{SourceUI}.All"
    units="days" expires_after="2026-07-27">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures the number of days since the permission was revoked for any
    permission type, up until the cleanup threshold for revoked permissions has
    been reached. The metric is recorded when the user regrants a permission
    that was previously revoked by the unused site permission module of
    SafetyCheck.
  </summary>
  <token key="SourceUI">
    <variant name="Prompt"/>
    <variant name="Settings"/>
  </token>
</histogram>

<histogram
    name="Settings.SafetyCheck.UnusedSitePermissionsRegrantDays{SourceUI}.{PermissionType}"
    units="days" expires_after="2026-07-27">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures the number of days since the permission was revoked for the
    {PermissionType} permission type, up until the cleanup threshold for revoked
    permissions has been reached. The metric is recorded when the user regrants
    a permission that was previously revoked by the unused site permission
    module of SafetyCheck.
  </summary>
  <token key="PermissionType" variants="SettingsAllPermissionTypes"/>
  <token key="SourceUI">
    <variant name="Prompt"/>
    <variant name="Settings"/>
  </token>
</histogram>

<histogram name="Settings.SafetyCheck.UpdatesResult"
    enum="SafetyCheckUpdateStatus" expires_after="2023-04-23">
  <owner>andzaytsev@google.com</owner>
  <owner>msramek@chromium.org</owner>
  <summary>Resulting state of the safety check updates check.</summary>
</histogram>

<histogram
    name="Settings.SafetyHub.AbusiveNotificationPermissionRevocation.BlocklistCheckCount"
    units="checks" expires_after="2027-07-26">
  <owner>skrakowi@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The number of times the blocklist was checked when running the abusive
    notification revocation feature in the revoked permissions module of the
    Safety Hub. Recorded during the auto-revocation run.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.AbusiveNotificationPermissionRevocation.CheckResult"
    enum="AbusiveNotificationPermissionsCheckResult" expires_after="2027-02-07">
  <owner>thefrog@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    Records the result of the Safe Browsing social engineering blocklist check
    for abusive notification permissions in Safety Hub. Logged each time a URL
    check completes (safe, phishing, or timeout).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.AbusiveNotificationPermissionRevocation.Interactions"
    enum="SafetyCheckUnusedSitePermissionsModuleInteractions"
    expires_after="2027-01-03">
  <owner>skrakowi@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The user actions taken on revoked abusive notifications in the revoked
    permissions module of the Safety Hub page in settings. Recorded every time
    the user interacts with the respective UI element for abusive notifications
    - this does not include interactions with revoked unused permissions.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.AbusiveNotificationPermissionRevocation.{NotificationRevocationSource}.{RevokedStatus}.PermissionChanged"
    enum="ContentSetting" expires_after="2027-02-07">
  <owner>skrakowi@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    Recorded when the user changes notification permission outside of Safety Hub
    for sites previously {RevokedStatus} due to abusive notification with reason
    {NotificationRevocationSource}.

    This detects occurrence of false positive abusive auto-revocations.
  </summary>
  <token key="RevokedStatus">
    <variant name="Ignored"/>
    <variant name="Revoked"/>
  </token>
  <token key="NotificationRevocationSource">
    <variant name="ManualSafeBrowsingRevocation"/>
    <variant name="SocialEngineeringBlocklist"/>
    <variant name="SuspiciousContentAutoRevocation"/>
    <variant name="Unknown"/>
  </token>
</histogram>

<histogram name="Settings.SafetyHub.AutorevokeUnusedSitePermissions.Changed"
    enum="BooleanEnabled" expires_after="2027-01-03">
  <owner>zalmashni@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the state of the unused site permissions auto-revocation pref.
    Recorded when the user changes the preference via the toggle on the Site
    Settings page.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.AutorevokeUnusedSitePermissions.StateOnStartup"
    enum="BooleanEnabled" expires_after="2027-01-17">
  <owner>fsenra@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures whether auto-revocation is enabled for unused site permissions.
    Recorded when the SafetyHubFetchService is created on browser start up.
    Android-only.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.Dashboard.Interactions"
    enum="SafetyHubDashboardInteractions" expires_after="2026-06-28">
  <owner>zalmashni@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures actions taken on the Safety Hub dashboard, except those taken on
    the notifications review and revoked permissions module. Emitted for all
    relevant click events on the Safety Hub dashboard.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.DashboardWarning"
    enum="SafetyHubModuleType" expires_after="2027-02-07">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the impressions of the different modules that have some warnings in
    Safety Check page. Recorded whenever Safety Check page is loaded.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.DailyDistribution.{RevocationState}.SiteEngagement"
    units="EngagementScore" expires_after="2026-08-26">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records the site engagement for revoked disruptive notification sites.
    Recorded on every run of the disruptive notification sites Safety Hub check.
  </summary>
  <token key="RevocationState">
    <variant name="Acknowledged"/>
    <variant name="Proposed"/>
    <variant name="Regranted"/>
    <variant name="Revoked"/>
  </token>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.DailyDistribution.{RevocationState}.SiteEngagement{SiteEngagement}.DaysSinceRevocation"
    units="days" expires_after="2026-09-06">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records the number of days since revocation for revoked disruptive
    notification sites, and their current state and site engagement. Recorded on
    every run of the disruptive notification sites Safety Hub check. For
    proposed revocation, days are computed since the proposal.
  </summary>
  <token key="RevocationState">
    <variant name="Acknowledged"/>
    <variant name="Proposed"/>
    <variant name="Regranted"/>
    <variant name="Revoked"/>
  </token>
  <token key="SiteEngagement">
    <variant name="0"/>
    <variant name="1"/>
    <variant name="2"/>
    <variant name="3"/>
    <variant name="4"/>
    <variant name="5"/>
    <variant name="6-7"/>
    <variant name="8-10"/>
    <variant name="11-15"/>
    <variant name="&gt;15"/>
  </token>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.FalsePositive.DailyAverageVolume"
    units="count" expires_after="2026-05-03">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks the distribution of the average daily notification volume for
    detected false positive sites that were previously marked for revocation of
    disruptive notifications.

    The metric is only reported if all false positive conditions are satified
    (the interaction happened within min, max days since the revocation, site
    engagement score has increased by min delta).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.FalsePositive.DaysSinceProposedRevocation"
    units="count" expires_after="2026-07-05">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks the distribution of the days since proposed revocation for detected
    false positive sites that were previously marked for revocation of
    disruptive notifications.

    The metric is only reported if all false positive conditions are satified
    (the interaction happened within min, max days since the revocation, site
    engagement score has increased by min delta).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.FalsePositive.NotificationClickCount"
    units="count" expires_after="2026-08-26">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks the distribution of the number of notification clicks that occured
    during the cooldown period for detected false positive sites that were
    previously marked for revocation of disruptive notifications.

    The metric is only reported if all false positive conditions are satified
    (the interaction happened within min, max days since the revocation, site
    engagement score has increased by min delta).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.FalsePositive.PageVisitCount"
    units="count" expires_after="2026-05-03">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks the distribution of the number of page visits that occured during the
    cooldown period for detected false positive sites that were previously
    marked for revocation of disruptive notifications.

    The metric is only reported if all false positive conditions are satified
    (the interaction happened within min, max days since the revocation, site
    engagement score has increased by min delta).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.FalsePositive.SiteEngagement"
    units="EngagementScore" expires_after="2026-05-03">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks the distribution of the site engagement score for detected false
    positive sites that were previously marked for revocation of disruptive
    notifications.

    The metric is only reported if all false positive conditions are satified
    (the interaction happened within min, max days since the revocation, site
    engagement score has increased by min delta).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.HasReportedMetricsBeforeRevocation"
    units="count" expires_after="2026-05-03">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks how often a disruptive notification is revoked without reporting a
    proposed disruptive notification UKM beforehand. The UKM can only be
    reported on a notification interaction or a page visit. The revocation is
    delayed to report the proposed metric when a notification is shown. After
    the cooldown runs out, the revocation will happen even without reporting
    metrics.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.NotDisruptiveAnymore.DaysSinceProposedRevocation"
    units="count" expires_after="2026-08-26">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks the distribution of the days since proposed revocation for sites that
    were previously marked for revocation of disruptive notifications but are
    not classified as disruptive anymore (due to site engagement score increase
    or decline in the daily average notification count).
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.NotDisruptiveAnymore.NotificationCountDecreased"
    units="count" expires_after="2026-08-26">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks the distribution of the new daily average notification count (over
    the last 7 days) for sites that were previously marked for revocation of
    disruptive notifications but are not classified as disruptive anymore, due
    to the notification count decrease.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.NotDisruptiveAnymore.SiteEngagementIncreased"
    units="count" expires_after="2026-07-05">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Tracks the distribution of the new site engagement score for sites that were
    previously marked for revocation of disruptive notifications but are not
    classified as disruptive anymore, due to the site engagement score increase.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.Proposed.NotificationCount"
    units="count" expires_after="2026-09-06">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks the distribution of the average daily notification count for proposed
    revocation of disruptive notifications.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.RevocationResult"
    enum="DisruptiveNotificationRevocationResult" expires_after="2026-12-27">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks results of the disruptive notification feature. Recorded every time
    the safety hub check runs (once a day). The metric is recorded per each
    notification content setting. It indicates whether the notification should
    be revoked, or the reason why it shouldn't be revoked.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.Revoke.DaysSinceProposedRevocation"
    units="count" expires_after="2026-12-27">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks how many days has passed since a disruptive notification revocation
    was proposed to when it was actually revoked. The delay is caused by waiting
    for metrics to be reported when a notification for a site is shown.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.RevokedWebsitesCount"
    units="count" expires_after="2027-01-17">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records the number of revoked disruptive notification sites per a Safety Hub
    run. Note that this are actually proposed revocations, which will
    potentially become effective only in successive runs.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.UserRegrant.{RegrantType}.DaysSinceProposedRevocation"
    units="days" expires_after="2027-02-07">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Recorded when users regrant notification permissions after a disruptive
    notification revocation. Measures how many days passed since the proposed
    revocation.
  </summary>
  <token key="RegrantType" variants="RegrantType"/>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.UserRegrant.{RegrantType}.NewSiteEngagement"
    units="days" expires_after="2026-05-03">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <summary>
    Recorded when users regrant notification permissions after a disruptive
    notification revocation. Measures how many days passed since the proposed
    revocation.
  </summary>
  <token key="RegrantType" variants="RegrantType"/>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.UserRegrant.{RegrantType}.PreviousNotificationCount"
    units="count" expires_after="2026-10-25">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Recorded when users regrant notification permissions after a disruptive
    notification revocation. Reports the average daily notification count when
    the revocation was proposed.
  </summary>
  <token key="RegrantType" variants="RegrantType"/>
</histogram>

<histogram
    name="Settings.SafetyHub.DisruptiveNotificationRevocations.{RevocationState}.FalsePositiveInteraction"
    enum="DisruptiveNotificationFalsePositiveReason" expires_after="2026-11-29">
  <owner>olesiamarukhnno@google.com</owner>
  <owner>antoniosartori@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Tracks the distribution of the interactions with sites that were previously
    marked for revocation of disruptive notifications. The metric is reported
    when the interaction with the site occurs.
  </summary>
  <token key="RevocationState">
    <variant name="Proposed"/>
    <variant name="Revoked"/>
  </token>
</histogram>

<histogram name="Settings.SafetyHub.EntryPointImpression"
    enum="SafetyHubEntryPoint" expires_after="2026-08-09">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the impressions of the different entry points of Safety Hub.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.EntryPointInteraction"
    enum="SafetyHubEntryPoint" expires_after="2026-06-07">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures the interaction with an entry point of Safety Hub, that will
    eventually lead to the Safety Check page, password manager checkup page or
    the extensions page.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.ExternalInteractions"
    enum="SafetyHubExternalInteractions" expires_after="2026-06-28">
  <owner>zalmashni@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the interaction with an entry point of Safety Hub. Emitted when the
    user click on the entry point.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.HasDashboardShowAnyWarning"
    enum="BooleanVisible" expires_after="2026-06-21">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>chrome-privacy-controls@google.com</owner>
  <summary>
    Captures whether the Safety Check dashboard has any warning. Recorded
    whenever Safety Check page is loaded.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.Impression" enum="SafetyHubSurfaces"
    expires_after="2026-07-27">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures Safety Hub page visits and three dot menu impressions for any
    Safety Hub module.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.Interaction" enum="SafetyHubSurfaces"
    expires_after="2026-10-11">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures Safety Hub page visits and three dot menu clicks for any Safety Hub
    module.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.MagicStack.StateOnStartup"
    enum="BooleanEnabled" expires_after="2026-04-05">
  <owner>fsenra@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the user preference for whether the Safety Hub Magic Stack module
    is enabled. Recorded when the SafetyHubMagicStackBuilder is created on
    browser start up. Android-only.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.MenuNotificationClicked"
    enum="SafetyHubModuleType" expires_after="2026-06-07">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures the Safety Hub module of which the three-dot menu notification was
    clicked.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.MenuNotificationImpression"
    enum="SafetyHubModuleType" expires_after="2026-06-07">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>tov@chromium.org</owner>
  <owner>msramek@chromium.org</owner>
  <summary>
    Captures the Safety Hub module for which a notification was shown in the
    three-dot menu.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.NotificationPermissionsModule.Interactions"
    enum="SafetyCheckNotificationsModuleInteractions"
    expires_after="2026-07-05">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-privacy-controls@google.com</owner>
  <summary>
    The user actions taken on the notification permissions module in Safety
    Check page in settings. Recorded every time the user interacts with the
    respective UI element.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.NotificationPermissionsModule.ListCount"
    units="suggestions" expires_after="2026-07-05">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-privacy-controls@google.com</owner>
  <summary>
    The number of notification permissions suggested to be removed. Recorded
    when Safety Check page in Settings is opened.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.PasswordsCard.StatusOnClick"
    enum="SafetyHubCardState" expires_after="2026-08-31">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Passwords Card is located on Safety Check page in settings and can be in one
    of the multiple states. This is the Passwords Card state recorded on click.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.SafeBrowsingCard.StatusOnClick"
    enum="SafetyHubCardState" expires_after="2026-08-31">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Safe Browsing Card is located on Safety Check page in settings and can be in
    one of the multiple states. This is the Safe Browsing Card state recorded on
    click.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.UnusedSitePermissionsModule.AutoRevoked2"
    enum="ContentType" expires_after="2026-12-27">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The type of permission auto-revoked by the unused site permissions module of
    Safety Hub. Recorded during the auto-revocation run.

    Updated to use the default content settings enum in M128.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.UnusedSitePermissionsModule.Backfill.CompletionStatus"
    enum="Boolean" expires_after="2026-09-20">
  <owner>aisulu@google.com</owner>
  <owner>fsenra@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records on startup whether the user previously went through backfill or not.
    The backfill here is a process of adding `last_visited` timestamp to all
    granted permissions of the user that do not have it yet.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.UnusedSitePermissionsModule.Backfill.ListCountOnCompletion"
    units="permissions" expires_after="2026-09-20">
  <owner>aisulu@google.com</owner>
  <owner>fsenra@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The number of permissions that a successfull backfill run timestamped with
    `last_visited` field.
  </summary>
</histogram>

<histogram
    name="Settings.SafetyHub.UnusedSitePermissionsModule.Backfill.RunStatus"
    enum="BooleanStartedCompleted" expires_after="2026-09-20">
  <owner>aisulu@google.com</owner>
  <owner>fsenra@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Records whenever the backfill was started or completed. The backfill here
    adds `last_visited` timestamp to all granted permissions of the user that do
    not have it yet.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.UnusedSitePermissionsModule.Interactions"
    enum="SafetyCheckUnusedSitePermissionsModuleInteractions"
    expires_after="2026-11-15">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The user actions taken on the unused site permissions module in Safety Check
    page in settings. Recorded every time the user interacts with the respective
    UI element.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.UnusedSitePermissionsModule.ListCount"
    units="suggestions" expires_after="2027-01-17">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    The number of unused site permissions suggested to be removed. Recorded when
    Safety Check page in Settings is opened.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.VersionCard.StatusOnClick"
    enum="SafetyHubCardState" expires_after="2026-08-31">
  <owner>sideyilmaz@chromium.org</owner>
  <owner>aisulu@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Version Card is located on Safety Check page in settings and can be in one
    of the multiple states. This is the Version Card state recorded on click.
  </summary>
</histogram>

<histogram name="Settings.SafetyHub.{ModuleType}.{LifecycleEvent}"
    enum="SafetyHubModuleState" expires_after="2026-08-30">
  <owner>zalmashni@google.com</owner>
  <owner>chrome-browser-privacy-team@google.com</owner>
  <summary>
    Captures the state of Safety Hub dashboard modules on impression or exit.
  </summary>
  <token key="ModuleType" variants="SafetyHubDashboardModuleType"/>
  <token key="LifecycleEvent" variants="SafetyHubLifecycleEvent"/>
</histogram>

<histogram name="Settings.Search.ExitReason" enum="SettingsSearchExitReason"
    expires_after="2026-12-27">
  <owner>adelm@google.com</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    How search in settings was used i.e. user clicked the search results,
    abandoned them without clicking, or abandoned due to getting no results at
    all, etc. Recorded when users does something to the results after receiving
    them or when user invokes OS back to go back to the search results and do
    something again. Also recorded when search UI/Settings Activity is exited.
    Android only.
  </summary>
</histogram>

<histogram name="Settings.Search.UiOpened" enum="Boolean"
    expires_after="2026-12-27">
  <owner>adelm@google.com</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    User entered the search in settings. Recorded when the user clicks the
    search box UI. Android only.
  </summary>
</histogram>

<histogram name="Settings.Search.UiOpenedPerSession" enum="Boolean"
    expires_after="2027-02-07">
  <owner>adelm@google.com</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    Same as Settings.Search.UiOpened, but recorded only once since the user
    opens Settings. Android only.
  </summary>
</histogram>

<histogram name="Settings.SearchEngines.GoogleIconMismatches" enum="Boolean"
    expires_after="2027-01-15">
  <owner>alsan@chromium.org</owner>
  <owner>chrome-desktop-ui-waterloo@google.com</owner>
  <summary>
    Records the number of times a Google Search icon was loaded for a non-Google
    search engine on the settings page. The boolean value indicates whether the
    search engine is the current default.
  </summary>
</histogram>

<histogram name="Settings.SearchEngines.Interactions"
    enum="SettingsSearchEnginesInteractions" expires_after="2027-01-31">
  <owner>yoangela@chromium.org</owner>
  <owner>amelies@google.com</owner>
  <owner>chrome-omnibox-team@google.com</owner>
  <summary>
    Which Search Engines and Search settings page elements a user interacted
    with (e.g. section expand/collapse, subpage navigation, and engine editing).
    Recorded every time a user interacts with an element of interest. Buckets
    4-13 were added in M150.
  </summary>
</histogram>

<histogram
    name="Settings.SearchEngines.SearchHijackingDetector.HeuristicAvailable"
    enum="Boolean" expires_after="2027-01-01">
  <owner>bcl@google.com</owner>
  <owner>chrome-omnibox-team@google.com</owner>
  <summary>
    Records whether the Safe Browsing traffic-based search hijacking heuristic
    had been calculated whenever a user visits chrome://settings/search. As of
    M149, this only expected to be true for Enhanced Safe Browsing users who run
    extension telemetry, and may still be false for ESB users if the detector
    hasn't yet had opportunity and sufficent data to run. Recorded once each
    time chrome://settings/search is loaded.
  </summary>
</histogram>

<histogram name="Settings.SearchEngines.SearchHijackingDetector.HeuristicMatch"
    enum="Boolean" expires_after="2027-01-01">
  <owner>bcl@google.com</owner>
  <owner>chrome-omnibox-team@google.com</owner>
  <summary>
    Records whether the Safe Browsing traffic-based search hijacking heuristic
    matched in the last 7 days. Recorded once each time chrome://settings/search
    page is loaded, if and only if the heuristic is available.
  </summary>
</histogram>

<histogram name="Settings.SessionDuration" units="ms"
    expires_after="2026-12-27">
  <owner>adelm@google.com</owner>
  <owner>jinsukkim@chromium.org</owner>
  <summary>
    The amount of time in ms the user spent in the Settings menu. Recorded when
    user quits Settings Activity. A session lasts across the activities being
    exited and re-created due to configuration change or memory pressure, till
    the user actually quits the Settings. Only the Activity started for the main
    settings is considered, and those starting sub-settings are ignored. Android
    only.
  </summary>
</histogram>

<histogram name="Settings.StartSetAsDefault" enum="BooleanHit"
    expires_after="2025-03-09">
  <owner>pmonette@chromium.org</owner>
  <owner>robliao@chromium.org</owner>
  <summary>
    The user clicked &quot;Make Google Chrome the default browser&quot; on the
    settings page.
  </summary>
</histogram>

<histogram name="Settings.StartupPageEngineTypes2"
    enum="OmniboxSearchEngineType" expires_after="2027-06-02">
  <owner>mpearson@chromium.org</owner>
  <owner>wfh@chromium.org</owner>
  <summary>
    Tries to pretend the startup page URLs are search URLs, and records the
    search engine types of those URLs by comparing the TLD+1s of the URLs with
    those of the different known search engines. Recorded when a regular profile
    is opened, if startup page URLs have been set. Note that at least one
    profile is opened on startup.

    To be explicit: not logged when an Incognito profile is opened because that
    inherits the settings from its parent profile. As such, it's not necessary
    to log the Incognito profile's settings.
  </summary>
</histogram>

<histogram name="Settings.StartupPageLoadSettings2" enum="SessionStartupPref"
    expires_after="2027-01-03">
  <owner>mpearson@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The startup page settings when a regular profile is loaded.

    To be explicit: not logged when an Incognito profile is opened because that
    inherits the settings from its parent profile. As such, it's not necessary
    to log the Incognito profile's settings.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceChangedEncrypted"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has been changed since the last
    time Chrome set it. This histogram is emitted after a validation check using
    the encrypted hash stored in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceChangedViaHmacFallback"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has been changed since the last
    time Chrome set it. Only emitted if the encrypted hash verification is not
    available causing the verification to fallback to HMAC-based verification.
  </summary>
</histogram>

<histogram
    name="Settings.TrackedPreferenceChanged{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
<!-- Note to owner: This histogram can be renewed 1 full year if it is still
useful for Chirp alerts (go/crca-alerts). -->

  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference whose value has been changed since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.
    {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Settings.TrackedPreferenceClearedEncrypted"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has been cleared since the last
    time Chrome set it. This histogram is emitted after a validation check using
    the encrypted hash stored in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceClearedViaHmacFallback"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has been cleared since the last
    time Chrome set it. Only emitted if the encrypted hash verification is not
    available causing the verification to fallback to HMAC-based verification.
  </summary>
</histogram>

<histogram
    name="Settings.TrackedPreferenceCleared{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference whose value has been cleared since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.

    Warning: This histogram was expired from 2022-12 to 2025-03; data may be
    missing. {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Settings.TrackedPreferenceInitialized{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference whose last value isn't known. We may be just
    starting to track the preference, or local state may have been changed
    outside of Chrome. This should only happen once per pref per profile.
    Without a suffix, this histogram stands for preference validation using MACs
    in the JSON pref files.

    Warning: This histogram was expired from 2022-12 to 2025-03; data may be
    missing. {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Settings.TrackedPreferenceNullInitialized{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference which was initialized despite the absence of
    a MAC as its value was NULL. Without a suffix, this histogram stands for
    preference validation using MACs in the JSON pref files.

    Warning: This histogram was expired from 2022-12 to 2025-03; data may be
    missing. {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Settings.TrackedPreferenceReset" enum="TrackedPreference"
    expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>The id of a tracked preference which was reset by Chrome.</summary>
</histogram>

<histogram name="Settings.TrackedPreferenceResetEncrypted"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference which was reset by Chrome via the encrypted
    hash verification.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceResets.Count" units="resets"
    expires_after="2027-06-09">
  <owner>zackhan@google.com</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The number of preferences that were reset by the TrackedPreference
    validation system during startup. This is recorded when the PrefHashFilter
    is initialized.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceResetViaHmacFallback"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference which was reset by Chrome via the old HMAC
    fallback verification. Only emitted if the encrypted hash verification is
    not available causing the verification to fallback to HMAC-based
    verification.
  </summary>
</histogram>

<histogram
    name="Settings.TrackedPreferences.TypeMismatch.Combination.{RegisteredType}To{LoadedType}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    Records the TrackedPreference ID of a preference that had a type mismatch
    between the registered type ({RegisteredType}) and the loaded type
    ({LoadedType}).
  </summary>
  <token key="RegisteredType" variants="PrefValueType"/>
  <token key="LoadedType" variants="PrefValueType"/>
</histogram>

<histogram name="Settings.TrackedPreferences.WeakAlgorithm"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>wfh@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference which was determined during decryption to be
    using a weak algorithm, and was thus treated as invalid.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceSuperEncryptedHashResult"
    enum="SuperEncryptedHashResult" expires_after="2027-04-01">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The result of verifying the file-level SuperEncryptedHash during preference
    load.
  </summary>
</histogram>

<histogram
    name="Settings.TrackedPreferenceTrustedInitialized{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference which was initialized despite the absence of
    a MAC as the current MACs are trusted, inferring that this is a newly
    tracked pref. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.

    Warning: This histogram was expired from 2022-12 to 2025-03; data may be
    missing. {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Settings.TrackedPreferenceUnchangedEncrypted"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has not changed since the last
    time Chrome set it. This histogram is emitted after preference validation
    using the encrypted hash stored in the JSON pref files.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceUnchangedViaHmacFallback"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference whose value has not changed since the last
    time Chrome set it. Only emitted if the encrypted hash verification is not
    available causing the verification to fallback to HMAC-based verification.
  </summary>
</histogram>

<histogram
    name="Settings.TrackedPreferenceUnchanged{TrackedPreferencesExternalValidators}"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference whose value has not changed since the last
    time Chrome set it. Without a suffix, this histogram stands for preference
    validation using MACs in the JSON pref files.

    Warning: This histogram was expired from 2022-12 to 2025-03; data may be
    missing. {TrackedPreferencesExternalValidators}
  </summary>
  <token key="TrackedPreferencesExternalValidators"
      variants="TrackedPreferencesExternalValidators">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Settings.TrackedPreferenceWantedReset"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>anunoy@chromium.org</owner>
  <owner>junhao.huang@microsoft.com</owner>
  <summary>
    The id of a tracked preference which Chrome would have reset had the config
    allowed it.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceWantedResetEncrypted"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference which Chrome would have reset via the
    encrypted hash reset flow had the config allowed it.
  </summary>
</histogram>

<histogram name="Settings.TrackedPreferenceWantedResetViaHmacFallback"
    enum="TrackedPreference" expires_after="2027-06-09">
  <owner>zackhan@chromium.org</owner>
  <owner>chrome-counter-abuse-alerts@google.com</owner>
  <summary>
    The id of a tracked preference which Chrome would have reset via the old
    HMAC fallback reset flow had the config allowed it. Only emitted if the
    encrypted hash verification is not available causing the verification to
    fallback to HMAC-based verification.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
