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

<enums>

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

<enum name="ActionResultCode">
  <int value="0" label="Ok"/>
  <int value="10" label="(Obsolete) Error. Removed in Dec 2025."/>
  <int value="11" label="UrlBlocked"/>
  <int value="12" label="NewTabCreationFailed"/>
  <int value="13" label="TabWentAway"/>
  <int value="14" label="TaskWentAway"/>
  <int value="15" label="CrossOriginNavigation"/>
  <int value="16" label="ToolUnknown"/>
  <int value="17" label="FrameWentAway"/>
  <int value="18" label="InvalidDomNodeId"/>
  <int value="19" label="ElementDisabled"/>
  <int value="20" label="ElementOffscreen"/>
  <int value="21" label="CoordinatesOutOfBounds"/>
  <int value="22" label="ArgumentsInvalid"/>
  <int value="23" label="TaskPaused"/>
  <int value="24" label="ExecutorDestroyed"/>
  <int value="25" label="WindowWentAway"/>
  <int value="26" label="FrameLocationChangedSinceObservation"/>
  <int value="27" label="TriggeredNavigationBlocked"/>
  <int value="28" label="EmptyActionSequence"/>
  <int value="29" label="ExecutorBusy"/>
  <int value="30" label="ObservedTargetElementDestroyed"/>
  <int value="31" label="ObservedTargetElementChanged"/>
  <int value="32" label="TargetNodeInteractionPointObscured"/>
  <int value="33" label="ToolTimeout"/>
  <int value="34" label="kFilePickerTriggered"/>
  <int value="35" label="kFilePickerConfirmed"/>
  <int value="36" label="kFilePickerCancelled"/>
  <int value="37" label="ExecutionEngineExistingAction"/>
  <int value="38" label="ExternalProtocolNavigationBlocked"/>
  <int value="39" label="RendererCrashed"/>
  <int value="40" label="NotImplemented"/>
  <int value="41" label="InvokeCanceled"/>
  <int value="42" label="kInvalidTaskStateForAct"/>
  <int value="43" label="ActionsCancelled"/>
  <int value="44" label="ActionsBlockedForSiteRisk"/>
  <int value="45" label="ActionsBlockedSafeBrowsingDisabled"/>
  <int value="46" label="ActionsBlockedByEnterprisePolicy"/>
  <int value="47" label="ActionsBlockedForScheme"/>
  <int value="48" label="ActionsBlockedOnErrorPage"/>
  <int value="49" label="UnrecoverableError"/>
  <int value="50" label="UserNavigatedAway"/>
  <int value="51" label="ActionBlockedByEnterpriseContentScan"/>
  <int value="100" label="NavigateInvalidUrl"/>
  <int value="101" label="NavigateFailedToStart"/>
  <int value="102" label="NavigateCommittedErrorPage"/>
  <int value="200" label="ClickSuppressed"/>
  <int value="201" label="ClickMissingTarget"/>
  <int value="202" label="ClickMissingType"/>
  <int value="203" label="ClickInvalidCount"/>
  <int value="300" label="DragAndReleaseFromOffscreen"/>
  <int value="301" label="DragAndReleaseToOffscreen"/>
  <int value="302" label="DragAndReleaseFromMoveSuppressed"/>
  <int value="303" label="DragAndReleaseDownSuppressed"/>
  <int value="304" label="DragAndReleaseToMoveSuppressed"/>
  <int value="305" label="DragAndReleaseUpSuppressed"/>
  <int value="400" label="MouseMoveEventSuppressed"/>
  <int value="500" label="ScrollNoScrollingElement"/>
  <int value="501" label="ScrollTargetNotUserScrollable"/>
  <int value="502" label="ScrollOffsetDidNotChange"/>
  <int value="503" label="ScrollMissingDirection"/>
  <int value="504" label="ScrollMissingDistance"/>
  <int value="600" label="SelectInvalidElement"/>
  <int value="601" label="SelectNoSuchOption"/>
  <int value="602" label="SelectOptionDisabled"/>
  <int value="603" label="SelectUnexpectedValue"/>
  <int value="700" label="TypeTargetNotElement"/>
  <int value="701" label="TypeTargetNotFocusable"/>
  <int value="702" label="TypeUnsupportedCharacters"/>
  <int value="703" label="TypeFailedMappingCharToKey"/>
  <int value="704" label="TypeKeyDownSuppressed"/>
  <int value="705" label="TypeInvalidTextEncoding"/>
  <int value="800" label="HistoryNoNavigationsCreated"/>
  <int value="801" label="HistoryCancelledBeforeStart"/>
  <int value="802" label="HistoryNoBackEntries"/>
  <int value="803" label="HistoryNoForwardEntries"/>
  <int value="804" label="HistoryFailedBeforeCommit"/>
  <int value="805" label="HistoryErrorPage"/>
  <int value="806" label="HistoryNavigationEntryChanged"/>
  <int value="900" label="LoginNoCredentialsAvailable"/>
  <int value="901" label="LoginNotLoginPage"/>
  <int value="902" label="LoginCredentialsEnteredButAnotherActionNeeded"/>
  <int value="903" label="LoginNoFillableFields"/>
  <int value="904" label="LoginFillingNotAllowed"/>
  <int value="905" label="LoginPageChangedDuringSelection"/>
  <int value="906" label="LoginDeviceReauthRequired"/>
  <int value="907" label="LoginDeviceReauthFailed"/>
  <int value="908" label="LoginFeatureDisabled"/>
  <int value="909" label="LoginTooManyRequests"/>
  <int value="910" label="LoginFederatedContinuation"/>
  <int value="911" label="LoginFederatedAccountNotLoggedIn"/>
  <int value="912" label="LoginFederatedAccountIsSignUp"/>
  <int value="913" label="LoginFederatedAccountNotAvailable"/>
  <int value="914" label="LoginFederatedIdpReturnedError"/>
  <int value="915" label="LoginFederatedIdpNetworkError"/>
  <int value="916" label="LoginFederatedTokenRequestAborted"/>
  <int value="917" label="LoginFederatedFrameNotActive"/>
  <int value="918" label="LoginFederatedExpectedAccountNotPresent"/>
  <int value="919" label="LoginFederatedTimeout"/>
  <int value="920" label="LoginPasswordFillingPageChanged"/>
  <int value="1000" label="MediaControlNoMedia"/>
  <int value="1100" label="FormFillingAutofillUnavailable"/>
  <int value="1101" label="FormFillingNoSuggestionsAvailable"/>
  <int value="1102" label="FormFillingDialogError"/>
  <int value="1103" label="FormFillingFieldNotFound"/>
  <int value="1104" label="FormFillingUnknownAutofillError"/>
  <int value="1105" label="FormFillingNoLastTabObservation"/>
  <int value="1106" label="FormFillingInvalidSuggestionId"/>
  <int value="1200" label="ScriptToolNoResponse"/>
  <int value="1201" label="ScriptToolInvalidName"/>
  <int value="1202" label="ScriptToolInvalidInputArguments"/>
  <int value="1203" label="ScriptToolInvocationFailed"/>
  <int value="1204" label="ScriptToolCrossOriginNavigation"/>
  <int value="1205" label="ScriptToolMissingRequiredSubmitButton"/>
  <int value="1206" label="ScriptToolCancelled"/>
  <int value="1207" label="ScriptToolNavigationDidNotCommit"/>
  <int value="1208" label="ScriptToolNavigationCommittedErrorPage"/>
  <int value="1209" label="ScriptToolNavigationFailedLoad"/>
  <int value="1300" label="ActorUiError"/>
  <int value="1400" label="OtpRetrievalTimeout"/>
  <int value="1401" label="OtpRetrievalError"/>
  <int value="1402" label="OtpFillFailure"/>
  <int value="1403" label="OtpRetrievalMismatch"/>
  <int value="1404" label="OtpGmailConsentRequired"/>
  <int value="1405" label="OtpGoogleConsentRequired"/>
  <int value="1406" label="OtpDmaConsentRequired"/>
  <int value="1407" label="OtpNoCodeFound"/>
  <int value="1408" label="OtpExpired"/>
  <int value="1409" label="OtpServiceUnavailable"/>
  <int value="1410" label="OtpSigninContextMismatch"/>
  <int value="1411" label="OtpInsecureContext"/>
  <int value="1412" label="OtpUnableToFill"/>
  <int value="1413" label="OtpUserDeclinedOptingIntoFilling"/>
  <int value="1414" label="OtpTargetFrameNotFound"/>
  <int value="1415" label="OtpNoLastTabObservation"/>
  <int value="1416" label="OtpFieldNotFound"/>
  <int value="1500" label="TranslateServiceUnavailable"/>
  <int value="1501" label="TranslateUnsupportedLanguage"/>
  <int value="1600" label="BookmarkModelNotLoaded"/>
</enum>

<!-- LINT.ThenChange(//components/actor/public/mojom/actor_types.mojom:ActionResultCode) -->

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

<enum name="ActorEngineState">
  <int value="0" label="Init"/>
  <int value="1" label="StartAction"/>
  <int value="2" label="ToolCreateAndVerify"/>
  <int value="3" label="UiPreInvoke"/>
  <int value="4" label="ToolInvoke"/>
  <int value="5" label="UiPostInvoke"/>
  <int value="6" label="Complete"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/execution_engine.h:State) -->

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

<enum name="ActorForegroundServiceLifecycle">
  <int value="0" label="Started"/>
  <int value="1" label="Updated"/>
  <int value="2" label="Stopped"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceUmaHelper.java:ForegroundLifecycle) -->

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

<enum name="ActorForegroundServiceStopReason">
  <int value="0" label="Stopped"/>
  <int value="1" label="Destroyed"/>
  <int value="2" label="TaskRemoved"/>
  <int value="3" label="LowMemory"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceUmaHelper.java:StopReason) -->

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

<enum name="ActorLoginAccountTypes">
  <int value="0" label="None"/>
  <int value="1" label="Password"/>
  <int value="2" label="Federated"/>
  <int value="3" label="Password and Federated"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/actor_login/internal/actor_login_metrics.h:ActorLoginAccountTypes) -->

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

<enum name="ActorLoginFederatedLoginResult">
  <int value="0" label="Success"/>
  <int value="2" label="AccountNotLoggedIn"/>
  <int value="3" label="AccountIsSignUp"/>
  <int value="4" label="AccountNotAvailable"/>
  <int value="5" label="IdpReturnedError"/>
  <int value="6" label="IdpNetworkError"/>
  <int value="7" label="TokenRequestAborted"/>
  <int value="8" label="FrameNotActive"/>
  <int value="9" label="ExpectedAccountNotPresent"/>
  <int value="10" label="Timeout"/>
  <int value="11" label="TimeoutByEmbedder"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/actor_login/internal/actor_login_metrics.h:ActorLoginFederatedLoginResult) -->

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

<enum name="ActorLoginSelectedAccountType">
  <int value="0" label="None"/>
  <int value="1" label="Password"/>
  <int value="2" label="Federated"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/actor_login/internal/actor_login_metrics.h:ActorLoginSelectedAccountType) -->

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

<enum name="ActorObservationOutcome">
  <int value="0" label="Succeeded"/>
  <int value="1" label="Succeeded after retry"/>
  <int value="2" label="Failed"/>
  <int value="3" label="FailedAfterRetry"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.cc:ActorObservationOutcome) -->

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

<enum name="ActorPipExitReason">
  <int value="0" label="Close"/>
  <int value="1" label="Expand"/>
  <int value="2" label="Completed"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.cc:ActorPipExitReason) -->

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

<enum name="ActorPipStatus">
  <int value="0" label="Entered"/>
  <int value="1" label="Exited"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.cc:ActorPipStatus) -->

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

<enum name="ActorPipUserInteraction">
  <int value="0" label="Pause"/>
  <int value="1" label="Resume"/>
  <int value="2" label="Expand"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.cc:ActorPipUserInteraction) -->

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

<enum name="ActorServerConfirmationResult">
  <int value="0" label="NotRequired"/>
  <int value="1" label="Accepted"/>
  <int value="2" label="Rejected"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/execution_engine.h:ActorServerConfirmationResult) -->

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

<enum name="ActorTabObservationResult">
  <int value="0" label="Success"/>
  <int value="1" label="Tab went away"/>
  <int value="2" label="Page crashed"/>
  <int value="3" label="Unknown error"/>
  <int value="4" label="Web contents changed"/>
  <int value="5" label="Page context not eligible"/>
  <int value="6" label="APC timeout"/>
  <int value="7" label="APC error"/>
  <int value="8" label="Screenshot timeout"/>
  <int value="9" label="Screenshot error"/>
  <int value="10" label="Both APC and Screenshot not OK"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.cc:ActorTabObservationResult) -->

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

<enum name="ActorTaskCreateFailedReason">
  <int value="0" label="None">Browser can actuate.</int>
  <int value="1" label="DisabledByPolicy">
    The enterprise policy disables the actuation feature.
  </int>
  <int value="2" label="AccountCapabilityIneligible">
    The account is not eligible for the actuation.
  </int>
  <int value="3" label="AccountMissingChromeBenefits">
    The account is not subscribed to one of the required AI subscription tiers.
  </int>
  <int value="4" label="EnterpriseWithoutManagement">
    An enterprise account is logged in but there is no management to deliver the
    policy.
  </int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/glic/actor/glic_actor_policy_checker.h:CannotActReason) -->

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

<enum name="ActorTaskState">
  <int value="0" label="Created"/>
  <int value="1" label="Acting"/>
  <int value="2" label="Reflecting"/>
  <int value="3" label="PausedByActor"/>
  <int value="4" label="PausedByUser"/>
  <int value="5" label="Cancelled"/>
  <int value="6" label="Finished"/>
  <int value="7" label="WaitingOnUser"/>
  <int value="8" label="Failed"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_task.h:State, histograms.xml:ActorTaskState) -->

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

<enum name="ActorUiTabControllerError">
  <int value="0" label="kRequestedForNonExistentTab"/>
  <int value="1" label="kCallbackError"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/actor_ui_metrics_types.h:ActorUiTabControllerError) -->

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

<enum name="ActorUiTaskIconError">
  <int value="0" label="kBubbleTaskDoesntExist"/>
  <int value="1" label="kNudgeTaskDoesntExist"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/actor_ui_metrics_types.h:ActorUiTaskIconError) -->

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

<enum name="ComputedTargetResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kMissingActorTabData"/>
  <int value="2" label="kMissingAnnotatedPageContent"/>
  <int value="3" label="kTargetNotResolvedInApc"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/actor_ui_metrics_types.h:ComputedTargetResult) -->

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

<enum name="GatingDecision">
  <int value="0" label="kAllowSameOrigin"/>
  <int value="1" label="kAllowByStaticList"/>
  <int value="2" label="kBlockByStaticList"/>
  <int value="3" label="kNeedsAsyncCheck"/>
  <int value="4" label="kAllowByContainerConfig"/>
  <int value="5" label="kBlockByContainerConfig"/>
  <int value="6" label="kBlockByDangerousMimeType"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/execution_engine.h:GatingDecision) -->

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

<enum name="GetDomNodeResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kNoApcMainFrameData"/>
  <int value="2" label="kNodeNotFoundInApc"/>
  <int value="3" label="kNoGeometry"/>
  <int value="4" label="kOffScreen"/>
  <int value="5" label="kEmptyBoundingBox"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/dom_node_geometry_types.h:GetDomNodeResult) -->

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

<enum name="ModelPageTargetType">
  <int value="0" label="kDomNode"/>
  <int value="1" label="kPoint"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/actor_ui_metrics_types.h:ModelPageTargetType) -->

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

<enum name="PageStabilityOutcome">
  <int value="0" label="kUnknown"/>
  <int value="1" label="kNetworkAndMainThread"/>
  <int value="2" label="kNetworkAndMainThreadDelayed"/>
  <int value="3" label="kPaint"/>
  <int value="4" label="kPaintDelayed"/>
  <int value="5" label="kTimeout"/>
  <int value="6" label="kRenderFrameGoingAway"/>
  <int value="7" label="kMojoDisconnected"/>
</enum>

<!-- LINT.ThenChange(//components/actor/core/page_stability_metrics_common.h:PageStabilityOutcome) -->

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

<enum name="RendererResolvedTargetResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kMissingActorTabData"/>
  <int value="2" label="kRendererResolvedTargetHasNoValue"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/actor_ui_metrics_types.h:RendererResolvedTargetResult) -->

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

<enum name="SafetyListParseResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kInvalidJson"/>
  <int value="2" label="kJsonKeyValueNotAList"/>
  <int value="3" label="kJsonListValueNotADictionary"/>
  <int value="4" label="kInvalidToField"/>
  <int value="5" label="kInvalidToUrlPattern"/>
  <int value="6" label="kInvalidFromField"/>
  <int value="7" label="kInvalidFromUrlPattern"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/safety_list_manager.h:SafetyListParseResult) -->

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

<enum name="SplitModeTimeOfUseFrameStatus">
  <int value="0" label="kMatch"/>
  <int value="1" label="kInitializedFrameDestroyed"/>
  <int value="2" label="kFrameMismatch"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_metrics.h:SplitModeTimeOfUseFrameStatus) -->

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

<enum name="StoppedReasonEnum">
  <int value="0" label="Stopped By User"/>
  <int value="1" label="Task complete"/>
  <int value="2" label="Model error"/>
  <int value="3" label="Chrome Failure"/>
  <int value="4" label="Tab Detached"/>
  <int value="5" label="Shutdown"/>
  <int value="6" label="Started new chat"/>
  <int value="7" label="Loaded previous chat"/>
  <int value="8" label="User navigated away"/>
  <int value="9" label="Timeout"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/actor_task.h:StoppedReason) -->

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

<enum name="TaskNudgeState">
  <int value="0" label="kDefault"/>
  <int value="1" label="kNeedsAttention"/>
  <int value="2" label="(Obsolete) kMultipleTasksNeedAttention"/>
  <int value="3" label="kCompleteTasks"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/ui/states/actor_task_nudge_state.h:ActorTaskNudgeState) -->

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

<enum name="TimeOfUseResult">
  <int value="0" label="Valid"/>
  <int value="1" label="Wrong node at coordinate"/>
  <int value="2" label="Target node at intersection point obscured"/>
  <int value="3" label="Target node missing"/>
  <int value="4" label="Target point outside APC bounding box"/>
  <int value="5" label="Target node is missing APC geometry"/>
  <int value="6" label="No valid APC node for target"/>
</enum>

<!-- LINT.ThenChange(//chrome/renderer/actor/tool_base.cc:TimeOfUseResult) -->

</enums>

</histogram-configuration>
