<!--
Copyright 2026 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<histogram-configuration>

<enums>

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

<enum name="ActorOneTimeTokenFillingServiceFillOtpEvent">
  <int value="0" label="Start"/>
  <int value="1" label="NullTab"/>
  <int value="2" label="EmptyTriggerFieldIds"/>
  <int value="3" label="ConcurrentCall"/>
  <int value="4" label="NoAutofillManager"/>
  <int value="5" label="FormStructureNotFound"/>
  <int value="6" label="TriggerFieldNotFound"/>
  <int value="7" label="EmptyFillData"/>
  <int value="8" label="Success"/>
  <int value="9" label="Error"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/autofill/actor/one_time_tokens/actor_one_time_token_filling_service_metrics.h:ActorOneTimeTokenFillingServiceFillOtp) -->

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

<enum name="ActorOneTimeTokenFillingServiceRetrieveOtpEvent">
  <int value="0" label="Start"/>
  <int value="1" label="NullTab"/>
  <int value="2" label="NoService"/>
  <int value="3" label="SuccessCacheMatchFound"/>
  <int value="4" label="(Obsolete) Success"/>
  <int value="5" label="Error"/>
  <int value="6" label="MockOtp"/>
  <int value="7" label="(Obsolete) NoCallback"/>
  <int value="8" label="SuccessReceivedMatchFound"/>
  <int value="9" label="RetrievalTimeout"/>
  <int value="10" label="GmailOtpBackendAuthError"/>
  <int value="11" label="GmailOtpBackendNetworkError"/>
  <int value="12" label="GmailOtpBackendInvalidResponse"/>
  <int value="13" label="GmailOtpUnknown"/>
  <int value="14" label="GmailOtpBackendApiNotAvailable"/>
  <int value="15" label="GmailOtpBackendInitializationFailed"/>
  <int value="16" label="GmailOtpBackendSmartFeaturesInGmailConsentRequired"/>
  <int value="17"
      label="GmailOtpBackendSmartFeaturesInOtherGoogleProductsConsentRequired"/>
  <int value="18" label="GmailOtpBackendDmaCrossProductSharingConsentRequired"/>
  <int value="19" label="GmailOtpBackendBadMessageReference"/>
  <int value="20" label="GmailOtpBackendMessageIdNotFound"/>
  <int value="21" label="GmailOtpBackendWrongTokenTypeRequested"/>
  <int value="22" label="GmailOtpBackendOneTimeTokenExpired"/>
  <int value="23" label="GmailOtpBackendOtpAttributeNotFound"/>
  <int value="24" label="GmailOtpBackendServerError"/>
  <int value="25" label="UnknownError"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/autofill/actor/one_time_tokens/actor_one_time_token_filling_service_metrics.h:ActorOneTimeTokenFillingServiceRetrieveOtp) -->

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

<enum name="ActorOtpRetrieveOtpCallbackSupersededEvent">
  <int value="0" label="RetrieveOtpStarted"/>
  <int value="1" label="CallbackSuperseded"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/autofill/actor/one_time_tokens/actor_one_time_token_filling_service_metrics.h:ActorOtpRetrieveOtpCallbackSuperseded) -->

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

<enum name="AttemptOtpFillingEvent">
  <int value="0" label="StartFillingAttempt"/>
  <int value="1" label="WithinOptInCoolOffPeriod"/>
  <int value="2" label="OptInNullResponse"/>
  <int value="3" label="OptInErrorResponse"/>
  <int value="4" label="OptInPermissionDenied"/>
  <int value="5" label="TabWentAwayBeforeInvocation"/>
  <int value="6" label="NoLastTabObservation"/>
  <int value="7" label="TriggerFieldNotFound"/>
  <int value="8" label="FormFillingStatusInsecureContext"/>
  <int value="9" label="FormFillingStatusFormNotFound"/>
  <int value="10" label="FormFillingStatusTabNotAvailable"/>
  <int value="11" label="NoTargetFrameWithOtpFound"/>
  <int value="12" label="(Obsolete) NoActorLogin - Removed in 2026/07"/>
  <int value="13" label="OtpRetrievalError"/>
  <int value="14" label="FormFillingNotSecureBeforeFilling"/>
  <int value="15" label="FillingOtpSuccess"/>
  <int value="16" label="FillingOtpError"/>
  <int value="17" label="GmailOtpConfirmationResponseNotValid"/>
  <int value="18" label="GmailOtpConfirmationDeclinedByUser"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/tools/attempt_otp_filling_metrics.h:AttemptOtpFillingEvent) -->

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

<enum name="AttemptOtpFillingPredictedOtpType">
  <int value="0" label="Unknown"/>
  <int value="1" label="SMS"/>
  <int value="2" label="Email"/>
  <int value="3" label="Authenticator App"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/tools/attempt_otp_filling_tool_request.h:AttemptOtpFillingPredictedOtpType) -->

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

<enum name="GmailOtpConfirmationDialogInteraction">
  <int value="0" label="ShowDialog"/>
  <int value="1" label="ErrorResponse"/>
  <int value="2" label="PermissionDenied"/>
  <int value="3" label="PermissionGranted"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/tools/attempt_otp_filling_metrics.h:GmailOtpConfirmationDialogInteraction) -->

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

<enum name="GmailOtpOptInCardInteraction">
  <int value="0" label="ShowCard"/>
  <int value="1" label="ErrorResponse"/>
  <int value="2" label="PermissionDenied"/>
  <int value="3" label="PermissionGranted"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/tools/attempt_otp_filling_metrics.h:GmailOtpOptInCardInteraction) -->

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

<enum name="GmailOtpSenderDomainMatchRejectionReason">
  <int value="0" label="Unknown"/>
  <int value="1" label="NoMatch"/>
  <int value="2" label="Grouped"/>
  <int value="3" label="PslMatchDisallowed"/>
  <int value="4" label="GroupedAndPslMatchDisallowed"/>
</enum>

<!-- LINT.ThenChange(//components/one_time_tokens/core/browser/gmail_otp_retriever.h:GmailOtpSenderDomainMatchRejectionReason) -->

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

<enum name="VerifyIsActorLoginFlowEvent">
  <int value="0" label="Start"/>
  <int value="1" label="NoActorLoginContext"/>
  <int value="2" label="FrameNotInLoginContext"/>
  <int value="3" label="AllFramesHaveTooManyNavigations"/>
  <int value="4" label="NoMatch"/>
  <int value="5" label="PslMatchAllowed"/>
  <int value="6" label="PslMatchDisallowed"/>
  <int value="7" label="GroupedOrOtherMismatch"/>
  <int value="8" label="ExactMatchAllowed"/>
  <int value="9" label="AffiliatedMatchAllowed"/>
  <int value="10" label="MainFrameOriginMismatch"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/actor/tools/attempt_otp_filling_metrics.h:VerifyIsActorLoginFlowEvent) -->

</enums>

</histogram-configuration>
