<!--
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>

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

<enum name="ContextualCustomActionType">
  <int value="0" label="Link"/>
  <int value="1" label="Image"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java:ContextualCustomActionType) -->

<enum name="CustomTabsBrandingAppIdType">
  <summary>Used by CustomTabs.Branding.AppIdType</summary>
  <int value="0" label="INVALID"/>
  <int value="1" label="PACKAGE_NAME"/>
  <int value="2" label="REFERRER"/>
</enum>

<enum name="CustomTabsCloseCause">
  <int value="0" label="User action in Chrome (back press, close button)"/>
  <int value="1" label="User action in Android (home)"/>
  <int value="2" label="Auto-closed"/>
  <int value="3" label="AuthTab success"/>
</enum>

<enum name="CustomTabsConnection">
  <int value="0" label="Disconnected from service w/o KeepAlive connection"/>
  <int value="1" label="Disconnected from service with KeepAlive connection"/>
  <int value="2" label="Connected to service w/o KeepAlive connection"/>
  <int value="3" label="Connected to service with KeepAlive connection"/>
</enum>

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

<enum name="CustomTabsFeatureUsed">
  <int value="0" label="Sessions - counter for all sessions"/>
  <int value="1" label="Action button EXTRA_ACTION_BUTTON_BUNDLE"/>
  <int value="2" label="Action button tint EXTRA_TINT_ACTION_BUTTON"/>
  <int value="3" label="Background color EXTRA_INITIAL_BACKGROUND_COLOR"/>
  <int value="4" label="Background EXTRA_ENABLE_BACKGROUND_INTERACTION"/>
  <int value="5" label="Close button EXTRA_CLOSE_BUTTON_ICON"/>
  <int value="6" label="Close position EXTRA_CLOSE_BUTTON_POSITION"/>
  <int value="7" label="Color dark CTF_DARK"/>
  <int value="8" label="Color light CTF_LIGHT"/>
  <int value="9" label="Color scheme EXTRA_COLOR_SCHEME"/>
  <int value="10" label="Color system CTF_SYSTEM"/>
  <int value="11" label="Disable download EXTRA_DISABLE_DOWNLOAD_BUTTON"/>
  <int value="12" label="Disable star EXTRA_DISABLE_STAR_BUTTON"/>
  <int value="13" label="Exit animation EXTRA_EXIT_ANIMATION_BUNDLE"/>
  <int value="14" label="AGA experiment ids EXPERIMENT_IDS"/>
  <int value="15" label="Incognito EXTRA_OPEN_NEW_INCOGNITO_TAB"/>
  <int value="16" label="Initial height EXTRA_INITIAL_ACTIVITY_HEIGHT_PX"/>
  <int value="17" label="Media EXTRA_ENABLE_EMBEDDED_MEDIA_EXPERIENCE"/>
  <int value="18" label="Media launcher EXTRA_BROWSER_LAUNCH_SOURCE"/>
  <int value="19" label="Media url EXTRA_MEDIA_VIEWER_URL"/>
  <int value="20" label="Menu items EXTRA_MENU_ITEMS"/>
  <int value="21" label="Package extra EXTRA_CALLING_ACTIVITY_PACKAGE"/>
  <int value="22" label="Package from Sessions or Extra CTF_PACKAGE_NAME"/>
  <int value="23" label="Partial corners EXTRA_TOOLBAR_CORNER_RADIUS_DP"/>
  <int value="24" label="Partial height layout CTF_PARTIAL"/>
  <int value="25" label="Pending intent EXTRA_REMOTEVIEWS_PENDINGINTENT"/>
  <int value="26" label="Reader Mode usage READER_MODE"/>
  <int value="27" label="Remote view IDs EXTRA_REMOTEVIEWS_VIEW_IDS"/>
  <int value="28" label="Remote views EXTRA_REMOTEVIEWS"/>
  <int value="29" label="Resizable EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR"/>
  <int value="30" label="Screen orientation EXTRA_SCREEN_ORIENTATION"/>
  <int value="31" label="Sent by Chrome CTF_SENT_BY_CHROME"/>
  <int value="32" label="Service keep alive EXTRA_KEEP_ALIVE"/>
  <int value="33" label="Share menu EXTRA_DEFAULT_SHARE_MENU_ITEM"/>
  <int value="34" label="Share state EXTRA_SHARE_STATE"/>
  <int value="35" label="Title visibility EXTRA_TITLE_VISIBILITY_STATE"/>
  <int value="36" label="Toolbar items EXTRA_TOOLBAR_ITEMS"/>
  <int value="37" label="Translate specified EXTRA_TRANSLATE_LANGUAGE"/>
  <int value="38" label="TWA display mode EXTRA_DISPLAY_MODE"/>
  <int value="39" label="TWA EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY"/>
  <int value="40" label="TWA origins EXTRA_ADDITIONAL_TRUSTED_ORIGINS"/>
  <int value="41" label="Url bar hiding EXTRA_ENABLE_URLBAR_HIDING"/>
  <int value="42" label="Translate specified EXTRA_AUTO_TRANSLATE_LANGUAGE"/>
  <int value="43"
      label="(Obsolete) Experiment override EXTRA_AGA_EXPERIMENT_ENABLE.
             Removed 2025/07."/>
  <int value="44" label="Partial width custom tab CTF_PARTIAL_SIDE_SHEET"/>
  <int value="45" label="Break point EXTRA_ACTIVITY_SIDE_SHEET_BREAKPOINT_DP"/>
  <int value="46" label="Initial width EXTRA_INITIAL_ACTIVITY_WIDTH_PX"/>
  <int value="47"
      label="Maximize button EXTRA_ACTIVITY_SIDE_SHEET_ENABLE_MAXIMIZATION"/>
  <int value="48"
      label="Secondary toolbar swipe-up pending intent
             EXTRA_SECONDARY_TOOLBAR_SWIPE_UP_ACTION"/>
  <int value="49"
      label="Decoration type EXTRA_ACTIVITY_SIDE_SHEET_DECORATION_TYPE"/>
  <int value="50"
      label="Side sheet position EXTRA_ACTIVITY_SIDE_SHEET_POSITION"/>
  <int value="51"
      label="Side sheet animation EXTRA_ACTIVITY_SIDE_SHEET_SLIDE_IN_BEHAVIOR"/>
  <int value="52"
      label="Rounded corners position
             EXTRA_ACTIVITY_SIDE_SHEET_ROUNDED_CORNERS_POSITION"/>
  <int value="53"
      label="Enable page insights hub EXTRA_ENABLE_PAGE_INSIGHTS_HUB"/>
  <int value="54"
      label="Scroll content may resize tab
             EXTRA_ACTIVITY_SCROLL_CONTENT_RESIZE"/>
  <int value="55" label="Ephemeral EXTRA_ENABLE_EPHEMERAL_BROWSING"/>
  <int value="56"
      label="Enable google bottom bar EXTRA_ENABLE_GOOGLE_BOTTOM_BAR"/>
  <int value="57"
      label="Google bottom bar buttons EXTRA_GOOGLE_BOTTOM_BAR_BUTTONS"/>
  <int value="58" label="Support multi-network EXTRA_NETWORK"/>
  <int value="59" label="Auth Tab EXTRA_LAUNCH_AUTH_TAB"/>
  <int value="60"
      label="Auth Tab custom redirect scheme EXTRA_REDIRECT_SCHEME"/>
  <int value="61"
      label="Auth Tab https redirect host EXTRA_HTTPS_REDIRECT_HOST"/>
  <int value="62"
      label="Auth Tab https redirect path EXTRA_HTTPS_REDIRECT_PATH"/>
  <int value="63"
      label="Open in Browser button in the toolbar state
             EXTRA_OPEN_IN_BROWSER_STATE"/>
  <int value="64" label="Launch Handler API usage EXTRA_LAUNCH_HANDLER"/>
  <int value="65" label="File Handlers API usage EXTRA_FILE_HANDLERS"/>
  <int value="66"
      label="Custom context menu items EXTRA_CUSTOM_CONTENT_ACTIONS"/>
  <int value="67" label="Timeout minutes EXTRA_TIMEOUT_MINUTES"/>
  <int value="68"
      label="(Obsolete) Timeout minutes allowed
             EXTRA_TIMEOUT_MINUTES_ALLOWED. Removed 2026/06."/>
  <int value="69" label="Timeout pending intent EXTRA_TIMEOUT_PENDING_INTENT"/>
</enum>

<!--LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsFeatureUsage.java:CustomTabsFeature) -->

<enum name="CustomTabsMinimizedFeatureAvailability">
  <int value="0" label="Available"/>
  <int value="1"
      label="(Obsolete) Unavailable: API level is too low. Removed 2024/02."/>
  <int value="2" label="Unavailable: Low-end device"/>
  <int value="3" label="Unavailable: System doesn't have PiP feature"/>
  <int value="4" label="Unavailable: PiP permission isn't granted"/>
  <int value="5" label="Unavailable: Device is on manufacturer exclude list"/>
</enum>

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

<enum name="CustomTabsMtbHiddenReason">
  <int value="0" label="Other reason"/>
  <int value="1" label="Invalid variant"/>
  <int value="2" label="Duplicated action"/>
  <int value="3" label="In CPA-only mode"/>
  <int value="4" label="No space for button"/>
  <int value="5" label="Toolbar width limit"/>
  <int value="6" label="Omnibox enabled"/>
</enum>

<!--LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabMtbHiddenReason.java:CustomTabMtbHiddenReason) -->

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

<enum name="CustomTabsNavigationEvent">
  <int value="1" label="Navigation Started"/>
  <int value="2" label="Navigation Finished"/>
  <int value="3" label="Navigation Failed"/>
  <int value="4" label="Navigation Aborted"/>
  <int value="5" label="Tab Shown"/>
  <int value="6" label="Tab Hidden"/>
</enum>

<!--LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java:CustomTabsNavigationEvent) -->

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

<enum name="CustomTabsOpenType">
  <int value="0" label="New"/>
  <int value="1" label="Omnibox"/>
  <int value="2" label="RestoreOk"/>
  <int value="3" label="RestoreFail"/>
</enum>

<!--LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicy.java:CustomTabsOpenType) -->

<enum name="CustomTabsPageContentEligibility">
  <int value="0" label="ELIGIBILITY_CHECK_STARTED"/>
  <int value="1" label="ELIGIBLE_ENABLED_BY_CHROME"/>
  <int value="2" label="ELIGIBLE_ENABLED_BY_EMBEDDER"/>
  <int value="3" label="ELIGIBLE_REUSED_ENABLED_BY_CHROME"/>
  <int value="4" label="ELIGIBLE_REUSED_ENABLED_BY_EMBEDDER"/>
  <int value="5" label="NOT_ELIGIBLE_NO_PAGE_CONTENT_REQUEST_AFTER_PARSING"/>
  <int value="6" label="NOT_ELIGIBLE_NO_PAGE_CONTENT_REQUEST_EXTRA"/>
  <int value="7" label="NOT_ELIGIBLE_NO_PERMISSIONS"/>
  <int value="8" label="NOT_ELIGIBLE_NOT_ENABLED"/>
  <int value="9" label="NOT_ELIGIBLE_NOT_VERIFIED"/>
  <int value="10" label="NOT_ELIGIBLE_REUSED"/>
</enum>

<enum name="CustomTabsPageContentExtractionResult">
  <int value="0" label="FAILED_CURRENT_TAB_NULL"/>
  <int value="1" label="FAILED_NO_CONTENT_RETURNED"/>
  <int value="2" label="FAILED_NO_REQUESTS"/>
  <int value="3" label="FAILED_NO_REQUESTS_FOR_VIEW_ID"/>
  <int value="4" label="FAILED_SHOULD_NOT_ADD_PAGE_CONTENT_FOR_CURRENT_TAB"/>
  <int value="5" label="SUCCESS_APC"/>
  <int value="6" label="SUCCESS_APC_PLUS_IMAGE"/>
  <int value="7" label="SUCCESS_IMAGE"/>
  <int value="8" label="SUCCESS_PDF"/>
  <int value="9" label="SUCCESS_PDF_IMAGE"/>
</enum>

<enum name="CustomTabsPageContentRequestedType">
  <int value="0" label="Annotated Page Content"/>
  <int value="1" label="PDF"/>
  <int value="2" label="Screenshot"/>
</enum>

<enum name="CustomTabsParallelRequestStatusOnStart">
  <int value="0" label="No Parallel Request was requested"/>
  <int value="1" label="Parallel request successfully started"/>
  <int value="2" label="Failure: Chrome was not initialized"/>
  <int value="3" label="Failure: Calling application not authorized"/>
  <int value="4" label="Failure: Invalid URL"/>
  <int value="5" label="Failure: Invalid referrer"/>
  <int value="6" label="Failure: Invalid referrer for the calling session"/>
</enum>

<enum name="CustomTabsPartialCustomTabType">
  <int value="0" label="No type"/>
  <int value="1" label="Partial Custom Tab is a bottom-sheet"/>
  <int value="2" label="Partial Custom Tab is a side-sheet"/>
  <int value="3" label="Partial Custom Tab is full-size"/>
</enum>

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

<enum name="CustomTabsResetTimeoutOutcome">
  <summary>
    The result of every CCT session where a timeout was configured.
  </summary>
  <int value="0"
      label="RETURNED_BEFORE_TIMEOUT: User returned to the foreground before
             the timer expired."/>
  <int value="1"
      label="RESET_TRIGGERED_INTENT: Timeout exceeded; successfully fired the
             PendingIntent"/>
  <int value="2"
      label="RESET_TRIGGERED_FALLBACK: Timeout exceeded; PendingIntent failed
             or was null, so CCT called finish()"/>
  <int value="3"
      label="SESSION_CLOSED_MANUALLY: The user manually closed the CCT before
             any timeout occurred."/>
</enum>

<!--LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsTimeoutOutcome.java:CustomTabsResetTimeoutOutcome) -->

<enum name="CustomTabsSessionDisconnectStatus">
  <int value="0" label="Unknown"/>
  <int value="1" label="Custom Tab in Foreground"/>
  <int value="2" label="Custom Tab in Foreground, KEEP_ALIVE set"/>
  <int value="3" label="Custom Tab in Background"/>
  <int value="4" label="Custom Tab in Background, KEEP_ALIVE set"/>
  <int value="5" label="Custom Tab in Foreground, the system is low on memory"/>
  <int value="6"
      label="Custom Tab in Foreground, KEEP_ALIVE set, the system is low on
             memory"/>
  <int value="7" label="Custom Tab in Background, the system is low on memory"/>
  <int value="8"
      label="Custom Tab in Background, KEEP_ALIVE set, the system is low on
             memory"/>
</enum>

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

<enum name="FinishReason">
  <int value="0" label="User Navigation"/>
  <int value="1" label="Reparenting"/>
  <int value="2" label="Other"/>
  <int value="3" label="Open in Browser"/>
  <int value="4" label="Handled by OS"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityNavigationController.java:FinishReason) -->

<enum name="GoogleBottomBarButtonEvent">
  <int value="0" label="Unknown button"/>
  <int value="1" label="Chrome Page Insights button"/>
  <int value="2" label="Embedder Page Insights button"/>
  <int value="3" label="Disabled Save button"/>
  <int value="4" label="Embedder Save button"/>
  <int value="5" label="Chrome Share button"/>
  <int value="6" label="Embedder Share button"/>
  <int value="7" label="Embedder Custom button"/>
  <int value="8" label="Embedder Search button"/>
  <int value="9" label="Chrome Search button"/>
  <int value="10" label="Embedder Home button"/>
  <int value="11" label="Chrome Home button"/>
  <int value="12" label="Searchbox Home button"/>
  <int value="13" label="Searchbox Search entrypoint"/>
  <int value="14" label="Searchbox Voice Search button"/>
  <int value="15" label="Searchbox Lens button"/>
</enum>

<enum name="GoogleBottomBarCreatedEvent">
  <int value="0" label="Even layout"/>
  <int value="1" label="Spotlight layout"/>
</enum>

<enum name="GoogleBottomBarVariantCreatedEvent">
  <int value="0" label="Unknown variant"/>
  <int value="1" label="No variant"/>
  <int value="2" label="Double decker"/>
  <int value="3" label="Single decker"/>
  <int value="4" label="Single decker with right buttons"/>
</enum>

<enum name="IncognitoCCTCallerId">
  <int value="0" label="Other Apps"/>
  <int value="1" label="Google Apps"/>
  <int value="2" label="Chrome - Other features"/>
  <int value="3" label="Chrome - Reader mode"/>
  <int value="4" label="Chrome - Read later"/>
  <int value="5" label="Ephemeral Tab"/>
  <int value="6" label="Chrome - Download Home"/>
  <int value="7" label="Chrome - Contextual Web API Popup"/>
</enum>

<enum name="MayLaunchUrlType">
  <int value="0" label="No MayLaunchUrl() call."/>
  <int value="1" label="Low confidence."/>
  <int value="2" label="High confidence."/>
  <int value="3" label="Low and High confidence."/>
  <int value="4" label="Invalid session."/>
</enum>

<enum name="PageInsightsEvent">
  <int value="0" label="Tap on Page Insights tab from Overflow menu"/>
  <int value="1" label="Page Insights is auto-triggered in Peek state"/>
  <int value="2" label="Page Insights is in Peek state"/>
  <int value="3" label="Page Insights is in Expanded state"/>
  <int value="4" label="Dismiss Page Insights from Peek state"/>
  <int value="5" label="Dismiss Page Insights from Expanded state"/>
  <int value="6"
      label="Tap on XSurface view in Page Insights feature that opens a new
             URL"/>
  <int value="7"
      label="Tap on XSurface view in Page Insights feature that shares a URL"/>
  <int value="8"
      label="Tap on XSurface view in Page Insights feature that opens a new
             child page within the feature"/>
</enum>

<enum name="PcctDeviceSpec">
  <int value="0" label="Low-end and no Pip"/>
  <int value="1" label="Low-end and Pip"/>
  <int value="2" label="High-end and no Pip"/>
  <int value="3" label="High-end and Pip"/>
</enum>

<enum name="TwaLaunchHandlerClientMode">
  <int value="0" label="Initial intent (client mode is ignored)"/>
  <int value="1" label="Client mode navigate_existing"/>
  <int value="2" label="Client mode navigate_new"/>
  <int value="3" label="Client mode focus_existing"/>
  <int value="4" label="Client mode auto"/>
</enum>

<enum name="TwaLaunchHandlerFailureReason">
  <int value="0" label="Target URL verification failed"/>
  <int value="1" label="Current page URL verification failed"/>
</enum>

<enum name="TwaLaunchHandlerFileHandling">
  <int value="0" label="No files"/>
  <int value="1" label="Single file"/>
  <int value="2" label="Multiple files"/>
</enum>

<enum name="VisibleTab">
  <int value="0" label="Custom Tab"/>
  <int value="1" label="Chrome Tab"/>
  <int value="2" label="No Visible Tab (Startup/Warmup)"/>
</enum>

<enum name="WarmupStateOnLaunch">
  <int value="0" label="No Session, No Warmup"/>
  <int value="1" label="No Session, Warmup"/>
  <int value="2" label="Session, No Warmup, Warmup called from another UID"/>
  <int value="3" label="Session, No Warmup"/>
  <int value="4" label="Session, Warmup"/>
</enum>

<enum name="WebAppBackButtonEvent">
  <int value="0"
      label="Invalid back event due to tab switching, e.g. re-parenting."/>
  <int value="1"
      label="Back event triggered by click or touch without meta keys."/>
  <int value="2"
      label="Open a history navigation popup after long pressing button."/>
</enum>

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

<enum name="WebAppHeaderDisplayMode">
  <int value="0" label="undefined"/>
  <int value="1" label="browser"/>
  <int value="2" label="minimalUI"/>
  <int value="3" label="standalone"/>
  <int value="4" label="fullscreen"/>
  <int value="5" label="windowControlsOverlay"/>
  <int value="6" label="tabbed"/>
  <int value="7" label="unframed"/>
  <int value="8" label="pictureInPicture"/>
</enum>

<!-- LINT.ThenChange(//third_party/blink/public/mojom/manifest/display_mode.mojom:DisplayMode)-->

<enum name="WebAppReloadButtonEvent">
  <int value="0"
      label="Invalid reload type due to tab switching, e.g. re-parenting."/>
  <int value="1" label="Stop reloading currently active tab."/>
  <int value="2"
      label="Reload currently active tab including checking the cache."/>
  <int value="3" label="Reload currently active tab ignoring the cache."/>
</enum>

<enum name="WebContentsState">
  <int value="0" label="No WebContents"/>
  <int value="1" label="Prerendered WebContents"/>
  <int value="2" label="Spare WebContents"/>
  <int value="3" label="Transferred WebContents"/>
</enum>

</enums>

</histogram-configuration>
