<!--
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="AccountCapabilitiesFetchResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failed to get an access token"/>
  <int value="2" label="Failed to parse the response"/>
  <int value="3" label="OAuth error"/>
  <int value="4" label="Network error"/>
  <int value="5" label="Request was cancelled"/>
</enum>

<enum name="AccountCapabilitiesGetFromSystemLibraryResult">
  <int value="0" label="Success"/>
  <int value="1" label="Error (Generic)"/>
  <int value="10" label="Error (Api Request Failed)"/>
  <int value="11" label="Error (Api Error)"/>
  <int value="12" label="Error (Api Not Permitted)"/>
  <int value="13" label="Error (Api Unknown Capability)"/>
  <int value="14" label="Error (Api Failed To Sync)"/>
  <int value="15" label="Error (Api Not Available)"/>
  <int value="20" label="Error (Missing Capability)"/>
  <int value="21" label="Error (Unexpected Value)"/>
</enum>

<enum name="AccountConsistencyPromoAction">
  <int value="0" label="SuppressedNoAccounts">
    Promo is not shown as there are no accounts on device.
  </int>
  <int value="1" label="DismissedBack">
    User has dismissed the promo by tapping back button.
  </int>
  <int value="2" label="AddAccountStarted">
    User has tapped |Add account to device| from expanded account list.
  </int>
  <int value="3" label="StartedIncognitoSession (deprecated)">
    Deprecated 05/2021. User tapped the button from the expanded account list to
    open the incognito interstitial then confirmed opening the page in the
    incognito tab by tapping |Continue| in the incognito interstitial.
  </int>
  <int value="4" label="SignedInWithDefaultAccount">
    User has selected the default account and signed in with it.
  </int>
  <int value="5" label="SignedInWithNonDefaultAccount">
    User has selected one of the non default account and signed in with it.
  </int>
  <int value="6" label="Shown">The promo was shown to user.</int>
  <int value="7" label="SuppressedSigninNotAllowed">
    Promo is not shown due to sign-in being disallowed either by an enterprise
    policy or by |Allow Chrome sign-in| toggle.
  </int>
  <int value="8" label="SignedInWithAddedAccount">
    User has added an account and signed in with this account.
  </int>
  <int value="9" label="DismissedScrim">
    User has dismissed the promo by tapping on the scrim above the bottom sheet.
  </int>
  <int value="10" label="DismissedSwipeDown">
    User has dismissed the promo by swiping down the bottom sheet.
  </int>
  <int value="11" label="DismissedOther">
    User has dismissed the promo by other means.
  </int>
  <int value="12" label="AuthErrorShown">
    The auth error screen was shown to the user.
  </int>
  <int value="13" label="GenericErrorShown">
    The generic error screen was shown to the user.
  </int>
  <int value="14" label="DismissedButton">
    User has dismissed the promo by tapping on the dismissal button in the
    bottom sheet.
  </int>
  <int value="15" label="AddAccountCompleted">
    User has completed the account addition flow triggered from the bottom
    sheet.
  </int>
  <int value="16" label="SuppressedConsecutiveDismissals">
    The bottom sheet was suppressed as the user hit consecutive active dismissal
    limit.
  </int>
  <int value="17" label="SigninTimeoutErrorShown">
    The sign-in time out error was shown to the user.
  </int>
  <int value="18" label="SuppressedAlreadySignedIn">
    The web sign-in is not shown because the user is already signed in.
  </int>
  <int value="19" label="IOSAuthFlowCancelledOrFailed">
    The sign-in is cancelled or failed on iOS.
  </int>
  <int value="20" label="ShownWithNoDeviceAccount">
    The promo was shown to a user without an existing on-device account.
  </int>
  <int value="21" label="AddAccountStartedWithNoDeviceAccount">
    User has tapped |Sign In…| from the no-default-account promo, starting an
    add-account flow.
  </int>
  <int value="22" label="AddAccountCompletedWithNoDeviceAccount">
    User has added an account from a state without any on-device account.
  </int>
  <int value="23" label="SignedInWithNoDeviceAccount">
    User has signed in to Chrome, from a state without any on-device account.
  </int>
  <int value="24" label="ConfirmManagementShown">
    User was shown the confirm management screen on signin.
  </int>
  <int value="25" label="ConfirmManagementAccepted">
    User accepted management on signin.
  </int>
  <int value="26" label="SigninStartedWithManagedAccount">
    User started sign-in with a managed account in the consistency promo.
  </int>
  <int value="27" label="SigninStartedWithNonManagedAccount">
    User started sign-in with a non-managed account in the consistency promo.
  </int>
</enum>

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

<enum name="AccountExtensionsSignoutChoice">
  <int value="0" label="Signout Cancelled"/>
  <int value="1" label="Signout - Account Extensions Kept"/>
  <int value="2" label="Signout - Account Extensions Uninstalled"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/signin/chrome_signout_confirmation_prompt.h:AccountExtensionsSignoutChoice) -->

<enum name="AccountInPrefState">
  <int value="0" label="Account is fully known"/>
  <int value="1" label="Account is unkown"/>
  <int value="2" label="Account is not full: gaia or email missing"/>
  <int value="3" label="Account is not full: account id missing"/>
</enum>

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

<enum name="AccountManagedStatusFinderOutcome">
  <int value="0" label="Pending"/>
  <int value="1" label="Error"/>
  <int value="2" label="Consumer, gmail.com"/>
  <int value="3" label="Consumer, other well-known domain"/>
  <int value="4" label="Consumer, non-well-known domain"/>
  <int value="5" label="Enterprise, google.com"/>
  <int value="6" label="Enterprise, other domain"/>
  <int value="7" label="Timeout"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/identity_manager/account_managed_status_finder_outcome.h:AccountManagedStatusFinderOutcome) -->

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

<enum name="AccountManagementTypesSummary">
  <int value="0" label="No accounts"/>
  <int value="1" label="No consumer accounts, 1 enterprise account"/>
  <int value="2" label="No consumer accounts, 2 or more enterprise accounts"/>
  <int value="3" label="1 consumer account, no enterprise accounts"/>
  <int value="4" label="1 consumer account, 1 enterprise account"/>
  <int value="5" label="1 consumer account, 2 or more enterprise accounts"/>
  <int value="6" label="2 or more consumer accounts, no enterprise accounts"/>
  <int value="7" label="2 or more consumer accounts, 1 enterprise account"/>
  <int value="8"
      label="2 or more consumer accounts, 2 or more enterprise accounts"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/account_management_type_metrics_recorder.h:AccountManagementTypesSummary) -->

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

<enum name="AccountMoveDecision">
  <int value="0" label="Can move with refresh token"/>
  <int value="1" label="Cannot move, account already exists"/>
  <int value="2" label="Cannot move, insert without refresh token"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.h:AccountMoveDecision) -->

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

<enum name="AccountPreviewDataFetchState">
  <int value="0" label="Requested"/>
  <int value="1" label="EntityPreviewHasResult"/>
  <int value="2" label="EntityPreviewEmptyResult"/>
  <int value="3" label="StatisticsHasResult"/>
  <int value="4" label="StatisticsEmptyResult"/>
  <int value="5" label="CompletedWithResults"/>
  <int value="6" label="CompletedWithoutResults"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/account_preview_data_fetcher.h:AccountPreviewDataFetchState) -->

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

<enum name="AccountPreviewFetchTriggerCause">
  <int value="0" label="PeriodicRefresh"/>
  <int value="1" label="RefreshTokenUpdated"/>
  <int value="2" label="RefreshTokenRemoved"/>
  <int value="3" label="RefreshTokenInvalidated"/>
  <int value="4" label="ExternalAppAccountUpdated"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/account_preview_data_service_impl.h:FetchTriggerCause) -->

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

<enum name="AccountProfileStartupState">
  <int value="0" label="Managed account in personal profile"/>
  <int value="1" label="Managed account in managed profile"/>
  <int value="2" label="Personal account in managed profile"/>
  <int value="3" label="Personal account in personal profile"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/signin/model/account_profile_mapper.mm:AccountProfileStartupState) -->

<enum name="AccountReauthenticationEvent">
  <int value="0" label="STARTED"/>
  <int value="1" label="SUCCESS"/>
  <int value="2" label="SUCCESS_RECENT_AUTHENTICATION"/>
  <int value="3" label="REJECTED"/>
  <int value="4" label="ERROR"/>
</enum>

<enum name="AccountRelation">
  <int value="0" label="Empty cookie jar"/>
  <int value="1" label="No signed in, single signed out match"/>
  <int value="2" label="No signed in, one of multiple signed out match"/>
  <int value="3" label="No signed in with signed out, no match"/>
  <int value="4" label="Single signed in match, no signed out"/>
  <int value="5" label="Signle signed in match with signed out"/>
  <int value="6" label="One of multiple signed in match, any signed out"/>
  <int value="7" label="With signed in, one of signed out match"/>
  <int value="8" label="With signed in, no match"/>
</enum>

<enum name="AccountStartupState">
  <int value="0" label="Account is known with a valid token"/>
  <int value="1" label="Account is known with an invalid token"/>
  <int value="2" label="Account is unknown with a valid token"/>
  <int value="3" label="Account is uknown with an invalid token"/>
</enum>

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

<enum name="AgeMismatchPromptMode">
  <int value="0" label="Standard"/>
  <int value="1" label="Signin Flow"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/age_mismatch_signout/ui/age_mismatch_prompt_mode.h:AgeMismatchPromptMode) -->

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

<enum name="AgeMismatchSignoutAction">
  <int value="0" label="Use another account"/>
  <int value="1" label="Use without an account"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/age_mismatch_signout/coordinator/age_mismatch_signout_constants.h:AgeMismatchSignoutAction) -->

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

<enum name="AgeMismatchStaySignedOutButtonState">
  <int value="0" label="Shown"/>
  <int value="1" label="Hidden"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/age_mismatch_signout/coordinator/age_mismatch_signout_constants.h:AgeMismatchStaySignedOutButtonState) -->

<enum name="BooleanBoundToTheSameKey">
  <int value="0" label="Bound to different keys"/>
  <int value="1" label="Bound to the same key"/>
</enum>

<enum name="BooleanGetAccountsSucceeded">
  <int value="0" label="Account fetching failed"/>
  <int value="1" label="Account fetching succeeded"/>
</enum>

<enum name="BooleanIsNewOptIn">
  <int value="0" label="Existing opt-in"/>
  <int value="1" label="New opt-in"/>
</enum>

<enum name="BooleanSignoutFromManagedAccount">
  <int value="0" label="Cancel sign-out"/>
  <int value="1" label="Continue with sign-out"/>
</enum>

<enum name="BooleanWasDeferred">
  <int value="0" label="Was not deferred"/>
  <int value="1" label="Was deferred"/>
</enum>

<enum name="BoundSessionCredentialsCookieRotationGenerateAssertionResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failed to load the key"/>
  <int value="2" label="Failed to create an unsigned assertion token"/>
  <int value="3" label="Failed to sign an assertion token"/>
  <int value="4"
      label="(Obsolete) Assertion token signature verification failed"/>
  <int value="5" label="Failed to attach the signature to an assertion token"/>
</enum>

<enum name="BoundSessionCredentialsCookieRotationResult">
  <int value="0" label="Success"/>
  <int value="1" label="Connection error"/>
  <int value="2" label="Server transient error"/>
  <int value="3" label="Server persistent error"/>
  <int value="4" label="Server unexpected response, expected cookies not set"/>
  <int value="5" label="Challenge unexpected format"/>
  <int value="6" label="Challenge requests limit exceeded"/>
  <int value="7" label="Sign challenge failed"/>
  <int value="8" label="Challenge session ID mismatch"/>
</enum>

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

<enum name="BoundSessionCredentialsRegistrationTokenResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failed to load a reused key"/>
  <int value="2" label="Failed to generate a new key"/>
  <int value="3" label="Failed to create an unsigned assertion token"/>
  <int value="4" label="Failed to sign an assertion token"/>
  <int value="5" label="Failed to attach the signature to an assertion token"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/binding_key_registration_token_helper.h:Error) -->

<enum name="BoundSessionCredentialsSessionRegistrationResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failed to generate a registration token"/>
  <int value="2" label="Network error"/>
  <int value="3" label="Server response contained an error"/>
  <int value="4" label="Failed to parse the server response"/>
  <int value="5" label="Required field missing"/>
  <int value="6" label="Invalid session parameters"/>
  <int value="7" label="Required credential field missing"/>
  <int value="8" label="Unexpected parser error"/>
</enum>

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

<enum name="BoundSessionParamsReadError">
  <int value="0" label="kNone"/>
  <int value="1" label="kNoSessionsDict"/>
  <int value="2" label="kSessionsDictEmpty"/>
  <int value="3" label="kNoEncodedParams"/>
  <int value="4" label="kBase64DecodeFailed"/>
  <int value="5" label="kProtoParseFailed"/>
  <int value="6" label="kSiteDoesNotMatch"/>
  <int value="7" label="kInvalidParams"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/bound_session_credentials/bound_session_params_storage.cc:BoundSessionParamsReadError) -->

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

<enum name="BoundSessionParamsWriteError">
  <int value="0" label="kNone"/>
  <int value="1" label="kParamsInvalid"/>
  <int value="2" label="kProtoSerializeFailed"/>
  <int value="3" label="kProtoSerializeFailedAfterCleanUp"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/bound_session_credentials/bound_session_params_storage.cc:BoundSessionParamsWriteError) -->

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

<enum name="CanSignInToChromeCapabilityResult">
  <int value="0" label="False"/>
  <int value="1" label="True"/>
  <int value="2" label="Timeout"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/ui_bundled/authentication_flow/age_mismatch_capabilities_fetcher.h:CanSignInToChromeCapabilityResult) -->

<enum name="CctAccountMismatchType">
  <int value="0" label="Signed out of both Chrome and 1P app"/>
  <int value="1" label="Signed in to Chrome and 1P app with same account"/>
  <int value="2" label="Signed out of 1P app but signed in to Chrome"/>
  <int value="3" label="Signed out of Chrome but signed in to 1P app"/>
  <int value="4"
      label="Signed in to 1P app and Chrome with different accounts"/>
</enum>

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

<enum name="ChromeBrowserType">
  <int value="0" label="Regular"/>
  <int value="1" label="Incognito"/>
  <int value="2" label="Inactive"/>
  <int value="3" label="Temporary"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/shared/model/browser/browser.h:ChromeBrowserType) -->

<enum name="ChromeSigninSettingModification">
  <int value="0" label="No modifications"/>
  <int value="1" label="Modified to always ask"/>
  <int value="2" label="Modified to always sign in"/>
  <int value="3" label="Modified to never sign in"/>
</enum>

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

<enum name="ChromeSigninUserChoice">
  <int value="0" label="No choice selected"/>
  <int value="1" label="Always ask"/>
  <int value="2" label="Automatically Sign in"/>
  <int value="3" label="Do not automatically Sign in"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/signin_prefs.h:ChromeSigninUserChoice) -->

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

<enum name="ChromeSignoutConfirmationChoice">
  <int value="0" label="Cancel Signout"/>
  <int value="1" label="Signout"/>
  <int value="2" label="Cancel Signout and Reauth"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/signin/chrome_signout_confirmation_prompt.h:ChromeSignoutConfirmationChoice) -->

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

<enum name="CookieBindingUpgradeStatus">
  <int value="0" label="FeatureNotSupported"/>
  <int value="1" label="FeatureDisabled"/>
  <int value="2" label="NoWrappedKey"/>
  <int value="3" label="HasStandardSession"/>
  <int value="4" label="HasPrototypeSession"/>
  <int value="5" label="NotFirstRun"/>
  <int value="6" label="NeedsUpgrade"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/account_reconcilor.h:CookieBindingUpgradeStatus) -->

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

<enum name="DeviceBoundSessionCreateSessionsResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failure"/>
  <int value="2"
      label="No bound sessions, fallback to legacy set cookies flow"/>
  <int value="3" label="No binding key, fallback to legacy set cookies flow"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/oauth_multilogin_helper.h:DeviceBoundSessionCreateSessionsResult) -->

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

<enum name="DiceLinkedAccountsMetaHeaderStatus">
  <int value="0" label="HeaderMissing"/>
  <int value="1" label="Valid"/>
  <int value="2" label="MissingInitiatorId"/>
  <int value="3" label="MissingPrimaryIsConnected"/>
  <int value="4" label="MissingBothParams"/>
  <int value="5" label="InitiatorMismatch"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/dice_header_helper.h:DiceLinkedAccountsMetaHeaderStatus) -->

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

<enum name="DiceTokenBindingOutcome">
  <int value="0" label="Bound"/>
  <int value="1" label="Not bound for unknown reason (should be unreachable)"/>
  <int value="2"
      label="Not bound because the feature is disabled or not supported"/>
  <int value="3"
      label="Not bound because the account isn't eligible for token binding"/>
  <int value="4"
      label="Not bound because failed to generate binding key registration"/>
  <int value="5"
      label="Not bound because the server rejected binding key registration"/>
  <int value="6"
      label="Not bound because refresh tokens were not loaded, preventing
             selection of a binding key to reuse"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/dice_response_handler.h:TokenBindingOutcome) -->

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

<enum name="ExplicitSigninDatatypeMigrationState">
  <int value="0" label="SignedIn"/>
  <int value="1" label="SignedInWithExplicitBookmarks"/>
  <int value="2" label="SignedInWithExplicitExtensions"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/primary_account_manager.h:ExplicitSigninDatatypeMigrationState) -->

<enum name="FRESigninEvents">
  <int value="0" label="Checking managed status"/>
  <int value="1" label="Signing in - unmanaged"/>
  <int value="2" label="Signin complete - unmanaged"/>
  <int value="3" label="Accepting management"/>
  <int value="4" label="Signing in - managed"/>
  <int value="5" label="Signin complete - managed"/>
  <int value="6" label="Signin aborted - unmanaged"/>
  <int value="7" label="Signin aborted - managed"/>
</enum>

<enum name="GaiaCookieStateOnSignedInNavigation">
  <int value="0" label="Gaia cookie is present"/>
  <int value="1" label="Gaia cookie is missing from Google-associated domain"/>
  <int value="2" label="Gaia cookie is missing from Add Session"/>
  <int value="3" label="Gaia cookie is restored, Infobar shown"/>
</enum>

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

<enum name="GaiaIntegrationState">
  <int value="0" label="OnTokenExchangeSuccess">
    The user is signed-in the browser upon successful LST Token exchange (legacy
    Gaia integration). If the new Gaia integration applies, then this value is
    still recorded to mark the point where the user would be signed in to the
    browser on the legacy flow.
  </int>
  <int value="1" label="OnSyncHeaderReceived">
    The user is signed-in the browser upon receiving the Sync header (new Gaia
    integration). This recorded only then the new Gaia integration applies.
  </int>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/dice_response_handler.h:PrimaryAccountSettingGaiaIntegrationState) -->

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

<enum name="GaiaPage">
  <int value="0" label="Other"/>
  <int value="1" label="AccountChooser"/>
  <int value="2" label="SignOutOptions"/>
</enum>

<!-- LINT.ThenChange(//components/signin/ios/browser/account_consistency_service.mm:GaiaPage) -->

<enum name="GetAccountsAndroidResult">
  <int value="0" label="Success"/>
  <int value="1" label="UserRecoverableAuthError"/>
  <int value="2" label="GoogleAuthError"/>
  <int value="3" label="OtherError"/>
</enum>

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

<enum name="GetAuthTokenResult">
  <int value="0" label="Success"/>
  <int value="1" label="kInvalidClientId"/>
  <int value="2" label="kEmptyScopes"/>
  <int value="3" label="kOAuth2InvalidScopes (deprecated 02/2021)"/>
  <int value="4" label="kGaiaFlowAuthFailure (deprecated 02/2021)"/>
  <int value="5" label="kMintTokenAuthFailure"/>
  <int value="6" label="kGetAccessTokenAuthFailure"/>
  <int value="7" label="kOAuth2Failure (deprecated 02/2021)"/>
  <int value="8" label="kNoGrant"/>
  <int value="9" label="kInteractionRequired"/>
  <int value="10" label="kInteractionAlreadyRunning"/>
  <int value="11" label="kOAuth2AccessDenied (deprecated 02/2021)"/>
  <int value="12" label="kGaiaFlowRejected (deprecated 02/2021)"/>
  <int value="13" label="kRemoteConsentFlowRejected"/>
  <int value="14" label="kUserNotSignedIn"/>
  <int value="15" label="kNotAllowlistedInPublicSession"/>
  <int value="16" label="kSignInFailed"/>
  <int value="17" label="kRemoteConsentUserNotSignedIn"/>
  <int value="18" label="kUserNonPrimary"/>
  <int value="19" label="kRemoteConsentUserNonPrimary"/>
  <int value="20" label="kBrowserSigninNotAllowed"/>
  <int value="21" label="kInvalidRedirect (deprecated 02/2021)"/>
  <int value="22" label="kOffTheRecord"/>
  <int value="23" label="kPageLoadFailure (deprecated 02/2021)"/>
  <int value="24" label="kRemoteConsentPageLoadFailure"/>
  <int value="25" label="kSetAccountsInCookieFailure (deprecated 07/2023)"/>
  <int value="26" label="kInvalidConsentResult"/>
  <int value="27" label="kCanceled (deprecated 09/2024)"/>
  <int value="28" label="kInteractivityDenied"/>
  <int value="29" label="kCannotCreateWindow"/>
  <int value="30" label="kBrowserContextShutDown"/>
  <int value="31" label="kSetRemoteConsentResolutionCookiesFailed"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/extensions/api/identity/identity_get_auth_token_error.h:GetAuthTokenResult) -->

<enum name="IdentityConfirmationSnackbarDecision">
  <int value="0" label="Show"/>
  <int value="1" label="Don't show, no signed-in account"/>
  <int value="2" label="Don't show, only one signed-in account"/>
  <int value="3" label="Don't show, Start page isn't visible"/>
  <int value="4" label="Don't show, was shown recently"/>
  <int value="5" label="Don't show, impression limit reached"/>
  <int value="6" label="Don't show, feature flag is disabled"/>
</enum>

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

<enum name="IOSAccountMenuAccessPoint">
  <int value="0" label="New Tab Page"/>
  <int value="1" label="Settings"/>
  <int value="2" label="Web"/>
  <int value="3" label="App Bar"/>
  <int value="4" label="Page Action Menu"/>
  <int value="5" label="Gemini Entry Flow"/>
  <int value="6" label="Overflow Menu"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/account_menu/public/account_menu_constants.h:AccountMenuAccessPoint) -->

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

<enum name="IOSAccountSwitchType">
  <int value="0" label="Personal -&gt; Personal"/>
  <int value="1" label="Personal -&gt; Managed"/>
  <int value="2" label="Managed -&gt; Personal"/>
  <int value="3" label="Managed -&gt; Managed"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/ui_bundled/authentication_flow/authentication_flow.mm:IOSAccountSwitchType) -->

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

<enum name="IOSChangeProfileReason">
  <int value="0"
      label="User switched accounts (i.e. both old and new profile are signed
             in, though the new one may only be newly signed in via this
             action)"/>
  <int value="1"
      label="Managed account sign-in (i.e. signing in to a managed account
             while being signed-out in the personal profile)"/>
  <int value="2"
      label="Managed account sign-out (i.e. signing out from a managed
             account, which switches to the personal profile and signs out
             there if necessary)"/>
  <int value="3"
      label="Authentication error while signing in or switching, and
             therefore switching back"/>
  <int value="4"
      label="Profile deleted (usually because the associated managed account
             was removed, either from another Google app or remotely)"/>
  <int value="5"
      label="User tapped a push notification that's associated with a
             different profile"/>
  <int value="6"
      label="User tapped on a widget and the account used on the widget is
             different from the account used in the app"/>
  <int value="7"
      label="User selected an account, in the share extension, different from
             the one used in the app."/>
  <int value="8"
      label="User is opening GoogleOne settings for another account"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/app/change_profile_commands.h:IOSChangeProfileReason) -->

<enum name="IOSDeviceRestoreSignedinState">
  <int value="0" label="User not signed in before iOS device restore"/>
  <int value="1"
      label="User signed in before iOS device restore, and signed out after"/>
  <int value="2" label="User signed in before and after iOS device restore"/>
</enum>

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

<enum name="IOSHostedDomainFetchEvent">
  <int value="0" label="Started"/>
  <int value="1" label="Finished with success"/>
  <int value="2" label="Finished with error, will retry"/>
  <int value="3" label="Finished with error, giving up"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/signin/model/account_profile_mapper.mm:IOSHostedDomainFetchEvent) -->

<enum name="IOSIdentityAvailableInProfile">
  <int value="0"
      label="The identity is not available in AccountProfileMapper and
             IdentityManager"/>
  <int value="1"
      label="The identity is available in AccountProfileMapper but it is not
             available in IdentityManager"/>
  <int value="2"
      label="The identity is not available in AccountProfileMapper but it is
             available in IdentityManager"/>
  <int value="3"
      label="The identity is available in AccountProfileMapper and
             IdentityManager"/>
</enum>

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

<enum name="IOSProfileInitializationOutcome">
  <int value="0"
      label="Test-only code path, should never be recorded in production"/>
  <int value="1"
      label="Okay: Multi-profile feature disabled; profile was already
             initialized"/>
  <int value="2"
      label="Okay: Multi-profile feature disabled; profile newly initialized"/>
  <int value="3" label="Okay: Personal profile was already initialized"/>
  <int value="4" label="Okay: Personal profile newly initialized"/>
  <int value="5" label="Okay: Managed profile was already initialized"/>
  <int value="6" label="Okay: Managed profile newly initialized"/>
  <int value="7"
      label="Bad: Managed profile newly initialized, but was already signed
             in"/>
  <int value="8"
      label="Bad: Managed profile was already initialized, but newly signed
             in"/>
  <int value="9"
      label="Bad: Managed profile was already initialized, but had no
             assigned accounts"/>
  <int value="10"
      label="Bad: Managed profile newly initialized, but had no assigned
             accounts"/>
  <int value="11"
      label="Bad: Managed profile was already initialized, but had multiple
             assigned accounts, and was newly signed in"/>
  <int value="12"
      label="Bad: Managed profile newly initialized, but had multiple
             assigned accounts"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/signin/model/authentication_service.h:IOSProfileInitializationOutcome) -->

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

<enum name="IOSResizedAvatarCacheGetAvatarResult">
  <int value="0" label="Success"/>
  <int value="1" label="Missing (Fetch triggered)"/>
  <int value="2" label="Invalid dimensions (Fetch triggered)"/>
  <int value="3" label="Resize failed"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/signin/model/avatar/resized_avatar_cache.h:IOSResizedAvatarCacheGetAvatarResult) -->

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

<enum name="LaunchWebAuthFlowResult">
  <int value="0" label="Success"/>
  <int value="1" label="kOffTheRecord"/>
  <int value="2" label="kUserRejected"/>
  <int value="3" label="kInteractionRequired"/>
  <int value="4" label="kPageLoadFailure"/>
  <int value="5" label="kUnexpectedError"/>
  <int value="6" label="kPageLoadTimedOut"/>
  <int value="7" label="kCannotCreateWindow"/>
  <int value="8" label="kInvalidURLScheme"/>
  <int value="9" label="kBrowserContextShutDown"/>
  <int value="10" label="kWebAuthFlowInProgress"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.h:LaunchWebAuthFlowResult) -->

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

<enum name="MirrorHeaderEvent">
  <int value="0" label="Account not on device"/>
  <int value="1" label="Account in persistent error state"/>
  <int value="2" label="Account recently added"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/chrome_signin_helper.h:MirrorHeaderEvent) -->

<enum name="OAuth2LoginAccountRevokedMigrationState">
  <int value="0" label="Account ID migration not started"/>
  <int value="1" label="Account ID migration in progress"/>
  <int value="2" label="Account ID migration done"/>
</enum>

<enum name="OAuth2MintTokenApiCallResult">
  <int value="0" label="Mint token success"/>
  <int value="1" label="Issue advice success (deprecated 02/2021)"/>
  <int value="2" label="Remote consent success"/>
  <int value="3" label="Api call failure"/>
  <int value="4" label="Parse JSON failure"/>
  <int value="5" label="&quot;issueAdvice&quot; key not found"/>
  <int value="6" label="Parse mint token failure"/>
  <int value="7" label="Parse issue advice failure (deprecated 02/2021)"/>
  <int value="8" label="Remote consent fallback (deprecated 06/2020)"/>
  <int value="9" label="Parse remote consent failure"/>
  <int value="10"
      label="Mint token success with fallback scopes (deprecated 02/2021)"/>
  <int value="11" label="Token binding challenge success"/>
</enum>

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

<enum name="OAuth2UpgradeTokenFlowResult">
  <int value="0" label="kSuccess"/>
  <int value="1" label="kNetworkError"/>
  <int value="2" label="kServerError"/>
  <int value="3" label="kTokenGenerationFailure"/>
  <int value="4" label="kFailedToSaveBindingKey"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/oauth2_upgrade_token_flow.h:OAuth2UpgradeTokenFlowResult) -->

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

<enum name="OAuthConsumerId">
  <int value="0" label="Sync"/>
  <int value="1" label="Wallpaper Google Photos fetcher"/>
  <int value="2" label="Wallpaper fetcher delegate"/>
  <int value="3" label="Ip Protection Service (deprecated 03/2026)"/>
  <int value="4" label="Sanitized image source"/>
  <int value="5" label="Optimization Guide (get hints)"/>
  <int value="6" label="Optimization Guide (model execution)"/>
  <int value="7" label="Nearby Sharing"/>
  <int value="8" label="Projector token fetcher"/>
  <int value="9" label="Add Supervision"/>
  <int value="10" label="Parent Access"/>
  <int value="11" label="Data Sharing"/>
  <int value="12" label="Launcher item suggest (deprecated 06/2026)"/>
  <int value="13" label="Marketing backend connector"/>
  <int value="14" label="Password Sync token fetcher"/>
  <int value="15" label="Locale Switch Screen"/>
  <int value="16" label="Token Handle Service"/>
  <int value="17" label="Supervised User (list family members)"/>
  <int value="18" label="Supervised User (classify url)"/>
  <int value="19" label="Supervised User (create permission request)"/>
  <int value="20" label="Extension Downloader"/>
  <int value="21" label="Enclave Manager"/>
  <int value="22" label="Ntp Drive Service"/>
  <int value="23" label="Force Signin Verifier"/>
  <int value="24" label="Capture Mode Delegate"/>
  <int value="25" label="Fcm Invalidation"/>
  <int value="26" label="Nearby Share"/>
  <int value="27" label="Advanced Protection Status Manager"/>
  <int value="28" label="Push Notification"/>
  <int value="29" label="K-Anonymity Service"/>
  <int value="30" label="Feedback Uploader"/>
  <int value="31" label="Password Sharing Recipients Downloader"/>
  <int value="32" label="Web History Service"/>
  <int value="33" label="Composebox Query Controller"/>
  <int value="34" label="Document Suggestions Service"/>
  <int value="35" label="Enterprise Search Aggregator"/>
  <int value="36" label="Parent Permission Dialog"/>
  <int value="37" label="User Cloud Signin Restriction Policy Fetcher"/>
  <int value="38" label="Cloud Policy Client Registration"/>
  <int value="39" label="Safe Browsing"/>
  <int value="40" label="Tailored Security Service"/>
  <int value="41" label="Lens Overlay Query controller"/>
  <int value="42" label="Trusted Vault Frontend"/>
  <int value="43" label="Feed Network"/>
  <int value="44" label="Autofill Payments"/>
  <int value="45" label="Payments Access Token Fetcher"/>
  <int value="46" label="Save to Drive"/>
  <int value="47" label="Fast Pair"/>
  <int value="48" label="Edu Coexistence Login Handler"/>
  <int value="49" label="Edu Account Login Handler"/>
  <int value="50" label="Chromeos Family Link User Metrics provider"/>
  <int value="51" label="Enterprise Identity Service (deprecated 12/2025)"/>
  <int value="52" label="Promotion Eligibility Checker"/>
  <int value="53" label="Password Manager Leak Detection"/>
  <int value="54" label="Android Management Client"/>
  <int value="55" label="Arc Background Auth Code Fetcher"/>
  <int value="56" label="GCM Account Tracker"/>
  <int value="57" label="Policy Token Forwarder"/>
  <int value="58" label="Plugin Vm License Checker (deprecated 07/2026)"/>
  <int value="59" label="Drivefs Auth"/>
  <int value="60" label="Nearby Presence Server Client"/>
  <int value="61" label="Crypt Auth Client"/>
  <int value="62" label="Ambient Mode CrOS"/>
  <int value="63" label="Profile Downloader"/>
  <int value="64" label="Data Sharing Android"/>
  <int value="65" label="Extensions Identity API"/>
  <int value="66" label="Manta"/>
  <int value="67" label="Chrome Memex"/>
  <int value="68" label="Devtools Aida Client"/>
  <int value="69" label="Babel Orca"/>
  <int value="70" label="Boca School Tools Auth"/>
  <int value="71" label="Shared Data Preview"/>
  <int value="72" label="Access Code Cast Discovery"/>
  <int value="73" label="Auth Service (Drive Api)"/>
  <int value="74" label="Auth Service (Calendar)"/>
  <int value="75" label="Auth Service (Glanceables Classroom)"/>
  <int value="76" label="Auth Service (Tasks Client)"/>
  <int value="77" label="YouTube Music"/>
  <int value="78" label="Contextual Tasks"/>
  <int value="79" label="(Obsolete) Enterprise Plus Address"/>
  <int value="80" label="Glic User Status"/>
  <int value="81" label="Devtools Gdp"/>
  <int value="82" label="Ash Drive Integration"/>
  <int value="83" label="Ash Boca Classroom Page Handler"/>
  <int value="84" label="Ash Scanner Keyed Service"/>
  <int value="85" label="Autotest Private Api"/>
  <int value="86" label="Sync Device Statistics Metrics"/>
  <int value="87" label="Private AI Service"/>
  <int value="88" label="Wallet Passes Service"/>
  <int value="89" label="Aim Eligibility Service"/>
  <int value="90" label="DevTools AiCode Client"/>
  <int value="91" label="Accessibility Annotator (deprecated 08/2026)"/>
  <int value="92" label="Actor Login Permission Service"/>
  <int value="93" label="Gapis Service"/>
  <int value="94" label="One Time Token Service"/>
  <int value="95" label="Multistep Filter"/>
  <int value="96" label="Indigo"/>
  <int value="97" label="Glic Invoke API"/>
  <int value="98" label="Secure Gateway Service"/>
  <int value="99" label="Drive Picker Host"/>
  <int value="100" label="Skills Service"/>
  <int value="101" label="Context Memory Service"/>
  <int value="102" label="Sync Preview"/>
  <int value="103" label="Fpop Service"/>
  <int value="104" label="Notebooks Service"/>
  <int value="105" label="Remote Actor Login Credentials Service"/>
  <int value="106" label="Browser Actuator"/>
  <int value="107" label="Tab Context Containers Service"/>
  <int value="108" label="Site Token Provider"/>
  <int value="109" label="Device Authorization Request"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/oauth_consumer_id.h:OAuthConsumerId) -->

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

<enum name="OAuthMultiloginDeviceBoundSessionParsingError">
  <int value="0" label="No error, successfully parsed"/>
  <int value="1" label="Invalid domain"/>
  <int value="2" label="Register payload required field missing"/>
  <int value="3" label="Register payload required credential field missing"/>
  <int value="4" label="Register payload malformed refresh initiator"/>
  <int value="5"
      label="Register payload malformed session scope specification"/>
  <int value="6" label="Register payload required scope field missing"/>
  <int value="7" label="Register payload invalid scope type"/>
  <int value="8" label="Register payload invalid credential type"/>
</enum>

<!-- LINT.ThenChange(//google_apis/gaia/oauth_multilogin_result.h:OAuthMultiloginDeviceBoundSessionParsingError) -->

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

<enum name="OAuthMultiloginResponseStatus">
  <int value="0" label="kUnknownStatus"/>
  <int value="1" label="kOk"/>
  <int value="2" label="kRetry"/>
  <int value="3" label="kInvalidInput"/>
  <int value="4" label="kInvalidTokens"/>
  <int value="5" label="kError"/>
  <int value="6" label="kRetryWithTokenBindingChallenge"/>
  <int value="7" label="kNetworkError"/>
</enum>

<!-- LINT.ThenChange(//google_apis/gaia/oauth_multilogin_result.h:OAuthMultiloginResponseStatus) -->

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

<enum name="PAMInitializePrimaryAccountInfoState">
  <int value="0" label="OK: Account info available"/>
  <int value="1" label="Empty account info. Restore failed (no sync consent)."/>
  <int value="2"
      label="Empty account info. Restore failed (no last sync gaia ID)."/>
  <int value="3"
      label="Empty account info. Restore failed (no last sync email)"/>
  <int value="4"
      label="Empty account info. Restore failed (account id mismatch)"/>
  <int value="5"
      label="(Obsolete) Empty account info. Restore failed (feature disabled)"/>
  <int value="6" label="Empty account info. Restore success"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/primary_account_manager.h:InitializeAccountInfoState) -->

<enum name="PAMInitializePrimaryAccountPrefs">
  <int value="0" label="With primary account id, no sync consent"/>
  <int value="1" label="With primary account id, with sync consent"/>
  <int value="2" label="Empty primary account id, no sync consent"/>
  <int value="3" label="[Error] Empty primary accountid, with sync consent"/>
</enum>

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

<enum name="PendingResolutionSource">
  <int value="0" label="Sign in (reauth)"/>
  <int value="1" label="Sign out"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/signin_metrics_service.cc:PendingResolutionSource) -->

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

<enum name="ProfileMenuAvatarButtonPromoType">
  <int value="0" label="History Sync"/>
  <int value="1" label="Batch Upload - Regular"/>
  <int value="2" label="Batch Upload - Bookmarks deduplication"/>
  <int value="3" label="Batch Upload - Windows10 Depreciation"/>
  <int value="4" label="Sync Promo"/>
  <int value="5" label="Signin Promo"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/signin_promo_util.h:ProfileMenuAvatarButtonPromoType) -->

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

<enum name="ReauthAccessPoint">
  <int value="0" label="Account menu"/>
  <int value="1" label="Account settings"/>
  <int value="2" label="Recent tabs"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/signin_metrics.h:ReauthAccessPoint) -->

<enum name="ResumeBlockedRequestsTrigger">
  <int value="0" label="Cookie fresh notification"/>
  <int value="1"
      label="Cookie rotation success (request completed before cookie fresh
             notification)"/>
  <int value="2" label="Cookie rotation failure"/>
  <int value="3" label="(obsolete) Network connection offline"/>
  <int value="4" label="Timeout"/>
  <int value="5" label="Shutdown or session termination"/>
  <int value="6" label="Cookie is already fresh"/>
  <int value="7"
      label="Mojo connection with the throttle handler disconnected"/>
  <int value="8"
      label="Throttling requests paused due to successive server transient
             errors"/>
</enum>

<enum name="SessionTerminationTrigger">
  <int value="0" label="Cookie rotation persistent error"/>
  <int value="1" label="Cookies cleared"/>
  <int value="2" label="Session termination header"/>
  <int value="3" label="Session override"/>
  <int value="4" label="Rotation stopped timeout"/>
</enum>

<enum name="SigninAccessPoint">
  <int value="0" label="Start page (First Run Experience)"/>
  <int value="1" label="(obsolete) NTP Link"/>
  <int value="2" label="Three-dot menu"/>
  <int value="3" label="Top-level settings"/>
  <int value="4" label="(obsolete) Supervised user"/>
  <int value="5" label="Extension install bubble"/>
  <int value="6" label="Extensions (via chrome.identity API)"/>
  <int value="7" label="(obsolete) Apps page link"/>
  <int value="8" label="Bookmark save bubble"/>
  <int value="9" label="Bookmark manager"/>
  <int value="10" label="Profile menu (aka avatar bubble)"/>
  <int value="11" label="Profile picker"/>
  <int value="12" label="(obsolete) Devices page"/>
  <int value="13" label="(obsolete) Cloud print"/>
  <int value="14" label="(obsolete) Content area"/>
  <int value="15" label="Fullscreen Signin promo shown on start-up"/>
  <int value="16" label="Tabs from other devices"/>
  <int value="17" label="(obsolete) Unknown"/>
  <int value="18" label="Password save bubble"/>
  <int value="19" label="Autofill dropdown"/>
  <int value="20" label="(obsolete) NTP Content Suggestions"/>
  <int value="21" label="Re-signin infobar"/>
  <int value="22" label="(obsolete) Tab switcher"/>
  <int value="23" label="(obsolete) Force signin warning"/>
  <int value="24" label="(obsolete) Save card bubble"/>
  <int value="25" label="(obsolete) Manage cards bubble"/>
  <int value="26" label="Machine logon"/>
  <int value="27" label="(obsolete) Sync and Google services settings"/>
  <int value="28"
      label="(obsolete) Re-signin from sync error card in settings"/>
  <int value="29" label="Forced sign-in"/>
  <int value="30" label="(obsolete) Re-signin after an account rename"/>
  <int value="31"
      label="Bottom sheet from web sign-in (Mobile). Web sign-in, not used
             for Chrome sign-in (Desktop)"/>
  <int value="32" label="Safety check settings page"/>
  <int value="33" label="(obsolete) Kaleidoscope"/>
  <int value="34" label="(obsolete) Enterprise sign-out coordinator"/>
  <int value="35" label="Signin intercept first run experience"/>
  <int value="36" label="Send-tab-to-self promo"/>
  <int value="37" label="Sign-in promo on NTP feed top section"/>
  <int value="38" label="Sync off settings row"/>
  <int value="39" label="Post device restore sign-in promo"/>
  <int value="40" label="Post device restore background sign-in"/>
  <int value="41" label="NTP Signed-out icon"/>
  <int value="42" label="Sign-in promo on NTP feed card menu section"/>
  <int value="43" label="Sign-in promo on NTP feed bottom section"/>
  <int value="44"
      label="Automatic reset to match account cookies (Desktop only).">
    Used by the SigninManager when no other access point is specified.
  </int>
  <int value="45" label="'For You' First Run Experience (Desktop only)"/>
  <int value="46" label="Creator Feed Follow Button (Android only)"/>
  <int value="47" label="Reading list"/>
  <int value="48" label="Reauth info bar"/>
  <int value="49" label="Account consistency service"/>
  <int value="50" label="(obsolete) Search companion"/>
  <int value="51" label="Set Up List (Mobile only)"/>
  <int value="52" label="(obsolete) Password migration warning (Android only)"/>
  <int value="53" label="Save to photos (iOS only)"/>
  <int value="54" label="Chrome Sign-in intercept bubble."/>
  <int value="55" label="Restore primary account on profile load"/>
  <int value="56" label="(obsolete) Tab organization"/>
  <int value="57" label="Save to Drive (iOS only)"/>
  <int value="58" label="Tips Notification on (iOS only)"/>
  <int value="59" label="Notifications Opt-In Screen Content Toggle"/>
  <int value="60" label="Sign-in choice remembered"/>
  <int value="61" label="Signout confirmation prompt in profile menu"/>
  <int value="62" label="Signout confirmation prompt in settings"/>
  <int value="63" label="(obsolete) NTP Identity Disc"/>
  <int value="64" label="OIDC auth redirect URI interception"/>
  <int value="65" label="WebAuthn modal dialog"/>
  <int value="66" label="Profile menu (aka avatar bubble) with sync promo"/>
  <int value="67" label="Account menu: Switch account"/>
  <int value="68" label="Product Specifications"/>
  <int value="69" label="Account menu: Switch account failed"/>
  <int value="70" label="Address save bubble"/>
  <int value="71" label="CCT account mismatch notification"/>
  <int value="72" label="Drive file picker (iOS only)"/>
  <int value="73" label="Share collaboration tab group authentication"/>
  <int value="74" label="Glic launch button"/>
  <int value="75" label="History page (Android only)"/>
  <int value="76" label="Join collaboration tab group authentication"/>
  <int value="77" label="History Sync Opt-in Expanded Pill on startup"/>
  <int value="78" label="Widget (iOS only)"/>
  <int value="79" label="Leave or delete collaboration tab group"/>
  <int value="80"
      label="(obsolete) History Sync Opt-in Expanded Pill on inactivity"/>
  <int value="81" label="History sync educational tip module (Android only)"/>
  <int value="82"
      label="Managed profile was automatically signed in (iOS only)"/>
  <int value="83"
      label="Contextual non modal sign-in password promo (iOS only)"/>
  <int value="84"
      label="Contextual non modal sign-in bookmark promo (iOS only)"/>
  <int value="85" label="Profile picker with prefilled email"/>
  <int value="86" label="Enterprise management disclaimer at startup"/>
  <int value="87" label="Enterprise management disclaimer after browser focus"/>
  <int value="88" label="Enterprise management disclaimer after signin"/>
  <int value="89" label="New Tab Page sign-in feature promo"/>
  <int value="90" label="Enterprise dialog after signin interception"/>
  <int value="91" label="Your saved info page in settings"/>
  <int value="92" label="Credential Exchange import"/>
  <int value="93" label="Set sync consent from sync internals"/>
  <int value="94" label="Chrome WebView (iOS only)"/>
  <int value="95" label="Ash user session manager (ChromeOS only)"/>
  <int value="96" label="Ash Chrome session manager (ChromeOS only)"/>
  <int value="97" label="AvatarPill expanding on startup"/>
  <int value="98" label="Search AI Mode (Desktop only)"/>
  <int value="99" label="App Bar (iOS only)"/>
  <int value="100" label="Page Action Menu (iOS only)"/>
  <int value="101"
      label="Autofill and passwords settings page on iOS and Android"/>
  <int value="102" label="Sign-in deep link (e.g. from cross-device QR code)"/>
  <int value="103" label="Age mismatch signout (iOS only)"/>
  <int value="104" label="Gemini Toolbar button (iOS only)"/>
  <int value="105" label="Indigo"/>
  <int value="106" label="Overflow Menu (iOS only)"/>
  <int value="107" label="Level Up (iOS only)"/>
  <int value="108" label="Undo button from the signout snackbar (iOS only)"/>
  <int value="109" label="Composebox Drive context menu option (Desktop only)"/>
</enum>

<enum name="SigninAccountReconcilorState">
  <int value="0" label="OK">
    The account reconcilor has finished running and is up-to-date.
  </int>
  <int value="1" label="Running">
    The account reconcilor is running and gathering informations.
  </int>
  <int value="2" label="Error">
    The account reconcilor has encountered an error and stopped.
  </int>
  <int value="3" label="Scheduled">
    The account reconcilor is scheduled for running soon.
  </int>
  <int value="4" label="Inactive">
    The account reconcilor is inactive (uninitialized or disabled).
  </int>
</enum>

<enum name="SigninAccountType">
  <int value="0" label="Regular gmail account"/>
  <int value="1" label="Managed account"/>
</enum>

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

<enum name="SigninAddAccountToDeviceResult">
  <int value="0" label="Success"/>
  <int value="1" label="Error"/>
  <int value="2" label="Cancelled by user"/>
  <int value="3" label="Interrupted"/>
</enum>

<!-- LINT.ThenChange(//ios/chrome/browser/authentication/add_account_signin/add_account_signin_manager.h:SigninAddAccountToDeviceResult) -->

<enum name="SigninAndroidAddAccountState">
  <int value="0" label="Requested"/>
  <int value="1" label="Started"/>
  <int value="2" label="Succeeded"/>
  <int value="3" label="Failed"/>
  <int value="4" label="Cancelled"/>
  <int value="5" label="Returned null account name"/>
  <int value="6" label="Returned after sign-in activity destroyed"/>
  <int value="7" label="Returned and sign-in activity was not destroyed"/>
</enum>

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

<enum name="SigninCrossDeviceInitialState">
  <int value="0" label="SignedOut_TargetAccountOnDevice"/>
  <int value="1" label="SignedOut_TargetAccountNotOnDevice"/>
  <int value="2" label="SignedIn_WithDifferentAccount_TargetAccountOnDevice"/>
  <int value="3"
      label="SignedIn_WithDifferentAccount_TargetAccountNotOnDevice"/>
  <int value="4" label="SignedIn_WithTargetAccount"/>
  <int value="5" label="FlowForbidden"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/signin_deep_link_metrics.h:CrossDeviceInitialState) -->

<enum name="SigninDiceResponseHeader">
  <int value="0" label="Signin"/>
  <int value="1" label="SignoutPrimary">
    Signout including the Chrome primary account.
  </int>
  <int value="2" label="SignoutSecondary">
    Signout not including the Chrome primary accounts.
  </int>
  <int value="3" label="EnableSync">Enable Sync after signin.</int>
</enum>

<enum name="SigninDiceTokenFetchResult">
  <int value="0" label="Success"/>
  <int value="1" label="Abort (deprecated)"/>
  <int value="2" label="Failure">Failed with Gaia error.</int>
  <int value="3" label="Timeout"/>
</enum>

<enum name="SigninGaiaAuthFetcherIOSCookiesState">
  <int value="0" label="No Cookies"/>
  <int value="1" label="All Cookies Insecure"/>
  <int value="2" label="All Cookies Secure"/>
  <int value="3" label="Secure and Insecure Cookies"/>
</enum>

<enum name="SigninGaiaCookieManagerLogout">
  <int value="0" label="Request started"/>
  <int value="1" label="Success"/>
  <int value="2" label="Failure"/>
</enum>

<enum name="SigninInterceptFREDialogEvent">
  <int value="0" label="FRE started"/>
  <int value="1" label="Sync confirmation shown"/>
  <int value="2" label="The user turned sync on"/>
  <int value="3" label="The user canceled sync"/>
  <int value="4" label="The user clicked on sync settings"/>
  <int value="5" label="Profile customization shown"/>
  <int value="6" label="The user completed profile customization"/>
  <int value="7" label="The user skipped profile customization"/>
  <int value="8" label="History sync optin shown"/>
  <int value="9" label="The user turned on history syncing"/>
  <int value="10" label="The user rejected history syncing"/>
</enum>

<enum name="SigninInterceptHeuristicOutcome">
  <int value="0" label="Intercept: profile switch"/>
  <int value="1" label="Intercept: multi-user"/>
  <int value="2" label="Intercept: enterprise"/>
  <int value="3" label="Abort: Sync signin"/>
  <int value="4" label="Abort: intercept in progress"/>
  <int value="5" label="Abort: account not new"/>
  <int value="6" label="Abort: single account"/>
  <int value="7" label="Abort: account info fetch timeout"/>
  <int value="8" label="Abort: account info not compatible"/>
  <int value="9" label="Abort: profile creation disallowed"/>
  <int value="10" label="Abort: shut down"/>
  <int value="11" label="Abort: no supported browser window"/>
  <int value="12" label="Abort: password update"/>
  <int value="13" label="Abort: password update pending"/>
  <int value="14" label="Abort: user declined new profile for this account"/>
  <int value="15" label="Abort: signin interception disabled by policy"/>
  <int value="16" label="Intercept: forced enterprise interception"/>
  <int value="17" label="Intercept: forced enterprise profile switch"/>
  <int value="18" label="Abort: tab closed"/>
  <int value="19" label="Intercept: chrome sign in"/>
  <int value="20" label="Abort: signed out during interception"/>
  <int value="21"
      label="Abort: not the first account but there is no primary account."/>
  <int value="22" label="Abort: management disclaimer service in progress"/>
  <int value="23" label="Abort: account connected to primary"/>
</enum>

<enum name="SigninInterceptionDismissReason">
  <int value="0" label="Pressing the Escape key"/>
  <int value="1" label="Pressing the identity pill"/>
  <int value="2" label="User is no longer eligible (ex: signed out)"/>
</enum>

<enum name="SigninInterceptResult">
  <int value="0" label="Accepted"/>
  <int value="1" label="Declined"/>
  <int value="2" label="Ignored"/>
  <int value="3" label="Not displayed"/>
  <int value="4" label="Deprecated(10/23): Accepted with Guest"/>
  <int value="5" label="Accepted with existing profile"/>
  <int value="6" label="Dismissed by user without explicit user response"/>
</enum>

<enum name="SigninInvalidGaiaCredentialsReason">
  <int value="0" label="Unknown"/>
  <int value="1" label="Credentials rejected by server"/>
  <int value="2" label="Credentials rejected by client"/>
  <int value="3" label="Credentials missing"/>
</enum>

<enum name="SigninIOSDeviceRestoreSentinelError">
  <int value="0" label="No error"/>
  <int value="1" label="Failed to create sentinel file"/>
  <int value="2"
      label="Failed to set ExcludedFromBackup flag on sentinel file"/>
</enum>

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

<enum name="SigninLoadTokenFromDB">
  <int value="0" label="Loaded"/>
  <int value="1" label="Revoked by Dice migration"/>
  <int value="2" label="(Obsolete) Revoked as secondary account"/>
  <int value="3" label="Revoked on load due to cookie settings"/>
  <int value="4" label="Revoked on load due to invalid token characters"/>
  <int value="5" label="Revoked on load due to invalid account ID"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.h:LoadTokenFromDBStatus) -->

<enum name="SigninReconcilerOperation">
  <int value="0" label="No-op"/>
  <int value="1" label="Logout"/>
  <int value="2" label="Multilogin"/>
  <int value="3" label="Throttled"/>
</enum>

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

<enum name="SigninReconcilerTrigger">
  <int value="0" label="Initialized"/>
  <int value="1" label="Tokens loaded"/>
  <int value="2" label="Enable reconcile"/>
  <int value="3" label="Unblock reconcile"/>
  <int value="4" label="Token change"/>
  <int value="5" label="Token change during reconcile"/>
  <int value="6" label="Cookie change"/>
  <int value="7" label="Cookie setting change"/>
  <int value="8" label="Forced reconcile"/>
  <int value="9" label="Primary account changed"/>
  <int value="10" label="Device bound sessions fetched"/>
</enum>

<!-- LINT.ThenChange(//components/signin/core/browser/account_reconcilor.h:Trigger) -->

<enum name="SigninSignoutProfile">
  <int value="0" label="Preference changed">
    The preference or policy controlling if signin is valid has changed.
  </int>
  <int value="1" label="Google service pattern changed">
    The valid username pattern for signing in to the Google service changed.
  </int>
  <int value="2"
      label="(Obsolete) Signin preference changed during signin. Deprecated as
             of 12/2022.">
    The preference or policy controlling if signin is valid changed during the
    signin process.
  </int>
  <int value="3" label="User clicked signout from settings">
    User clicked to signout from the settings screen.
  </int>
  <int value="4" label="Signin aborted">
    The signin process was aborted, but signin had succeeded, so signout. This
    may be due to a server response, policy definition or user action.
  </int>
  <int value="5" label="Server forced">
    The sync server caused the profile to be signed out.
  </int>
  <int value="6"
      label="(Obsolete) Credentials transferred. Deprecated as of 12/2022.">
    The credentials are being transfered to a new profile, so the old one is
    signed out.
  </int>
  <int value="7" label="Authentication failed with force signin">
    Signed out because credentials are invalid and force-sign-in is enabled.
  </int>
  <int value="8"
      label="(Obsolete) User turned off sync from DICE UI. Deprecated as of
             08/2022."/>
  <int value="9" label="Account removed from device">
    Signout forced because account was removed from device. With M98, on iOS,
    this value is split with &quot;Signed out forced by iOS device
    restore&quot;.
  </int>
  <int value="10" label="Signout forced on profile load">
    Signout forced when profile is loaded as browser sign-in is no longer
    allowed.
  </int>
  <int value="11" label="[Tests] Force sign-out">
    Signout is forced. Used only for tests.
  </int>
  <int value="12"
      label="(Obsolete) User deleted account cookies. Deprecated in M114">
    User cleared account cookies when there's no sync consent, which has caused
    sign out.
  </int>
  <int value="13"
      label="(Obsolete) MobileIdentityConsistency rollback. Deprecated as of
             12/2022.">
    Signout was forced because MobileIdentityConsistency feature is disabled
    when there's a primary account without sync consent.
  </int>
  <int value="14"
      label="(Obsolete) Force Account ID migration. Deprecated as of 12/2022.">
    Signout was forced because account ID migration from email to Gaia ID was
    forced.
  </int>
  <int value="15" label="Signed out forced by iOS device restore">
    Sign-out forced because the account was removed from the device after a
    device restore. iOS only.
  </int>
  <int value="16"
      label="(Obsolete) User clicked turn off sync. Deprecated as of 04/2026.">
    User clicked the 'Turn off sync' option within settings. Android only.
  </int>
  <int value="17" label="User clicked signout From profile menu">
    User Clicked Signout in the profile menu.
  </int>
  <int value="18" label="Retriggered from signin bottomsheet">
    User retriggered signin from the Android sign-in bottomsheet.
  </int>
  <int value="19" label="User clicked signout from user policy notification">
    User clicked on sign-out from the notification dialog for User Policy. The
    notification informs the user that from now on user policies may be
    effective on their browser if they Sync with their managed account. The user
    has the option to sign out to avoid user policies.
  </int>
  <int value="20" label="Account email updated">
    The email of the primary account on the device was renamed (from a non-gmail
    to gmail address), triggering an automatic signout followed by signin.
    Android only.
  </int>
  <int value="21" label="User clicked signout from clear browsing data page">
    User clicked sign-out in the clear browsing data page.
  </int>
  <int value="22" label="AccountReconcilor GaiaCookiesUpdated">
    The reconcilor cleared the signin primary account on a Gaia cookie update.
  </int>
  <int value="23" label="AccountReconcilor Reconcile">
    The reconcilor cleared the signin primary account during reconcilation.
  </int>
  <int value="24" label="SigninManager UpdateUnconsentedPrimaryAccount">
    SigninManager decides to clear the prrimary (includes web sign out).
  </int>
  <int value="25" label="User deleted account cookies">
    User cleared account cookies when there's no sync consent, which has caused
    sign out.
  </int>
  <int value="26" label="User tapped on undo right after signin">
    User tapped on the 'Undo' button in a snackbar shown right after signin
    through promo in bookmarks and reading list page. (iOS only).
  </int>
  <int value="27" label="User declined history sync after dedicated sign-in">
    User has signed-in previously for the sole purpose of enabling history sync
    (eg. using history sync promo in recent tabs), but declined history sync
    eventually.
  </int>
  <int value="28" label="Device lock removed on automotive">
    If the device lock is removed from an Android automotive device, the current
    account is automatically signed out.
  </int>
  <int value="29" label="User turned off sync from the settings page">
    User has signed-in previously and sync was turned on. This value is
    recoreded when the user explicitly turns off sync from the settings page by
    pressing &quot;Turn off&quot; in the &quot;Sync and Google services&quot;
    section.
  </int>
  <int value="30"
      label="User cancelled sync confirmation on web only signed in">
    User was in the web-only signed in state in the UNO model and clicked to
    turn on sync, but cancelled the sync confirmation dialog so they are
    reverted to the initial state: signed out in the profile but keeping the
    account on the web only.
  </int>
  <int value="31" label="IdleTimeout policy triggered signout">
    The enterprise policy IdleTimeout was set, and the IdleTimeoutActions list
    value included `sign_out`. When the user has been idle for the time
    specified in the policy value, they will be signed out.
  </int>
  <int value="32"
      label="User cancelled sync confirmation removes primary account">
    User added the primary account through the sync flow. On abort, the primary
    account is cleared.
  </int>
  <int value="33"
      label="Move primary account in some cases of signin interception and
             sync merge data confirmation">
    The primary account might be moved to another profile in some cases e.g.
    profile switch, enterprise related interception or sync merge data
    confirmation.
  </int>
  <int value="34" label="Signed out during profile deletion">
    The primary account might be signed out when a profile is being deleted, to
    avoid that deletion of data propagates via sync to other devices.
  </int>
  <int value="35" label="Signed out while switching to another primary account">
    The user switched their primary account. As a first step, they get
    signed-out of their previous primary account, for an account switching. For
    a profile switching, this metric can be recorded when switching to the
    personal profile, if the personal profile doesn't have the right primary
    account.
  </int>
  <int value="36" label="Signed out from the account menu">
    In the account menu, the user selected the sign-out button.
  </int>
  <int value="37" label="User disabled allow chrome sign-in toggle">
    User disabled &quot;Allow Chrome sign-in&quot; toggle.
  </int>
  <int value="38"
      label="Signed out before a forced sign-in with a supervised account">
    A sign-out was triggered to allow a switch to a supervised account that was
    added to the device. Android only.
  </int>
  <int value="39" label="Sign out when opening the app from widget">
    The user has a widget with no account on it, opens the app from the widget
    and if there is a signed-in account in the app, sign-out is performed. iOS
    only.
  </int>
  <int value="40"
      label="Sign out when declining the enterprise management disclaimer">
    The user tried to sign in but declined the enterprise management disclaimer.
  </int>
  <int value="41" label="Forced DICe migration">
    The user was signed out because they were a DICe user and they didn't accept
    or see the migration dialog.
  </int>
  <int value="42"
      label="User tapped on undo right after signin through bookmarks promo">
    User tapped on the 'Undo' button in a snackbar shown right after signin
    through bookmarks promo. (Android only).
  </int>
  <int value="43"
      label="User tapped on undo right after signin through ntp promo">
    User tapped on the 'Undo' button in a snackbar shown right after signin
    through ntp promo. (Android only).
  </int>
  <int value="44"
      label="User tapped on undo right after signin through recent tabs promo">
    User tapped on the 'Undo' button in a snackbar shown right after signin
    through recent tabs promo. (Android only).
  </int>
  <int value="45" label="Capability restricts signin">
    A forced sign-out when the account capability CanSignInToChrome restricts
    signin. (iOS only).
  </int>
  <int value="46"
      label="User tapped on undo right after signin through autofill and
             passwords sign-in promo">
    User tapped on the 'Undo' button in a snackbar shown right after signin
    through autofill and passwords promo. (Android only).
  </int>
  <int value="47" label="User declined the enterprise signals disclaimer">
    User tapped 'Sign out' on the enterprise signals disclaimer or dismissed it
    by sliding down, using back press or by tapping outside of the dialog.
    (Android only).
  </int>
</enum>

<enum name="SigninSSOIdentityListRequestCacheState">
  <int value="0"
      label="SSO identity cache is stale, M85: the identity list is
             synchronously fetched and then returned, M86: the stale identity
             list is returned."/>
  <int value="1"
      label="SSO identity cache is valid, the valid identity list is
             returned."/>
  <int value="2"
      label="SSO identity cache is not populated, the identity list is
             synchronously fetched and then returned."/>
  <int value="3"
      label="The ios_internal identity list cache is not populated."/>
  <int value="4" label="The ios_internal identity list cache is valid."/>
</enum>

<enum name="SigninSSOWKWebViewGetAllCookiesRequest">
  <int value="0" label="Started"/>
  <int value="1" label="Finished"/>
</enum>

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

<enum name="SigninSurveyTrigger">
  <int value="0" label="First Run"/>
  <int value="1" label="Web Sign-in"/>
  <int value="2" label="Ntp Signin Button"/>
  <int value="3" label="Ntp Account Avatar Tap"/>
  <int value="4" label="Ntp Promo Sign-in"/>
  <int value="5" label="Bookmark Promo Sign-in"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SigninSurveyController.java:SigninSurveyTrigger) -->

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

<enum name="SigninTokenTableGetAllWrappedBindingKeysResult">
  <int value="0" label="Success"/>
  <int value="1" label="SQL Invalid Statement"/>
  <int value="2" label="SQL Failure"/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/webdata/token_service_table.cc:GetAllWrappedBindingKeysResult) -->

<enum name="SigninTokenTableReadTokenFromDBResult">
  <int value="0" label="Success"/>
  <int value="1" label="Decrypt failed"/>
  <int value="2" label="Read DB failed (bad entry)"/>
</enum>

<enum name="SigninTokenTableWriteTokenToDBResult">
  <int value="0" label="Success"/>
  <int value="1" label="Encrypt failed"/>
  <int value="2" label="SQL Failure"/>
</enum>

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

<enum name="SinginInterceptSupervisionState">
  <int value="0" label="Regular, non-supervised, user"/>
  <int value="1" label="Supervised user"/>
  <int value="2" label="Supervision status unknown"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/signin/dice_web_signin_interceptor.h:SinginInterceptSupervisionState) -->

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

<enum name="SourceForRefreshTokenOperation">
  <int value="0" label="Unknown"/>
  <int value="1" label="TokenService::LoadCredentials"/>
  <int value="2" label="SupervisedUser::InitSync (obsolete)"/>
  <int value="3" label="InlineLoginHandler::Signin (obsolete)"/>
  <int value="4" label="PrimaryAccountManager::ClearPrimaryAccount"/>
  <int value="5"
      label="PrimaryAccountManager::LegacyPreDiceSigninFlow (obsolete)"/>
  <int value="6" label="UserMenu:RemoveAccount (obsolete)"/>
  <int value="7" label="UserMenu::SignOutAllAccounts"/>
  <int value="8" label="Settings::Signout"/>
  <int value="9" label="Settings::PauseSync"/>
  <int value="10" label="AccountReconcilor::GaiaCookiesDeletedByUser"/>
  <int value="11" label="AccountReconcilor::GaiaCookiesUpdated"/>
  <int value="12" label="AccountReconcilor::Reconcile"/>
  <int value="13" label="DiceResponseHandler::Signin"/>
  <int value="14" label="DiceResponseHandler::Signout"/>
  <int value="15" label="TurnOnSyncHelper::Abort"/>
  <int value="16" label="MachineLogon::CredentialProvider"/>
  <int value="17" label="TokenService::ExtractCredentials"/>
  <int value="18"
      label="AccountReconcilor::RevokeTokensNotInCookies (obsolete)">
    Used for force migration to DICE. Removed in M96.
  </int>
  <int value="19" label="LogoutTabHelper::DidFinishNavigation"/>
  <int value="20" label="ForceSigninReauthWithDifferentAccount"/>
  <int value="21" label="AccountReconcilor::RevokeTokensNotInCookies"/>
  <int value="22"
      label="DiceResponseHandler::Signin from sign in promo after password
             save (obsolete)"/>
  <int value="23"
      label="DiceWebSigninInterceptor::OnEnterpriseProfileCreationResult from
             enterprise forced profile creation dialog"/>
  <int value="24"
      label="AccountsPolicyManager::RemoveUnallowedAccounts from
             ProfileSeparationDomainExceptionList policy."/>
  <int value="25"
      label="DiceAccountReconcilorDelegate::RefreshTokensBoundToDifferentKeys
             if the error is persistent and the source of the error is LSTs
             bound to different keys."/>
</enum>

<!-- LINT.ThenChange(//components/signin/public/base/signin_metrics.h:SourceForRefreshTokenOperation) -->

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

<enum name="SuppressedReason">
  <int value="0" label="Account list not yet available"/>
  <int value="1"
      label="The user has already seen the mismatch notice a sufficient
             number of times"/>
  <int value="2" label="The user has dismissed the notice multiple times."/>
  <int value="3" label="The user has recently seen the mismatch notice"/>
  <int value="4" label="The user recently went through the FRE"/>
  <int value="5" label="The displayed CCT is off-the-record"/>
  <int value="6"
      label="The app is not allowlisted for the account mismatch notification"/>
  <int value="7" label="Signin is not allowed"/>
  <int value="8" label="The account mismatch type is not the right one"/>
  <int value="9" label="The notification is not suppressed"/>
</enum>

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

<enum name="SyncButtonsType">
  <int value="0" label="Equal weighted buttons on sync screen (deprecated)"/>
  <int value="1"
      label="Not-Equal weighted buttons on sync screen (Android, Windows, Mac
             and Linux)"/>
  <int value="2"
      label="Equal weighted buttons on history sync screen (deprecated)"/>
  <int value="3"
      label="Not-Equal weighted buttons on history sync screen (iOS and
             Android)"/>
  <int value="4"
      label="Equal weighted buttons on sync screen from deadline (Android,
             Windows, Mac and Linux)"/>
  <int value="5"
      label="Equal weighted buttons on sync screen from capability (Android,
             Windows, Mac and Linux)"/>
  <int value="6"
      label="Equal weighted buttons on history sync screen from deadline (iOS
             and Android)"/>
  <int value="7"
      label="Equal weighted buttons on history sync screen from capability
             (iOS and Android)"/>
</enum>

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

<enum name="TokenBindingBoundTokenPrevalence">
  <int value="0" label="Token list is empty"/>
  <int value="1" label="None of the tokens are bound"/>
  <int value="2" label="Some tokens are bound, some unbound"/>
  <int value="3" label="All tokens are bound"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.cc:BoundTokenPrevalence) -->

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

<enum name="TokenBindingGenerateAssertionResult">
  <int value="0" label="Success"/>
  <int value="1" label="Binding key is not registered for an account"/>
  <int value="2" label="Failed to load the binding key"/>
  <int value="3" label="Failed to create an unsigned assertion token"/>
  <int value="4" label="Failed to sign an assertion token"/>
  <int value="5" label="Failed to attach the signature to an assertion token"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/token_binding_helper.h:Error) -->

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

<enum name="TokenBindingResponseEncryptionError">
  <int value="0" label="Response is unexpectedly encrypted"/>
  <int value="1" label="Decryption failed"/>
  <int value="2" label="No error. Response was successfully decrypted"/>
  <int value="3" label="No error. Response wasn't encrypted"/>
</enum>

<!-- LINT.ThenChange(//google_apis/gaia/token_binding_response_encryption_error.h:TokenBindingResponseEncryptionError) -->

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

<enum name="TokenBindingUpgradeSaveBindingKeyResult">
  <int value="0" label="Success"/>
  <int value="1" label="Refresh token not found"/>
</enum>

<!-- LINT.ThenChange(//components/signin/internal/identity_manager/token_binding_helper.h:SaveBindingKeyResult) -->

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

<enum name="WebSigninLoadingDialogStatus">
  <int value="0" label="Not shown"/>
  <int value="1" label="Shown"/>
  <int value="2" label="Dismissed by user"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/signin/WebSigninRedirectCoordinator.java:DialogState) -->

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

<enum name="WebSigninWaitOutcome">
  <int value="0" label="CompletedWithoutDialog"/>
  <int value="1" label="CompletedWithDialog"/>
  <int value="2" label="AbortedWithoutDialog"/>
  <int value="3" label="AbortedWithDialogCancelButton"/>
  <int value="4" label="AbortedWithDialogTouchOutside"/>
  <int value="5" label="AbortedWithDialogOther"/>
  <int value="6" label="AuthErrorWithoutDialog"/>
  <int value="7" label="AuthErrorWithDialog"/>
  <int value="8" label="OtherErrorWithoutDialog"/>
  <int value="9" label="OtherErrorWithDialog"/>
</enum>

<!-- LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/signin/WebSigninRedirectCoordinator.java:WaitOutcome) -->

</enums>

</histogram-configuration>
