<!--
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="ActionInSuggestType">
  <summary>The type of Omnibox Action in Suggest.</summary>
  <int value="0" label="Unknown"/>
  <int value="1" label="Call"/>
  <int value="2" label="Directions"/>
  <int value="3" label="Website"/>
  <int value="4" label="Reviews"/>
  <int value="5" label="Aim"/>
  <int value="6" label="Lens"/>
  <int value="7" label="TabSwitch"/>
</enum>

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

<enum name="AimEligibilityRequestStatus">
  <summary>
    The status of a HTTP GET request sent to a backend to fetch AIM eligibility.
  </summary>
  <int value="0" label="kSent"/>
  <int value="1" label="kErrorResponse"/>
  <int value="2" label="kFailedToParse"/>
  <int value="3" label="kSuccess"/>
  <int value="4" label="kSuccessBrowserCache"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/aim_eligibility_service.h:EligibilityRequestStatus) -->

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

<enum name="AimEligibilityResponseSource">
  <summary>The source of the response for AIM eligibility.</summary>
  <int value="0" label="kDefault"/>
  <int value="1" label="kPrefs"/>
  <int value="2" label="kServer"/>
  <int value="3" label="kBrowserCache"/>
  <int value="4" label="kUser"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/aim_eligibility_service.h:EligibilityResponseSource) -->

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

<enum name="AiModeActivationSource">
  <summary>The source of the response for AIM eligibility.</summary>
  <int value="0" label="Tool Menu"/>
  <int value="1" label="Dedicated Button"/>
  <int value="2" label="NTP Button"/>
  <int value="3" label="Implicit"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMetrics.java:AiModeActivationSource,//ios/chrome/browser/composebox/shared/metrics/composebox_metrics_recorder.h:AiModeActivationSource) -->

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

<enum name="AiModePageActionIconSource">
  <summary>The source of the icon for the AI mode page action.</summary>
  <int value="0" label="kInvisible"/>
  <int value="1" label="kVectorIcon"/>
  <int value="2" label="kMemoryFaviconCache"/>
  <int value="3" label="kDiskDbFaviconCache"/>
  <int value="4" label="kNetworkFetch"/>
  <int value="5" label="kFailedIcon"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/omnibox/ai_mode_page_action_controller.h:AiModePageActionIconSource) -->

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

<enum name="AutocompleteRequestType">
  <int value="0" label="Search"/>
  <int value="1" label="Search prefetch"/>
  <int value="2" label="AI Mode"/>
  <int value="3" label="Image Generation"/>
  <int value="4" label="Canvas"/>
  <int value="5" label="Deep Search"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/android/java/src/org/chromium/components/omnibox/AutocompleteRequestType.java,//ios/chrome/browser/composebox/shared/metrics/composebox_metrics_recorder.h:AutocompleteRequestType)-->

<enum name="BooleanNonNull">
  <int value="0" label="Null"/>
  <int value="1" label="Non-null"/>
</enum>

<enum name="BooleanOffered">
  <int value="0" label="Not offered"/>
  <int value="1" label="Offered"/>
</enum>

<enum name="BooleanOffTheRecord">
  <int value="0" label="Regular"/>
  <int value="1" label="Off the record"/>
</enum>

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

<enum name="ComposeboxDragAndDropType">
  <int value="0" label="Text"/>
  <int value="1" label="Image"/>
  <int value="2" label="Tab"/>
  <int value="3" label="PDF"/>
  <int value="4" label="Unknown"/>
  <int value="5" label="Raw File"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/composebox/shared/metrics/composebox_metrics_recorder.h:ComposeboxDragAndDropType, //tools/metrics/histograms/metadata/omnibox/histograms.xml:ComposeboxDragAndDropType) -->

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

<enum name="ContextUploadErrorType">
  <int value="0" label="kUnknown"/>
  <int value="1" label="kBrowserProcessingError"/>
  <int value="2" label="kNetworkError"/>
  <int value="3" label="kServerError"/>
  <int value="4" label="kServerSizeLimitExceeded"/>
  <int value="5" label="kAborted"/>
  <int value="6" label="kImageProcessingError"/>
  <int value="7" label="kBrowserProcessingFileTooLargeError"/>
  <int value="8" label="kBrowserProcessingFileEmptyError"/>
  <int value="9" label="kBrowserProcessingMaxFilesExceededError"/>
  <int value="10" label="kBrowserProcessingUnsupportedFileTypeError"/>
  <int value="11" label="kBrowserProcessingFileUploadNotAllowedError"/>
  <int value="12" label="kBrowserProcessingMaxImagesExceededError"/>
  <int value="13" label="kBrowserProcessingMaxPdfsExceededError"/>
</enum>

<!-- LINT.ThenChange(//components/contextual_search/contextual_search_types.h:ContextUploadErrorType) -->

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

<enum name="ContextUploadStatus">
  <int value="0" label="kNotUploaded"/>
  <int value="1" label="kProcessing"/>
  <int value="2" label="kValidationFailed"/>
  <int value="3" label="kUploadStarted"/>
  <int value="4" label="kUploadSuccessful"/>
  <int value="5" label="kUploadFailed"/>
  <int value="6" label="kUploadExpired"/>
  <int value="7" label="kProcessingSuggestSignalsReady"/>
  <int value="8" label="kUploadReplaced"/>
</enum>

<!-- LINT.ThenChange(//components/contextual_search/contextual_search_types.h:ContextUploadStatus) -->

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

<enum name="CrossDeviceTabProviderEligibility">
  <int value="0" label="Match created"/>
  <int value="1" label="No sync service"/>
  <int value="2" label="No open tabs delegate"/>
  <int value="3" label="No foreign sessions"/>
  <int value="4" label="No tabs"/>
  <int value="5" label="Tab too old"/>
  <int value="6" label="Invalid URL"/>
  <int value="7" label="Local session not recent"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/cross_device_tab_provider.h:CrossDeviceTabProviderEligibility) -->

<enum name="DocumentProviderAllowedReason">
  <int value="0" label="Allowed"/>
  <int value="1" label="Unknown"/>
  <int value="2" label="Not allowed because feature disabled"/>
  <int value="3" label="Not allowed because the suggest setting is disabled"/>
  <int value="4"
      label="Not allowed because the Drive setting is disabled (obsolete)"/>
  <int value="5" label="Not allowed because the profile is off the record"/>
  <int value="6" label="Not allowed because the user is not logged in"/>
  <int value="7"
      label="(Obsolete) Not allowed because the user is not Syncing"/>
  <int value="8" label="Not allowed because the server requested backoff"/>
  <int value="9" label="Not allowed because Google is not the DSE"/>
  <int value="10" label="Not allowed because the input is a focus or is empty"/>
  <int value="11" label="Not allowed because the input length is too short"/>
  <int value="12" label="Not allowed because the input looks like a URL"/>
  <int value="13"
      label="Not allowed because the user is not enterprise eligible"/>
</enum>

<enum name="DocumentSuggestRequestEvent">
  <int value="1" label="requests sent">Request was sent.</int>
  <int value="2" label="requests invalidated">
    Request was invalidated (cancelled because URLLoader was deleted before the
    callback was invoked).
  </int>
  <int value="3" label="responses received">
    Response was received asynchronously.
  </int>
</enum>

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

<enum name="EntryPreservationReason">
  <int value="1" label="MatchesDefaultSearchProvider"/>
  <int value="2" label="MatchesOtherDefaultSearchProvider"/>
  <int value="3" label="NotSafeForAutoreplace"/>
  <int value="4" label="NonPrepopulatedFromRegulatoryProgram"/>
</enum>

<!-- LINT.ThenChange(//components/search_engines/util.cc:EntryPreservationReason) -->

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

<enum name="FocusResultedInNavigationTypes">
  <int value="0" label="No navigation, no attachments"/>
  <int value="1" label="Navigation, no attachments"/>
  <int value="2" label="No navigation, with attachments"/>
  <int value="3" label="Navigation, with attachments"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxMetrics.java:FocusResultedInNavigationTypes,//components/omnibox/browser/searchbox_utils.h:FocusResultedInNavigationType) -->

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

<enum name="FuseboxAttachmentButtonType">
  <int value="0" label="Current Tab"/>
  <int value="1" label="Tab Picker"/>
  <int value="2" label="Camera"/>
  <int value="3" label="Gallery"/>
  <int value="4" label="Files"/>
  <int value="5" label="Clipboard"/>
  <int value="6" label="Suggested Tab"/>
  <int value="7" label="Recent Tab"/>
  <int value="8" label="Drive Files"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMetrics.java:FuseboxAttachmentButtonType,//ios/chrome/browser/composebox/shared/metrics/composebox_metrics_recorder.h:FuseboxAttachmentButtonType) -->

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

<enum name="FuseboxAttachmentSizeLimitCheck">
  <int value="0" label="Under limit on metered"/>
  <int value="1" label="Under limit on unmetered"/>
  <int value="2" label="Over limit on metered"/>
  <int value="3" label="Over limit on unmetered"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMetrics.java:FuseboxAttachmentSizeLimitCheck) -->

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

<enum name="GeolocationHeaderGetLocationOutcome">
  <int value="0" label="Success"/>
  <int value="1" label="No cached location"/>
  <int value="2" label="Permission state mismatch"/>
  <int value="3" label="Insecure connection"/>
  <int value="4" label="Ineligible URL"/>
  <int value="5" label="Header granularity mismatch"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/geolocation_header_service.h:GeolocationHeaderGetLocationOutcome) -->

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

<enum name="GeolocationHeaderPrimeLocationOutcome">
  <int value="0" label="Already bound"/>
  <int value="1" label="No default search provider"/>
  <int value="2"
      label="Default search provider does not accept location header"/>
  <int value="3" label="Invalid DSE URL or insecure connection"/>
  <int value="4" label="Permission status mismatch"/>
  <int value="5" label="Cached location is fresh"/>
  <int value="6" label="Failed to connect to device geolocation service"/>
  <int value="7" label="Triggered query for cached position only"/>
  <int value="8" label="Triggered query for next position update"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/geolocation_header_service.h:GeolocationHeaderPrimeLocationOutcome) -->

<enum name="GroupId">
  <summary>
    Suggestion group IDs toggled visible or hidden in the omnibox result list.
    Reflects the omnibox::GroupId enum values for the Polaris zero-prefix
    suggestions in //third_party/omnibox_proto/groups.proto.
  </summary>
  <int value="0" label="UNKNOWN (uncategorized)"/>
  <int value="1" label="INVALID (unexpected)"/>
  <int value="2" label="GROUP_PREVIOUS_SEARCH_RELATED"/>
  <int value="3" label="GROUP_PREVIOUS_SEARCH_RELATED_ENTITY_CHIPS"/>
  <int value="4" label="GROUP_TRENDS"/>
  <int value="5" label="GROUP_TRENDS_ENTITY_CHIPS"/>
  <int value="6" label="GROUP_RELATED_QUERIES"/>
  <int value="7" label="GROUP_VISITED_DOC_RELATED"/>
</enum>

<enum name="HistoryClusterKeywordType">
  <int value="0" label="Unknown"/>
  <int value="1" label="EntityCategory"/>
  <int value="2" label="EntityAlias"/>
  <int value="3" label="Entity"/>
  <int value="4" label="SearchTerms"/>
</enum>

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

<enum name="MigrationMatch">
  <int value="0" label="Exact Match"/>
  <int value="1" label="Host Match"/>
  <int value="2" label="IDs Don't Match"/>
  <int value="3" label="Invalid Checked URL"/>
  <int value="4" label="URL Mismatch"/>
</enum>

<!-- LINT.ThenChange(//components/search_engines/template_url_prepopulate_data_resolver.cc:MigrationMatch) -->

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

<enum name="OmniboxBuiltinEngineType">
  <int value="0" label="Non built-in engine"/>
  <int value="1" label="Prepopulated Engine"/>
  <int value="2" label="@bookmarks starter pack engine"/>
  <int value="3" label="@history starter pack engine"/>
  <int value="4" label="@tabs starter pack engine"/>
  <int value="5" label="@gemini starter pack engine"/>
  <int value="6" label="@page starter pack engine"/>
  <int value="7" label="@aimode starter pack engine"/>
</enum>

<!-- LINT.ThenChange(//components/search_engines/search_engine_type.h:BuiltinEngineType) -->

<enum name="OmniboxEnteredKeywordMode2">
  <int value="0" label="invalid"/>
  <int value="1" label="via tab"/>
  <int value="2" label="via space at end"/>
  <int value="3" label="via space in middle"/>
  <int value="4" label="keyboard shortcut"/>
  <int value="5" label="question mark"/>
  <int value="6" label="mouse click on hint view"/>
  <int value="7" label="tap gesture on hint view"/>
  <int value="8" label="select suggestion"/>
  <int value="9" label="toolbelt"/>
</enum>

<enum name="OmniboxEscapeAction">
  <int value="0"
      label="Deprecated: None; omnibox state unaffected - No longer logged
             since m105"/>
  <int value="1" label="Reverted temporary Text"/>
  <int value="2" label="Closed popup"/>
  <int value="3" label="Cleared user input"/>
  <int value="4" label="Closed popup and cleared user input"/>
  <int value="5" label="Blurred"/>
</enum>

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

<enum name="OmniboxInlineLocationSuggestionShown">
  <int value="0" label="No eligible suggestion found"/>
  <int value="1"
      label="Only parent suggestion shown (no inline location suggestion)"/>
  <int value="2" label="Inline location suggestion shown"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/geolocation_header_service.h:OmniboxInlineLocationSuggestionShown) -->

<enum name="OmniboxInputType">
  <int value="0" label="empty"/>
  <int value="1" label="unknown"/>
  <int value="2" label="deprecated: requested url"/>
  <int value="3" label="url"/>
  <int value="4" label="query"/>
  <int value="5" label="forced query"/>
</enum>

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

<enum name="OmniboxModelMode">
  <int value="0" label="Unspecified"/>
  <int value="1" label="GeminiRegular"/>
  <int value="2" label="GeminiPro"/>
  <int value="3" label="GeminiProAutoroute"/>
  <int value="4" label="GeminiProNoGenUi"/>
  <int value="5" label="GeminiFlashLatest"/>
  <int value="6" label="GeminiProLatest"/>
  <int value="7" label="GeminiPreview"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/common/omnibox_metrics_utils.cc:ModelMode,//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMetrics.java:ModelMode) -->

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

<enum name="OmniboxPopupResultToContentReadyEarlyExitReason">
  <int value="0" label="Unspecified"/>
  <int value="1" label="No result ready time"/>
  <int value="2" label="Visual state not ready"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/common/omnibox_metrics_utils.h:OmniboxPopupResultToContentReadyEarlyExitReason) -->

<enum name="OmniboxRichAutocompletionType">
  <int value="0" label="None"/>
  <int value="1" label="URL non-prefix"/>
  <int value="2" label="Title prefix"/>
  <int value="3" label="Title non-prefix"/>
  <int value="4" label="Shortcut text prefix"/>
</enum>

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

<enum name="OmniboxToolMode">
  <int value="0" label="Unspecified"/>
  <int value="1" label="DeepSearch"/>
  <int value="2" label="Canvas"/>
  <int value="3" label="GeminiPro"/>
  <int value="4" label="ImageGen"/>
  <int value="5" label="DeepBrowse"/>
  <int value="6" label="ImageGenSelfie"/>
  <int value="7" label="ImageGenUpload"/>
  <int value="8" label="DisableSuggest"/>
  <int value="9" label="Aim"/>
  <int value="10" label="AimGenPrompt"/>
  <int value="11" label="AgentTask"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/common/omnibox_metrics_utils.cc:ToolMode,//chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMetrics.java:ToolMode) -->

<enum name="OmniboxWebUIRendererProcessGoneStatus">
  <int value="0" label="Normal termination"/>
  <int value="1" label="Abnormal termination"/>
  <int value="2" label="Process was killed"/>
  <int value="3" label="Process crashed"/>
  <int value="4" label="Still running"/>
  <int value="5" label="Process was killed by OOM"/>
  <int value="6" label="OOM protected"/>
  <int value="7" label="Launch failed"/>
  <int value="8" label="OOM"/>
  <int value="9" label="Integrity failure"/>
  <int value="10" label="Evicted for memory"/>
</enum>

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

<enum name="OpenMatchWithKeyboardModifiers">
  <int value="0" label="No modifier"/>
  <int value="1" label="Ctrl"/>
  <int value="2" label="Alt"/>
  <int value="3" label="Ctrl+Alt"/>
  <int value="4" label="Shift+Command"/>
  <int value="5" label="Ctrl+Shift+Command"/>
  <int value="6" label="Alt+Shift"/>
  <int value="7" label="Ctrl+Alt+Shift"/>
  <int value="8" label="Command"/>
  <int value="9" label="Ctrl+Command"/>
  <int value="10" label="Shift"/>
  <int value="11" label="Ctrl+Shift"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/omnibox/omnibox_view.cc:OpenMatchWithKeyboardModifiers) -->

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

<enum name="PaywallSignal">
  <summary>
    Indicates the paywall signal for a given page, if available.
  </summary>
  <int value="0" label="Unknown"/>
  <int value="1" label="Signal present"/>
  <int value="2" label="Signal not present"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/lens_suggest_inputs_utils.h:PaywallSignal) -->

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

<enum name="PrepopulatedEngineMigrationAction">
  <int value="0" label="Migrated Default Provider"/>
  <int value="1" label="Migrated Non-Default Engine"/>
</enum>

<!-- LINT.ThenChange(//components/search_engines/util.cc:PrepopulatedEngineMigrationAction) -->

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

<enum name="ReconciliationType">
  <int value="0" label="No Reconciliation"/>
  <int value="1" label="By prepopulate_id">Deprecated umbrella bucket</int>
  <int value="2" label="By keyword"/>
  <int value="3" label="By domain based keyword">
    Deprecated umbrella bucket
  </int>
  <int value="4" label="By keyword (seznam migration)"/>
  <int value="5" label="By keyword (yahoo migration)"/>
  <int value="6" label="By prepopulate_id (global)"/>
  <int value="7" label="By prepopulate_id (regional)"/>
  <int value="8" label="By prepopulate_id (no match)">
    Recorded when we attempt reconciliation by prepopulate_id but none of the
    global nor regional buckets returned a match. The data provided will be set
    without mixing in any prepopulated engine's data
  </int>
  <int value="9" label="By prepopulate_id (migration)"/>
</enum>

<!-- LINT.ThenChange(//components/search_engines/reconciling_template_url_data_holder.h:ReconciliationType) -->

<enum name="RegulatoryExtensionVariant">
  <int value="0" label="Default extension"/>
  <int value="1" label="Android EEA"/>
</enum>

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

<enum name="RemoteRequestType">
  <int value="0" label="search suggestion"/>
  <int value="1" label="search suggestion warm-up"/>
  <int value="2" label="search suggestion for images"/>
  <int value="3" label="zero-prefix suggestion"/>
  <int value="4" label="zero-prefix suggestion prefetching"/>
  <int value="5" label="document suggestion"/>
  <int value="6" label="suggestion deletion"/>
  <int value="7" label="enterprise search aggregator suggestion"/>
</enum>

<!-- LINT.ThenChange(//components/omnibox/browser/remote_suggestions_service.h:RemoteRequestType) -->

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

<enum name="SearchPrefetchCacheAliasFallbackReason">
  <int value="0" label="kNoFallback"/>
  <int value="1" label="kNoResponseHeaders"/>
  <int value="2" label="kNon2xxResponse"/>
  <int value="3" label="kRedirectResponse"/>
  <int value="4" label="kErrorOnComplete"/>
  <int value="5" label="kMojoDisconnect"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/preloading/prefetch/search_prefetch/cache_alias_search_prefetch_url_loader.h:FallbackReason) -->

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

<enum name="SearchPrefetchEligibilityReason">
  <int value="0" label="Prefetch started"/>
  <int value="1" label="User disabled prefetch/preconnect"/>
  <int value="2" label="User disabled Javascript"/>
  <int value="3" label="Search engine not set"/>
  <int value="4" label="Navigation URL was not a default search URL"/>
  <int value="5" label="Recent network error"/>
  <int value="6" label="Duplicate prefetch request"/>
  <int value="7" label="Too many recent prefetches"/>
  <int value="8" label="Throttle prevented the prefetch"/>
  <int value="9" label="SlowNetwork suppressed the prefetch"/>
  <int value="10" label="Data saver enabled"/>
  <int value="11" label="Battery saver enabled"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.h:SearchPrefetchEligibilityReason) -->

<enum name="SearchPrefetchResponseDataReaderStatus">
  <int value="0" label="kCreated"/>
  <int value="1" label="kServingError"/>
  <int value="2" label="kNetworkError"/>
  <int value="3" label="kCompleted"/>
  <int value="4" label="kCanceledByLoader"/>
</enum>

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

<enum name="SearchPrefetchServingReason">
  <int value="0" label="Served a prefetch response"/>
  <int value="1" label="Search engine not set"/>
  <int value="2" label="User disabled Javascript"/>
  <int value="3" label="Navigation URL was not a default search URL"/>
  <int value="4" label="No prefetch issued for the search terms"/>
  <int value="5" label="Prefetch was for a different origin"/>
  <int value="6" label="Prefetch request was cancelled (Obsolete)"/>
  <int value="7" label="Prefetch request failed"/>
  <int value="8" label="Another reason (unexpected)"/>
  <int value="9" label="POST, reload, form, link, or other non-cache loads."/>
  <int value="10"
      label="A prerender navigation request has taken this response away
             (Obsolete)."/>
  <int value="11" label="Prefetch was not ready as it was in-flight."/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.h:SearchPrefetchServingReason) -->

<enum name="SearchPrefetchStatus">
  <int value="0" label="Not started"/>
  <int value="1" label="In flight (Obsolete)"/>
  <int value="2" label="Headers received (for streaming responses)"/>
  <int value="3"
      label="Headers received and user navigated to search terms (for
             streaming responses) (Obsolete)"/>
  <int value="4" label="Completed the prefetch"/>
  <int value="5" label="Request failed"/>
  <int value="6" label="Request cancelled (Obsolete)"/>
  <int value="7" label="Prefetch request served for real navigation"/>
  <int value="8" label="Was served to prerender navigation stack (Obsolete)"/>
  <int value="9"
      label="Serving to prerender navigation stack and user navigated to
             search terms (Obsolete)"/>
  <int value="10" label="Upgraded to prerender and succeeded (Obsolete)"/>
</enum>

<enum name="SearchPreloadForwardingResult">
  <int value="0" label="kNotServed (should not be recorded)"/>
  <int value="1" label="kStartedServing"/>
  <int value="2" label="kFailed"/>
  <int value="3" label="kCompleted"/>
</enum>

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

<enum name="SearchPreloadSignalResult">
  <int value="0" label="kNotTriggeredMisc">kNotTriggeredMisc</int>
  <int value="1" label="kPrefetchTriggered">kPrefetchTriggered</int>
  <int value="2" label="kPrerenderTriggered">kPrerenderTriggered</int>
  <int value="3" label="kNotTriggeredAlreadyTriggered">
    kNotTriggeredAlreadyTriggered
  </int>
  <int value="4" label="kNotTriggeredPrefetchNotAlive">
    kNotTriggeredPrefetchNotAlive
  </int>
  <int value="5" label="kNotTriggeredLimitExceeded">
    kNotTriggeredLimitExceeded
  </int>
  <int value="6" label="kNotTriggeredIncognito">kNotTriggeredIncognito</int>
  <int value="7" label="kNotTriggeredOnPressNotSearchType">
    kNotTriggeredOnPressNotSearchType
  </int>
  <int value="8" label="kNotTriggeredOnPressNoSearchProviderOptIn">
    kNotTriggeredOnPressNoSearchProviderOptIn
  </int>
  <int value="9" label="kNotTriggeredThrottledByPrewarm">
    kNotTriggeredThrottledByPrewarm
  </int>
  <int value="10" label="kNotTriggeredUnsupportedSearchMode">
    kNotTriggeredUnsupportedSearchMode
  </int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/preloading/search_preload/search_preload_signal_result.h) -->

<enum name="SearchSuggestRequestEvent">
  <int value="1" label="requests sent">Request was sent.</int>
  <int value="2" label="requests invalidated">
    Request was invalidated (cancelled because URLLoader was deleted before the
    callback was invoked).
  </int>
  <int value="3" label="responses received">
    Response was received asynchronously.
  </int>
</enum>

<enum name="SuggestionAnswerOptionalType">
  <summary>
    Type of Answer in omnibox suggestion list or No Answer, if not an answer.
  </summary>
  <int value="0" label="No Answer"/>
  <int value="1" label="Dictionary"/>
  <int value="2" label="Finance"/>
  <int value="3" label="Knowledge graph"/>
  <int value="4" label="Local"/>
  <int value="5" label="Sports"/>
  <int value="6" label="Sunrise"/>
  <int value="7" label="Translation"/>
  <int value="8" label="Weather"/>
  <int value="9" label="When is"/>
  <int value="10" label="Currency"/>
  <int value="11" label="Local time"/>
  <int value="12" label="Play install"/>
</enum>

<enum name="SuggestionAnswerType">
  <summary>Type of Answer shown in omnibox suggestion list.</summary>
  <int value="0" label="Invalid (unknown type)"/>
  <int value="1" label="Dictionary"/>
  <int value="2" label="Finance"/>
  <int value="3" label="Knowledge graph"/>
  <int value="4" label="Local"/>
  <int value="5" label="Sports"/>
  <int value="6" label="Sunrise"/>
  <int value="7" label="Translation"/>
  <int value="8" label="Weather"/>
  <int value="9" label="When is"/>
  <int value="10" label="Currency"/>
  <int value="11" label="Local time"/>
  <int value="12" label="Play install"/>
</enum>

<enum name="SuggestionPedalType">
  <summary>
    Type of pedal shown or selected in the omnibox suggestion list.
  </summary>
  <int value="0" label="None"/>
  <int value="1" label="Clear browsing data"/>
  <int value="2" label="Manage passwords"/>
  <int value="3" label="Update credit card"/>
  <int value="4" label="Launch incognito"/>
  <int value="5" label="Translate"/>
  <int value="6" label="Update Chrome"/>
  <int value="7" label="Run Chrome safety check"/>
  <int value="8" label="Manage security settings"/>
  <int value="9" label="Manage cookies"/>
  <int value="10" label="Manage addresses"/>
  <int value="11" label="Manage sync"/>
  <int value="12" label="Manage site settings"/>
  <int value="13" label="Create Google doc"/>
  <int value="14" label="Create Google sheet"/>
  <int value="15" label="Create Google slide"/>
  <int value="16" label="Create Google calendar event"/>
  <int value="17" label="Create Google site"/>
  <int value="18" label="Create Google keep note"/>
  <int value="19" label="Create Google form"/>
  <int value="20" label="Compose email in Gmail"/>
  <int value="21" label="See Chrome tips"/>
  <int value="22" label="Manage Google account"/>
  <int value="23" label="Clear YouTube history"/>
  <int value="24" label="Change Google password"/>
  <int value="25" label="Incognito-mode clear browsing data"/>
  <int value="26" label="Close Incognito windows"/>
  <int value="27" label="Play Chrome Dino game"/>
  <int value="28" label="Find my phone"/>
  <int value="29" label="Manage Google privacy"/>
  <int value="30" label="Manage Google ad settings"/>
  <int value="31" label="Manage Chrome settings"/>
  <int value="32" label="Manage Chrome downloads"/>
  <int value="33" label="View Chrome history"/>
  <int value="34" label="Share this page"/>
  <int value="35" label="Manage Chrome accessibility"/>
  <int value="36" label="Customize Chrome fonts"/>
  <int value="37" label="Manage Chrome themes"/>
  <int value="38" label="Customize search engines"/>
  <int value="39" label="Manage ChromeOS accessibility"/>
  <int value="40" label="Set Chrome as default browser"/>
</enum>

<!-- TODO(b/501544449): Remove NewTabPageVoiceAction and NewTabPageVoiceError in tools/metrics/histograms/metadata/new_tab_page/enums.xml. -->

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

<enum name="VoiceSearchAction">
  <int value="0" label="Activated by clicking on the icon"/>
  <int value="1" label="Activated by keyboard shortcut"/>
  <int value="2"
      label="(Obsolete) Closed overlay by a user's explicit action.
             Deprecated as of 04/2026."/>
  <int value="3" label="Submitted voice query"/>
  <int value="4" label="Clicked on support link in error message"/>
  <int value="5" label="Retried by clicking Try Again link"/>
  <int value="6"
      label="(Obsolete) Retried by clicking microphone button. Deprecated as
             of 09/2022."/>
  <int value="7" label="Stop voice search button clicked"/>
  <int value="8" label="Resume voice search button clicked"/>
  <int value="9" label="Voice Search Error That Does Not Cancel Voice Search"/>
  <int value="10" label="Voice Search Error That Cancels Voice Search"/>
  <int value="11" label="Voice Search Is Canceled By User"/>
</enum>

<!-- LINT.ThenChange(//ui/webui/resources/cr_components/composebox/composebox_voice_search.ts:VoiceSearchAction) -->

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

<enum name="VoiceSearchError">
  <int value="0" label="&quot;aborted&quot; error"/>
  <int value="1" label="&quot;audio-capture&quot; error"/>
  <int value="2" label="&quot;bad-grammar&quot; error"/>
  <int value="3" label="&quot;language-not-supported&quot; error"/>
  <int value="4" label="&quot;network&quot; error"/>
  <int value="5" label="&quot;no-match&quot; error"/>
  <int value="6" label="&quot;no-speech&quot; error"/>
  <int value="7" label="&quot;not-allowed&quot; error"/>
  <int value="8" label="&quot;other&quot; error"/>
  <int value="9" label="&quot;service-not-allowed&quot; error"/>
</enum>

<!-- LINT.ThenChange(//ui/webui/resources/cr_components/composebox/composebox_voice_search.ts:VoiceSearchError) -->

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

<enum name="VoiceSearchQuerySource">
  <int value="0" label="NTP Realbox Classic Voice Input"/>
  <int value="1" label="NTP Composebox Voice Input"/>
  <int value="2" label="Omnibox Composebox Voice Input"/>
  <int value="3" label="Nextbox Composebox Voice Input"/>
</enum>

<!-- LINT.ThenChange(//ui/webui/resources/cr_components/composebox/composebox_voice_search.ts:VoiceSearchQuerySource) -->

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

<enum name="VoiceSearchState">
  <int value="0" label="Voice Search Button Clicked And Voice Search Started"/>
  <int value="1" label="Voice Search Transcription Success"/>
  <int value="2" label="Voice Search Error That Does Not Cancel Voice Search"/>
  <int value="3" label="Voice Search Error That Cancels Voice Search"/>
  <int value="4" label="Voice Search Is Canceled By User"/>
</enum>

<!-- LINT.ThenChange(//ui/webui/resources/cr_components/search/constants.ts:VoiceSearchState) -->

<enum name="ZeroSuggestEligibility">
  <int value="0" label="Eligible for current context and external conditions">
    Zero-prefix suggestions are eligible.
  </int>
  <int value="1" label="Remote request without page URL ineligible">
    Suggest request without sending the current page URL cannot be made. E.g.,
    the user is in incognito mode or Google is not set as the default search
    provider.
  </int>
  <int value="2" label="Remote request with sending page URL ineligible">
    Suggest request with sending the current page URL cannot be made. E.g., the
    user has not consented and the page is not the SRP associated with the
    default search provider.
  </int>
  <int value="3" label="Generally ineligible in current context">
    Zero-prefix suggestions are not eligible in the given context. E.g., due to
    the page classification, focus type, input type, or an invalid page URL.
  </int>
</enum>

<enum name="ZeroSuggestRequestEvent">
  <int value="0" label="cached response converted to results">
    Cached response was synchronously converted to displayed matches.
  </int>
  <int value="1" label="request sent">Request was sent.</int>
  <int value="2" label="request invalidated">
    Request was invalidated (cancelled because URLLoader was deleted before the
    callback was invoked).
  </int>
  <int value="3" label="response received">
    Response was received asynchronously.
  </int>
  <int value="4" label="response cached">Response was cached.</int>
  <int value="5" label="response converted to results">
    Response was converted to displayed matches. This can happen if the
    displayed result set is empty and the response result set is non-empty; or
    vice versa.
  </int>
</enum>

</enums>

</histogram-configuration>
