<!--
Copyright 2023 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 describes the enumerations referenced by entries in histograms.xml for
this directory. Some enums may instead be listed in the central enums.xml file
at src/tools/metrics/histograms/enums.xml when multiple files use them.

For best practices on writing enumerations descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms

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>

<!-- Enum types -->

<enums>

<enum name="ActivityIndicatorState">
  <int value="0" label="In use"/>
  <int value="1" label="Blocked on the site level"/>
  <int value="2" label="Blocked on the system level"/>
</enum>

<enum name="BlockStateMetric">
  <int value="0" label="Denied by Default"/>
  <int value="1" label="mailto: Allowed by Default"/>
  <int value="2" label="news:/snews: Allowed by Default"/>
  <int value="3" label="news:/snews: Not a Default"/>
  <int value="4" label="Allowed by Enterprise Policy"/>
  <int value="5" label="Allowed by User Preference"/>
  <int value="6" label="Prompt"/>
</enum>

<enum name="BooleanBrowserAlwaysActive">
  <int value="0"
      label="The browser changed its activation while a prompt was visible"/>
  <int value="1" label="The browser was always active"/>
</enum>

<enum name="CrowdDenyNotificationUxQuality">
  <int value="0" label="Uknown"/>
  <int value="1" label="Accceptable"/>
  <int value="2" label="Unsolicited prompts"/>
  <int value="3" label="Abusive prompts"/>
  <int value="4" label="Abusive content"/>
  <int value="5" label="Disruptive behavior"/>
</enum>

<enum name="CrowdDenySafeBrowsingVerdict">
  <int value="0" label="Acceptable"/>
  <int value="1" label="Unsolicited notification prompts"/>
</enum>

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

<enum name="DismissedReason">
  <int value="0" label="Dismiss via X button"/>
  <int value="1" label="Dismiss via scrim click"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:DismissedReason) -->

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

<enum name="ExternalProtocolScheme">
  <int value="0" label="Other"/>
  <int value="1" label="search-ms"/>
  <int value="2" label="search"/>
  <int value="3" label="mailto"/>
  <int value="4" label="microsoft-edge"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/external_protocol/external_protocol_handler.cc:LoggedScheme) -->

<enum name="GeolocationAccuracy">
  <int value="0" label="Precise"/>
  <int value="1" label="Approximate"/>
</enum>

<enum name="HandleStateType">
  <int value="0" label="Launch"/>
  <int value="1" label="Checked launch"/>
  <int value="2" label="Dont launch"/>
  <int value="3" label="Checked dont launch"/>
</enum>

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

<enum name="LanguageDetectionStatus">
  <int value="0" label="NoResultDueToTimeout"/>
  <int value="1" label="ImmediatelyAvailableEnglish"/>
  <int value="2" label="ImmediatelyAvailableNotEnglish"/>
  <int value="3" label="DelayedDetectedEnglish"/>
  <int value="4" label="DelayedDetectedNotEnglish"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_request_enums.h:LanguageDetectionStatus) -->

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

<enum name="OneTimePermissionEvent">
  <summary>One-time permission events.</summary>
  <int value="0" label="Granted one time"/>
  <int value="1" label="Revoked one time grant manually"/>
  <int value="2" label="Expired due to tab closure or discards"/>
  <int value="3" label="Expired in the background due to non-usage"/>
  <int value="4" label="Expired after maximum lifetime"/>
  <int value="5" label="Expired because the device was suspended"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:OneTimePermissionEvent) -->

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

<enum name="OsScreenAction">
  <int value="0" label="Go to system settings"/>
  <int value="1" label="Dismiss via X button"/>
  <int value="2" label="Dismiss via scrim click"/>
  <int value="3" label="Deny OS prompt"/>
  <int value="4" label="Grant OS prompt"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:OsScreenAction) -->

<enum name="PermissionAction">
  <int value="0" label="GRANTED"/>
  <int value="1" label="DENIED"/>
  <int value="2" label="DISMISSED"/>
  <int value="3" label="IGNORED"/>
  <int value="4" label="REVOKED"/>
  <int value="5" label="GRANTED_ONCE"/>
</enum>

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

<enum name="PermissionAiRelevanceModel">
  <int value="0" label="Unknown"/>
  <int value="1" label="(Obsolete) AIv3"/>
  <int value="2" label="AIv4"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_request_enums.h:PermissionAiRelevanceModel) -->

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

<enum name="PermissionChangeAction">
  <int value="0" label="Revoked"/>
  <int value="1" label="Reallowed"/>
  <int value="2" label="Reset from allowed state"/>
  <int value="3" label="Reset from denied state"/>
  <int value="4" label="Remember decision checkbox toggled"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionChangeAction) -->

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

<enum name="PermissionChangeInfo">
  <int value="0" label="Infobar shown, page reloaded, permission used"/>
  <int value="1" label="Infobar shown, page reloaded, permission not used"/>
  <int value="2" label="Infobar shown, no page reloaded, permission used"/>
  <int value="3" label="Infobar shown, no page reloaded, permission not used"/>
  <int value="4" label="Infobar not shown, page reloaded, permission used"/>
  <int value="5" label="Infobar not shown, page reloaded, permission not used"/>
  <int value="6" label="Infobar not shown, no page reloaded, permission used"/>
  <int value="7"
      label="Infobar not shown, no page reloaded, permission not used"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionChangeInfo) -->

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

<enum name="PermissionEmbargoStatus">
  <int value="0" label="NOT_EMBARGOED"/>
  <int value="1" label="(Obsolete) BLACKLISTED"/>
  <int value="2" label="REPEATED_DISMISSALS"/>
  <int value="3" label="REPEATED_IGNORES"/>
  <int value="4" label="RECENT_DISPLAY"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionEmbargoStatus) -->

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

<enum name="PermissionPredictionSource">
  <int value="0" label="No CPSS model"/>
  <int value="1" label="CPSSv1 model"/>
  <int value="2" label="CPSSv3 model"/>
  <int value="3" label="(Obsolete) AIv1 model"/>
  <int value="4" label="(Obsolete) AIv3 model"/>
  <int value="5" label="AIv4 model"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_request_enums.h:PermissionPredictionSource) -->

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

<enum name="PermissionPredictionSupportedType">
  <int value="0" label="Notifications"/>
  <int value="1" label="Geolocation"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_request_enums.h:PermissionPredictionSupportedType) -->

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

<enum name="PermissionPromptDismissMethod">
  <int value="0" label="Unspecified"/>
  <int value="1" label="Back navigation"/>
  <int value="2" label="Touching outside the scrim"/>
  <int value="3"
      label="Autodismissed due to dequeuing a prompt after the user
             backgrounds the browser and cleanup has happened."/>
  <int value="4"
      label="Autodismissed after prompt was accepted but OS permission was
             denied"/>
  <int value="5" label="Autodismissed due to no modal dialog manager"/>
  <int value="6" label="Dismiss via dialog's close button"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:DismissalType) -->

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

<enum name="PermissionRequestIgnoredReason">
  <summary>
    Breaks down reasons for permission requests being categorized as ignored.
    Reasons captured are 0. window containing the tab with the pending
    permission request being closed 1. Tab containing the pending permission
    request being closed 2. Navigation 3. Other: catches all other cases.
  </summary>
  <int value="0" label="Window closed"/>
  <int value="1" label="Tab closed"/>
  <int value="2" label="Navigation"/>
  <int value="3" label="Other"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionIgnoredReason) -->

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

<enum name="PermissionRequestLikelihood">
  <int value="0" label="Unspecified"/>
  <int value="1" label="Very Unlikely"/>
  <int value="2" label="Unlikely"/>
  <int value="3" label="Neutral"/>
  <int value="4" label="Likely"/>
  <int value="5" label="Very Likely"/>
</enum>

<!-- LINT.ThenChange(/components/permissions/permission_request_enums.h:PermissionRequestLikelihood) -->

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

<enum name="PermissionRequestRelevance">
  <int value="0" label="Unspecified"/>
  <int value="1" label="Very Low"/>
  <int value="2" label="Low"/>
  <int value="3" label="Medium"/>
  <int value="4" label="High"/>
  <int value="5" label="Very High"/>
</enum>

<!-- LINT.ThenChange(/components/permissions/permission_request_enums.h:PermissionRequestRelevance) -->

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

<enum name="PermissionSourceUI">
  <int value="0" label="Prompt"/>
  <int value="1" label="Page info bubble"/>
  <int value="2" label="Site settings"/>
  <int value="3" label="Page action bubble"/>
  <int value="4"
      label="Android notification channel settings (when opened from Chrome)"/>
  <int value="5" label="Inline settings as part of the event's UI"/>
  <int value="6" label="Automatic revocation from Safe Browsing"/>
  <int value="7" label="Automatic revocation from Safety Hub"/>
  <int value="8" label="Unidentified source"/>
  <int value="9" label="Disruptive notification revocation"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionSourceUI) -->

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

<enum name="PermissionsPolicyConfiguration">
  <int value="0" label="HEADER_NOT_PRESENT_OR_INVALID"/>
  <int value="1" label="FEATURE_NOT_PRESENT"/>
  <int value="2" label="FEATURE_ALLOWLIST_EXPLICITLY_MATCHES_ORIGIN"/>
  <int value="3" label="FEATURE_ALLOWLIST_IS_WILDCARD"/>
  <int value="4" label="FEATURE_ALLOWLIST_IS_NONE"/>
  <int value="5" label="FEATURE_ALLOWLIST_DOES_NOT_MATCH_ORIGIN"/>
</enum>

<!-- LINT.ThenChange(//components/permissions/permission_uma_util.h:PermissionHeaderPolicyForUMA) -->

<enum name="SerialChooserOutcome">
  <int value="0" label="Chooser cancelled"/>
  <int value="1" label="Chooser cancelled, no options available"/>
  <int value="2" label="Permission granted"/>
  <int value="3" label="Ephemeral permission granted"/>
</enum>

<enum name="SerialPermissionRevoked">
  <int value="0" label="Persistent permission revoked by user"/>
  <int value="1" label="Ephemeral permission revoked by user"/>
  <int value="2" label="Ephemeral permission revoked on disconnect"/>
  <int value="3" label="Persistent permission revoked by website"/>
  <int value="4" label="Ephemeral permission revoked by website"/>
</enum>

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

<enum name="WebHidChooserClosed">
  <int value="0" label="User cancelled"/>
  <int value="1" label="User cancelled, no devices available"/>
  <int value="2" label="Permission granted"/>
  <int value="3" label="Ephemeral permission granted"/>
  <int value="4" label="Dismissed due to loss of focus"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/hid/web_hid_histograms.h:WebHidChooserClosed) -->

<enum name="WebSiteSettingsAllSitesAction2">
  <int value="0" label="All Sites Loaded"/>
  <int value="1" label="Reset Site Group Permissions"/>
  <int value="2" label="Reset Origin Permission"/>
  <int value="3" label="Clear All Data"/>
  <int value="4" label="Clear Site Group Data"/>
  <int value="5" label="Clear Origin Data"/>
  <int value="6" label="Enter Site Details"/>
  <int value="7" label="Remove Site Group"/>
  <int value="8" label="Remove Origin"/>
  <int value="9" label="Remove Origin Partitioned"/>
  <int value="10" label="Filter sites by FPS owner"/>
  <int value="11" label="Delete all site entries for a FPS owner"/>
</enum>

</enums>

</histogram-configuration>
