<!--
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="AcceptedGeneratedPasswordSourceType">
  <int value="0" label="Proactive bottom sheet"/>
  <int value="1" label="Keyboard accessory"/>
</enum>

<enum name="AccessoryAction">
  <int value="0" label="Automatic password generation"/>
  <int value="1" label="'Manage all passwords' link"/>
  <int value="2" label="Autofill suggestion"/>
  <int value="3" label="'Manage all credit cards' link"/>
  <int value="4" label="'Manage all addresses' link"/>
  <int value="5" label="Manual password generation"/>
  <int value="6" label="Save passwords toggle"/>
  <int value="7" label="'Show other passwords' link"/>
  <int value="8" label="Show Passkeys again"/>
  <int value="9" label="'Use passkey on a different device' link"/>
  <int value="10"
      label="'(Obsolete) Create plus address' link in the address sheet"/>
  <int value="11"
      label="'(Obsolete) Select plus address' link in the address sheet"/>
  <int value="12"
      label="'(Obsolete) Manage plus addresses' link in the address sheet"/>
  <int value="13"
      label="'(Obsolete) Create plus address' link in the password sheet"/>
  <int value="14"
      label="'(Obsolete) Select plus address' link in the password sheet"/>
  <int value="15"
      label="'(Obsolete) Manage plus addresses' link in the password sheet"/>
  <int value="16" label="'Manage loyalty cards' link"/>
  <int value="17" label="'Verify it's you' link"/>
  <int value="18" label="'Autofill suggestion from accessory sheet"/>
  <int value="19" label="'Dismiss' keyboard accessory"/>
  <int value="20" label="@memory search fallback menu button"/>
</enum>

<enum name="AccessorySheetTrigger">
  <int value="0" label="Sheet was closed (user-triggered or automatic)"/>
  <int value="1" label="User closed an accessory sheet"/>
  <int value="2" label="User opened an accessory sheet"/>
</enum>

<enum name="AccessorySuggestionTypeV2">
  <int value="0" label="NAME_FULL"/>
  <int value="1" label="COMPANY_NAME"/>
  <int value="2" label="ADDRESS_LINE_1"/>
  <int value="3" label="ADDRESS_LINE_2"/>
  <int value="4" label="ZIP"/>
  <int value="5" label="CITY"/>
  <int value="6" label="STATE"/>
  <int value="7" label="COUNTRY"/>
  <int value="8" label="PHONE_NUMBER"/>
  <int value="9" label="EMAIL_ADDRESS"/>
  <int value="10" label="CREDIT_CARD_NUMBER"/>
  <int value="11" label="CREDIT_CARD_EXPIRATION_MONTH"/>
  <int value="12" label="CREDIT_CARD_EXPIRATION_YEAR"/>
  <int value="13" label="CREDIT_CARD_NAME_FULL"/>
  <int value="14" label="CREDIT_CARD_CVC"/>
  <int value="15" label="IBAN"/>
  <int value="16" label="PROMO_CODE"/>
  <int value="17" label="CREDENTIAL_USERNAME"/>
  <int value="18" label="CREDENTIAL_PASSWORD"/>
  <int value="19" label="PASSKEY"/>
  <int value="20" label="(Obsolete) PLUS_ADDRESS"/>
  <int value="21" label="LOYALTY_CARD"/>
</enum>

<enum name="AccessoryToggleType">
  <int value="0" label="Save passwords toggle: on"/>
  <int value="1" label="Save passwords toggle: off"/>
</enum>

<enum name="AccessPasswordInSettingsEvent">
  <int value="0" label="Viewed"/>
  <int value="1" label="Copied"/>
  <int value="2" label="Edited"/>
</enum>

<enum name="AccountTypeWithSyncState">
  <int value="0" label="Unknown"/>
  <int value="1" label="Gsuite"/>
  <int value="2" label="Gmail"/>
  <int value="3" label="Non-gaia enterprise"/>
  <int value="4" label="Saved password"/>
  <int value="5" label="Gsuite syncing"/>
  <int value="6" label="Gmail syncing"/>
</enum>

<enum name="AcknowledgeGroupedCredentialSheetBridgeDismissReason">
  <int value="0" label="Accepted"/>
  <int value="1" label="Back button pressed"/>
  <int value="2" label="Ignored"/>
</enum>

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

<enum name="ActorLoginAttemptLoginResult">
  <int value="0" label="ErrorUnknown"/>
  <int value="1" label="SuccessUsernameFilled"/>
  <int value="2" label="SuccessPasswordFilled"/>
  <int value="3" label="SuccessUsernameAndPasswordFilled"/>
  <int value="4" label="ErrorNoSigninForm"/>
  <int value="5" label="ErrorInvalidCredential"/>
  <int value="6" label="ErrorNoFillableFields"/>
  <int value="7" label="ErrorFillingNotAllowed"/>
  <int value="8" label="ErrorServiceBusy"/>
  <int value="9" label="ErrorInvalidTabInterface"/>
  <int value="10" label="ErrorDeviceReauthRequired"/>
  <int value="11" label="ErrorDeviceReauthFailed"/>
  <int value="12" label="SuccessFederated"/>
  <int value="13" label="ErrorFederatedContinuation"/>
  <int value="14" label="ErrorFederatedAccountNotLoggedIn"/>
  <int value="15" label="ErrorFederatedAccountIsSignUp"/>
  <int value="16" label="ErrorFederatedAccountNotAvailable"/>
  <int value="17" label="ErrorFederatedIdpReturnedError"/>
  <int value="18" label="ErrorFederatedIdpNetworkError"/>
  <int value="19" label="ErrorFederatedTokenRequestAborted"/>
  <int value="20" label="ErrorFederatedFrameNotActive"/>
  <int value="21" label="ErrorFederatedExpectedAccountNotPresent"/>
  <int value="22" label="ErrorFederatedTimeout"/>
  <int value="23" label="RequiresButtonClick"/>
  <int value="24" label="ErrorPageChangedDuringFilling"/>
</enum>

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

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

<enum name="ActorLoginGetCredentialsResult">
  <int value="0" label="ErrorUnknown"/>
  <int value="1" label="Success"/>
  <int value="2" label="ErrorServiceBusy"/>
  <int value="3" label="ErrorInvalidTabInterface"/>
  <int value="4" label="FillingNotAllowed"/>
</enum>

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

<enum name="AddCredentialFromSettingsUserInteractions">
  <int value="0" label="Add Credential Dialog is opened"/>
  <int value="1" label="Add Credential Dialog is closed"/>
  <int value="2" label="Credential got added"/>
  <int value="3" label="Duplicate Credential is entered"/>
  <int value="4" label="Duplicate Credential is viewed"/>
</enum>

<enum name="AffiliationFetchResult">
  <int value="0" label="Success"/>
  <int value="1" label="Network/server error"/>
  <int value="2" label="Malformed response"/>
</enum>

<enum name="AuthenticationResultStatusWin">
  <summary>Result of authenticating using Windows Hello.</summary>
  <int value="0" label="User verified successfully."/>
  <int value="1" label="There is no biometric verifier device available."/>
  <int value="2"
      label="A biometric verifier device is not configured for this user."/>
  <int value="3"
      label="Group policy has disabled the biometric verifier device."/>
  <int value="4"
      label="The biometric verifier device is performing an operation and is
             unavailable."/>
  <int value="5"
      label="After 10 attempts, the original verification request and all
             subsequent attempts at the same verification were not verified."/>
  <int value="6" label="The verification operation was canceled."/>
  <int value="7" label="Failed to create UserConsentVerifier factory."/>
  <int value="8" label="Failed to call UserConsentVerifier API."/>
  <int value="9" label="Failed to post authentication task."/>
  <int value="10" label="Uknown return status."/>
  <int value="11" label="Authentication async operation failed."/>
  <int value="12" label="Failed to find last active browser."/>
  <int value="13" label="Failed to find hwnd for native window."/>
</enum>

<enum name="AuthenticationStateWin">
  <summary>State of authenticating using Windows Hello.</summary>
  <int value="0" label="Authentication was started."/>
  <int value="1" label="Authentication was finished."/>
</enum>

<enum name="AutoSigninFirstRun">
  <int value="0" label="No action"/>
  <int value="1" label="Turn off"/>
  <int value="2" label="Ok, got it"/>
</enum>

<enum name="BiometricAuthenticationStatusWin">
  <summary>Status of biometric authentication availability on Windows.</summary>
  <int value="0"
      label="For some reason availability can't be checked or has an unknown
             status."/>
  <int value="1" label="A biometric verifier device is available."/>
  <int value="2"
      label="The biometric verifier device is performing an operation and is
             unavailable."/>
  <int value="3"
      label="Group policy has disabled the biometric verifier device."/>
  <int value="4" label="There is no biometric verifier device available."/>
  <int value="5"
      label="A biometric verifier device is not configured for this user."/>
</enum>

<enum name="BiometricsStatusChromeOS">
  <summary>
    Status of biometric authentication availability on ChromeOS.
  </summary>
  <int value="1" label="A biometric verifier is configured for the user."/>
  <int value="2" label="A biometric verifier is unavailable on the device."/>
  <int value="3"
      label="A biometric verifier device is not configured for the user."/>
</enum>

<enum name="BooleanFormManager">
  <int value="0" label="Has Form Manager"/>
  <int value="1" label="Lacks Form Manager"/>
</enum>

<enum name="BooleanGeneratedPasswordWasEdited">
  <int value="0" label="User saved the original password generated by Chrome"/>
  <int value="1" label="User edited the generated password"/>
</enum>

<enum name="BooleanProfilePicker">
  <int value="0"
      label="Forced browser sign-in is disabled, so we attempt to save the
             password hash from the profile picker"/>
  <int value="1"
      label="Forced browser sign-in is enabled, so attempting to save the
             password hash from the profile picker was skipped"/>
</enum>

<enum name="BooleanRootPopupSuggestionAccepted">
  <int value="0" label="Suggestion was accepted from the subpopup"/>
  <int value="1" label="Suggestion was accepted from the root popup"/>
</enum>

<enum name="BooleanSavedPasswordIsGenerated">
  <int value="0" label="Typed by a user manually"/>
  <int value="1" label="Generated by Chrome"/>
</enum>

<enum name="BooleanSearchInputIsNotEmpty">
  <int value="0" label="Search input is empty"/>
  <int value="1" label="Search input is not empty"/>
</enum>

<enum name="BooleanSuccessfulLoginHappenedOnHttps">
  <int value="0" label="Login happened on an insecure origin"/>
  <int value="1" label="Login happened on a secure origin"/>
</enum>

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

<enum name="BrowserAssistedLoginType">
  <int value="0" label="FedCM passive mode"/>
  <int value="1" label="FedCM active mode"/>
  <int value="2" label="Non-FedCM OAuth login"/>
  <int value="3" label="Other"/>
  <int value="4" label="Password fully assisted"/>
  <int value="5" label="Password partially assisted"/>
  <int value="6" label="Password manually entered"/>
  <int value="7" label="Password neither manually nor GPM assisted"/>
  <int value="8" label="Passkey stored in GPM"/>
  <int value="9" label="Passkey stored in Windows Hello"/>
  <int value="10" label="Passkey stored in iCloud Keychain"/>
  <int value="11" label="Passkey stored in Chrome profile"/>
  <int value="12" label="Passkey hybrid flow"/>
  <int value="13" label="Passkey from a security key"/>
  <int value="14" label="Passkey hybrid or security key"/>
  <int value="15" label="Passkey unknown source"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_manager_metrics_util.h:BrowserAssistedLoginType) -->

<enum name="ChangePasswordFormFinderError">
  <int value="0" label="Failed to capture page content"/>
  <int value="1" label="Failed to parse response"/>
  <int value="2" label="No button to click"/>
  <int value="3" label="Interruption detected (OTP, etc.)"/>
  <int value="4" label="Failed to click button"/>
  <int value="5" label="Form not found"/>
</enum>

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

<enum name="ChangePasswordFormSubmissionError">
  <int value="0" label="Failed to fill the form"/>
  <int value="1" label="Timeout"/>
  <int value="2" label="Failed to capture page content"/>
  <int value="3" label="Failed to parse response"/>
  <int value="4" label="Submit button not found"/>
  <int value="5" label="Interruption detected (OTP, etc.)"/>
  <int value="6" label="Failed to click submit"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/change_password_form_filling_submission_helper.h) -->

<enum name="CharacterClassPresenceChange">
  <int value="0" label="No change"/>
  <int value="1" label="Character class was absent and is added"/>
  <int value="2" label="All characters belonging to the class are removed"/>
  <int value="3" label="Set of character class members changed"/>
</enum>

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

<enum name="CoarseFinalPasswordChangeState">
  <int value="0" label="Offered password change"/>
  <int value="1" label="Canceled by the user"/>
  <int value="2" label="Password successfully changed"/>
  <int value="3" label="Password change failed"/>
  <int value="4" label="No change password form found"/>
  <int value="5" label="OTP detected"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/password_change_delegate.h) -->

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

<enum name="CredentialManagerAndroidGetResult">
  <int value="0" label="New type of error, unhandled in Chrome"/>
  <int value="1" label="The operation succeeded"/>
  <int value="2" label="The user intentionally canceled the flow"/>
  <int value="3" label="Custom error by the third-party SDK"/>
  <int value="4" label="Failed due to a transient internal API interruption"/>
  <int value="5" label="Configurations are mismatched for the provider"/>
  <int value="6" label="Failed with no detailed information"/>
  <int value="7" label="Credential manager is unsupported"/>
  <int value="8"
      label="The operation failed due to a public key credential error"/>
  <int value="9" label="The operation failed due to no credential being found"/>
</enum>

<!-- LINT.ThenChange(//components/credential_management/android/java/src/org/chromium/components/credential_management/CredentialManagerAndroidGetResult.java:CredentialManagerAndroidGetResult) -->

<enum name="CredentialManagerAPIError">
  <summary>
    Numeric values correspond to CredentialManagerStatusCodes class.
  </summary>
  <int value="4" label="SIGN_IN_REQUIRED"/>
  <int value="5" label="INVALID_ACCOUNT"/>
  <int value="6" label="RESOLUTION_REQUIRED"/>
  <int value="7" label="NETWORK_ERROR"/>
  <int value="8" label="INTERNAL_ERROR"/>
  <int value="10" label="DEVELOPER_ERROR"/>
  <int value="13" label="UNEXPECTED_ERROR"/>
  <int value="14" label="INTERRUPTED"/>
  <int value="15" label="TIMEOUT"/>
  <int value="16" label="CANCELLED"/>
  <int value="17" label="API_NOT_CONNECTED"/>
  <int value="18" label="DEAD_CLIENT"/>
  <int value="19" label="REMOTE_EXCEPTION"/>
  <int value="20" label="CONNECTION_SUSPENDED_DURING_CALL"/>
  <int value="21" label="CONNECTION_TIMED_OUT_DURING_UPDATE"/>
  <int value="22" label="RECONNECTION_TIMED_OUT"/>
  <int value="43500" label="ACTIVITY_NOT_FOUND"/>
  <int value="43501" label="SETTING_DESERIALIZATION_FAILED"/>
  <int value="43502" label="CHROME_SYNC_API_CALL_ERROR"/>
  <int value="43504" label="ERROR_WHILE_DOING_LEAK_CHECK_SERVICE_GRPC"/>
  <int value="43505" label="ERROR_WHILE_CREATING_DATA_HOLDER"/>
  <int value="43506" label="ERROR_WHILE_SERIALIZING_CHECKUP_RESULT_SUMMARY"/>
  <int value="43507" label="REQUIRED_SYNCED_ACCOUNT_MISSING"/>
  <int value="43508" label="LEAK_CHECK_SERVICE_AUTH_ERROR"/>
  <int value="43509" label="LEAK_CHECK_SERVICE_RESOURCE_EXHAUSTED"/>
</enum>

<enum name="CredentialManagerError">
  <int value="0" label="(Obsolete) No context"/>
  <int value="1" label="Provided account is empty"/>
  <int value="2" label="(Obsolete) API error"/>
  <int value="3" label="(Obsolete) Uncategorized error"/>
  <int value="4" label="Backend version is not supported"/>
  <int value="5"
      label="(Obsolete) Backend downstream implementation is not available"/>
  <int value="6" label="ApiException"/>
  <int value="7" label="Other API error"/>
  <int value="8" label="Password manager not available"/>
</enum>

<enum name="CredentialManagerGetResult">
  <int value="0" label="Promise rejected"/>
  <int value="1" label="Empty credential, auto sign-in disallowed"/>
  <int value="2" label="Empty credential, empty password store"/>
  <int value="3" label="Empty credential, multiple matches"/>
  <int value="4" label="Empty credential, user signed out"/>
  <int value="5" label="Empty credential, auto sign-in FRE pending"/>
  <int value="6" label="Empty credential, any other reason"/>
  <int value="7" label="Account chooser credential"/>
  <int value="8" label="Auto sign-in"/>
  <int value="9" label="Empty credential, called in incognito mode"/>
  <int value="10"
      label="(DEPRECATED in M111) Empty credential, called in
             autofill-assistant mode"/>
</enum>

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

<enum name="CredentialManagerStoreResult">
  <int value="0" label="New type of error, unhandled in Chrome"/>
  <int value="1" label="The operation succeeded"/>
  <int value="2" label="The user intentionally canceled the flow"/>
  <int value="3" label="No create options are available from any provider(s)"/>
  <int value="4" label="Failed due to a transient internal API interruption."/>
  <int value="5" label="Unknown error by the Android API"/>
  <int value="6" label="Custom error by the third-party SDK"/>
  <int value="7" label="Configurations are mismatched for the provider"/>
  <int value="8" label="Credential manager is unsupported"/>
  <int value="9"
      label="The operation failed due to a public key credential error"/>
  <int value="10"
      label="The operation failed due to a restore credential DOM error"/>
  <int value="11" label="The operation failed due to E2EE being unavailable"/>
</enum>

<!-- LINT.ThenChange(//components/credential_management/android/java/src/org/chromium/components/credential_management/CredentialManagerStoreResult.java:CredentialManagerStoreResult) -->

<enum name="CrossDomainPasswordFillingConfirmation">
  <int value="0" label="Confirmed"/>
  <int value="1" label="Canceled"/>
  <int value="2" label="Ignored"/>
</enum>

<enum name="DeleteCorruptedPasswordsResult">
  <int value="0" label="Success - no passwords were deleted"/>
  <int value="1" label="Success - there were deleted passwords"/>
  <int value="2" label="Item failure"/>
  <int value="3" label="Encryption unavailable"/>
</enum>

<enum name="DeviceReauth.ReauthResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failure"/>
  <int value="2" label="Skipped"/>
</enum>

<enum name="DownloadCsvFlowStep">
  <int value="0" label="Dialog dismissed"/>
  <int value="1" label="No screen lock"/>
  <int value="2" label="Reauthentication failed"/>
  <int value="3" label="Download location not selected"/>
  <int value="4" label="Source CSV could not be found"/>
  <int value="5" label="CSV copying failed"/>
  <int value="6" label="Success"/>
</enum>

<enum name="EditsInGeneratedPasswordMask">
  <int value="0" label="No changes (not reported)"/>
  <int value="1" label="Length"/>
  <int value="2" label="Letters"/>
  <int value="3" label="Letters,Length"/>
  <int value="4" label="Numerics"/>
  <int value="5" label="Numerics,Length"/>
  <int value="6" label="Numerics,Letters"/>
  <int value="7" label="Numerics,Letters,Length"/>
  <int value="8" label="Symbols"/>
  <int value="9" label="Symbols,Length"/>
  <int value="10" label="Symbols,Letters"/>
  <int value="11" label="Symbols,Letters,Length"/>
  <int value="12" label="Symbols,Numerics"/>
  <int value="13" label="Symbols,Numerics,Length"/>
  <int value="14" label="Symbols,Numerics,Letters"/>
  <int value="15" label="Symbols,Numerics,Letters,Length"/>
</enum>

<enum name="FillDataRetrievalStatusIOS">
  <int value="0" label="Success"/>
  <int value="1" label="No FillData matching frame"/>
  <int value="2" label="No FillData matching form"/>
  <int value="3" label="No FillData matching field"/>
  <int value="4" label="No credentials matching username"/>
  <int value="5" label="No cached last request form"/>
</enum>

<enum name="GaiaPasswordHashChange">
  <int value="0" label="Saved on Chrome sign-in (syncing)"/>
  <int value="1" label="Saved in the content area"/>
  <int value="2" label="Cleared on Chrome sign-out"/>
  <int value="3" label="Changed in the content area"/>
  <int value="4"
      label="Password hash change event where the GSuite/Gmail account is not
             syncing"/>
  <int value="5"
      label="Password hash change event where the account is a non-GAIA
             enterprise account"/>
</enum>

<enum name="GeneratedPasswordAlteredLengthIncreased">
  <int value="0" label="Length decreased"/>
  <int value="1" label="Length increased"/>
</enum>

<enum name="GenerationDialogChoice">
  <int value="0" label="Accepted"/>
  <int value="1" label="Rejected"/>
</enum>

<enum name="GetChangePasswordUrlMetric">
  <int value="0" label="Url override was not fetched yet"/>
  <int value="1" label="Url override was available and used"/>
  <int value="2" label="No url override was available"/>
  <int value="3"
      label="(Deprecated) Url override was available in the FacetGroup and
             used"/>
  <int value="4" label="Url override was available for the main domain"/>
</enum>

<enum name="HandleSubmittedFormStatus">
  <int value="0" label="Handled"/>
  <int value="1" label="Rejected, no WebState"/>
  <int value="2" label="Rejected, no delegate"/>
  <int value="3" label="Rejected, msg body not a dict"/>
  <int value="4" label="Rejected, no frame for id"/>
  <int value="5" label="Rejected, no trusted URL"/>
  <int value="6" label="Rejected, can't extract form data"/>
  <int value="7" label="Rejected, no user interaction"/>
</enum>

<enum name="HistogramExportResult">
  <int value="0" label="Success"/>
  <int value="1" label="(obsolete) User aborted"/>
  <int value="2" label="Writing to disk failed"/>
  <int value="3" label="Could not find consumer for exporting"/>
  <int value="4" label="(obsolete) Screen lock is not set up"/>
  <int value="5" label="Activity destroyed while not visible"/>
</enum>

<enum name="HttpPasswordMigrationMode">
  <int value="0" label="Moved">
    HTTP credentials were moved during migration to HTTPS
  </int>
  <int value="1" label="Copied">
    HTTP credentials were copied during migration to HTTPS
  </int>
</enum>

<enum name="IsSyncPasswordHashSaved">
  <int value="0" label="Not saved"/>
  <int value="1" label="Saved via string pref"/>
  <int value="2" label="Saved via list pref"/>
</enum>

<enum name="JavaScriptOnlyValueInPasswordForm">
  <int value="0" label="Only values from JavaScript, and no user focus"/>
  <int value="1" label="Only values from JavaScript, and user focus"/>
  <int value="2" label="User typed or autofilled values"/>
</enum>

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

<enum name="LoginCheckError">
  <int value="0" label="Login failed (credential error)"/>
  <int value="1" label="Forgot password page detected"/>
  <int value="2" label="Server error (model execution failed)"/>
  <int value="3" label="Failed to parse response"/>
  <int value="4" label="Timeout"/>
  <int value="5" label="Unknown error"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/password_manager/password_change/login_state_checker.h:LoginCheckError) -->

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

<enum name="LoginCheckResult">
  <int value="0" label="Success (User is logged in)"/>
  <int value="1" label="Logged out (Maximum attempts reached)"/>
  <int value="2" label="Error (Server error / timeout / parsing error)"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/password_manager/password_change/login_state_checker.h:LoginCheckResult) -->

<enum name="LoginDatabaseEncryptionStatus">
  <int value="0" label="No issues"/>
  <int value="1"
      label="Encryption is available but invalid entries exist in the
             database"/>
  <int value="2" label="Encryption is not available"/>
</enum>

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

<enum name="LoginDatabaseInitError">
  <int value="0" label="Init success"/>
  <int value="1" label="Can't open file"/>
  <int value="2" label="Start transaction error"/>
  <int value="3" label="Meta table failed initialization"/>
  <int value="4" label="Incompatible current version"/>
  <int value="5" label="Logins table failed initialization"/>
  <int value="6" label="Stats table failed initialization"/>
  <int value="7" label="Migration error"/>
  <int value="8" label="Commit transaction error"/>
  <int value="9" label="Initialization of compromised credentials error"/>
  <int value="10" label="(Deprecated) Init field info table error"/>
  <int value="11" label="Foreign key init error"/>
  <int value="12" label="Password notes table failed initialization"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_store/login_database.cc:DatabaseInitError) -->

<enum name="LoginsChangedTrigger">
  <summary>
    Triggers that may indirectly cause PasswordStore observers notifications
    because logins *may* have changed.
  </summary>
  <int value="0" label="ExternalUpdate">
    Chrome either was notified about external changes (e.g. via subscription
    notification) or started a new foregrounding session and needs to refresh
    data that may have changed due to external credential management.
  </int>
  <int value="1" label="Addition">
    A credential was saved by Chrome. Update observers with all credentials
    because the addition may conflict with an existing credential.
  </int>
  <int value="2" label="Update">
    A credential was updated by Chrome. Update observers with all credentials
    because updates may have caused implicit removals (e.g. due to primary key
    changes) or the update may have failed (e.g. because of a prior deletion).
  </int>
  <int value="3" label="Deletion">
    A single credential was removed by Chrome. Update observers with all
    credentials because removal might fail (i.e. credential was already gone).
  </int>
  <int value="4" label="BatchDeletion">
    Multiple credentials where removed by Chrome. Update observers with all
    credentials because removals might fail.
  </int>
  <int value="5" label="Unblocklisting">
    Chrome removed blocklisting entries. Update observers with all credentials
    to confirm the remaining saving exceptions.
  </int>
</enum>

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

<enum name="LogInWithChangedPasswordOutcome">
  <int value="0" label="PrimaryPasswordFailed"/>
  <int value="1" label="PrimaryPasswordSucceeded"/>
  <int value="2" label="BackupPasswordFailed"/>
  <int value="3" label="BackupPasswordSucceeded"/>
  <int value="4" label="UnknownPasswordFailed"/>
  <int value="5" label="UnknownPasswordSucceeded"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_manager.h:LogInWithChangedPasswordOutcome) -->

<enum name="ManagePasswordsReferrer">
  <int value="0" label="Chrome Settings"/>
  <int value="1" label="Manage Passwords Bubble"/>
  <int value="2" label="Password Context Manu"/>
  <int value="3" label="Password Dropdown"/>
  <int value="4" label="Password Generation Confirmation"/>
  <int value="5" label="(DEPRECATED - 06/25) Profile Chooser"/>
  <int value="6" label="Passwords Accessory Sheet"/>
  <int value="7" label="Touch To Fill"/>
  <int value="8" label="Safe state bubble"/>
  <int value="9" label="Password Breach Dialog"/>
  <int value="10" label="Safety Check"/>
  <int value="11" label="Save/Update Password Bubble"/>
  <int value="12" label="Password Generation Prompt in Autofill Dropdown"/>
  <int value="13" label="Passwords Google Website"/>
  <int value="14"
      label="(DEPRECATED - 12/22) Link after successful automated password
             change"/>
  <int value="15" label="Biometric Authentication before filling"/>
  <int value="16" label="Chrome menu item"/>
  <int value="17" label="Shared Passwords Notification Bubble"/>
  <int value="18" label="Search Passwords widget"/>
  <int value="19" label="Add Username bubble"/>
  <int value="20" label="Omnibox Pedal Suggestion"/>
  <int value="21" label="(obsolete) Default store changed bubble"/>
  <int value="22" label="Manage Password Details Bubble"/>
  <int value="23" label="Passkey saved confirmation bubble"/>
  <int value="24" label="Passkey deleted confirmation bubble"/>
  <int value="25" label="Passkey updated confirmation bubble"/>
  <int value="26" label="Passkey not accepted confirmation bubble"/>
  <int value="27" label="(obsolete) Password access loss warning"/>
  <int value="28" label="Passkey upgrade bubble"/>
  <int value="29" label="Password change state information bubble"/>
  <int value="30" label="Autofill and passwords settings page"/>
</enum>

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

<enum name="OnDeviceEncryptionStateHistogramBucket">
  <int value="0" label="On-device encryption not enabled"/>
  <int value="1" label="Device not ready"/>
  <int value="2" label="Device ready"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/password_manager/ode/on_device_encryption_metrics_reporter.h:OnDeviceEncryptionStateHistogramBucket) -->

<enum name="PasskeysMigrationStatus">
  <int value="0" label="Passkey created"/>
  <int value="1" label="Passkey updated"/>
  <int value="2" label="Invalid passkey"/>
</enum>

<enum name="PasswordAddLoginSyncError">
  <int value="0" label="None"/>
  <int value="1" label="DB Not Available"/>
  <int value="2" label="Constraint Violation"/>
  <int value="3" label="Encryption Service Failure"/>
  <int value="4" label="DB Error"/>
</enum>

<enum name="PasswordAnalyzeLeakResponseResult">
  <int value="0" label="Decryption Error"/>
  <int value="1" label="No Leaked Credentials"/>
  <int value="2" label="Leaked Credentials"/>
</enum>

<enum name="PasswordApplyIncrementalSyncChangesState">
  <int value="0" label="Apply OK"/>
  <int value="1" label="Apply ADD failed"/>
  <int value="2" label="Apply UPDATE failed"/>
  <int value="3" label="Apply Delete failed"/>
  <int value="4" label="Apply metadata changed failed"/>
</enum>

<enum name="PasswordBubbleDisplayDisposition">
  <int value="0" label="Opened automatically / Offering a password to save"/>
  <int value="1" label="Opened manually / Offering a password to save"/>
  <int value="2" label="Opened manually / Managing saved passwords"/>
  <int value="3" label="Opened manually / Site is blocked (obsolete)"/>
  <int value="4"
      label="Opened automatically / Confirming generated password saved"/>
  <int value="5"
      label="Opened automatically / Offering a credential to choose
             (obsolete)"/>
  <int value="6" label="Opened automatically / Auto-signin toast"/>
  <int value="7" label="Opened manually / Offering a password to update"/>
  <int value="8" label="Opened automatically / Offering a password to update"/>
  <int value="9" label="Opened manually / Confirming generated password saved"/>
  <int value="10"
      label="(obsolete) Opened automatically / Offering to save unsynced
             passwords locally"/>
  <int value="11"
      label="Opened automatically / Notification about compromised passwords"/>
  <int value="12"
      label="Opened automatically / Offering to move profile password to
             account store"/>
  <int value="13"
      label="Opened manually / Offering to enable biometric authentication
             before filling"/>
  <int value="14"
      label="Opened automatically / Offering to enable biometric
             authentication before filling"/>
  <int value="15"
      label="Opened automatically / Confirming biometric authentication
             before filling is enabled"/>
  <int value="16"
      label="Opened automatically / Notifying the user about incoming shared
             passwords"/>
  <int value="17"
      label="Opened automatically / Offering to add an username to the saved
             password"/>
  <int value="18"
      label="Opened manually / Offering to add an username to the saved
             password"/>
  <int value="19"
      label="Opened automatically / Offering to relaunch chrome as a result
             of a keychain issue"/>
  <int value="20"
      label="(obsolete) Opened automatically / Notifying the user that their
             password store setting changed"/>
  <int value="21"
      label="Opened automatically / Notifying the user that their passkey was
             saved"/>
  <int value="22"
      label="Opened automatically / Notifying the user that their passkey was
             deleted because it was not present on an unknown credential
             report and that they need to log in to create a new passkey"/>
  <int value="23"
      label="Opened manually / Notifying the user that their passkey was
             deleted because it was not present on an unknown credential
             report and that they need to log in to create a new passkey"/>
  <int value="24"
      label="Opened automatically / Notifying the user that their passkey
             details have been updated."/>
  <int value="25"
      label="Opened manually / Notifying the user that their passkey details
             have been updated."/>
  <int value="26"
      label="Opened automatically / Notifying the user that their passkey was
             deleted because it was not present on an all accepted
             credentials report"/>
  <int value="27"
      label="Opened manually / Notifying the user that their passkey was
             deleted because it was not present on an all accepted
             credentials report"/>
</enum>

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

<enum name="PasswordChangeAvailability">
  <int value="0" label="Available"/>
  <int value="1" label="Password generation disabled"/>
  <int value="2" label="Model execution not allowed"/>
  <int value="3" label="Password saving disabled"/>
  <int value="4" label="Disabled by policy"/>
  <int value="5" label="(Obsolete) Feature disabled"/>
  <int value="6" label="(Obsolete) Unsupported language"/>
  <int value="7" label="(Obsolete) Unsupported country"/>
  <int value="8" label="Unsupported site"/>
  <int value="9" label="User has no saved passwords"/>
  <int value="10" label="Throttled"/>
  <int value="11" label="Signup form"/>
  <int value="12" label="Non-password login"/>
  <int value="13" label="Invisible password field"/>
  <int value="14" label="Disabled by user"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/chrome_password_change_service.h) -->

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

<enum name="PasswordChangeDialogAction">
  <int value="0" label="Cancel button clicked"/>
  <int value="1" label="Accept button clicked"/>
  <int value="2" label="'About password change' link clicked"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/ui/passwords/password_change_ui_controller.h:PasswordChangeDialogAction) -->

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

<enum name="PasswordChangeFlowState">
  <int value="0" label="Offering password change"/>
  <int value="1" label="Waiting for privacy notice acceptance"/>
  <int value="2" label="Checking if user is signed in"/>
  <int value="3" label="No change password form found"/>
  <int value="4" label="Changing password"/>
  <int value="5" label="Password successfully changed"/>
  <int value="6" label="Password change failed"/>
  <int value="7" label="OTP detected"/>
  <int value="8" label="Canceled by the user"/>
  <int value="9" label="No state. The feature wasn't offered"/>
  <int value="10"
      label="Login is unfinished. Prompting user to complete sign in."/>
  <int value="11"
      label="Login form detected in an ongoing flow. Continue button shown.
             (Deprecated)"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/password_change_delegate.h) -->

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

<enum name="PasswordChangeFlowStep">
  <int value="0" label="Open form step"/>
  <int value="1" label="Submit form step"/>
  <int value="2" label="Verify submission step"/>
  <int value="3" label="Login check step"/>
</enum>

<!-- LINT.ThenChange(/components/password_manager/core/browser/password_manager_metrics_util.h:PasswordChangeFlowStep) -->

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

<enum name="PasswordChangeRecoveryFlowState">
  <int value="0" label="TroubleSigningInClicked"/>
  <int value="1" label="ProactiveRecoveryPopupShown"/>
  <int value="2" label="PrimaryPasswordUpdated"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_manager_metrics_util.h:PasswordChangeRecoveryFlowState) -->

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

<enum name="PasswordChangeToastEvent">
  <int value="0" label="Shown"/>
  <int value="1" label="Canceled"/>
  <int value="2" label="Continue"/>
  <int value="3" label="Open password change tab"/>
  <int value="4" label="Retry"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/ui/passwords/password_change_ui_controller.h:PasswordChangeToastEvent) -->

<enum name="PasswordCheckInteraction">
  <int value="0" label="Check started automatically"/>
  <int value="1" label="Check started manually"/>
  <int value="2" label="Check stopped"/>
  <int value="3" label="Change password"/>
  <int value="4" label="Edit password"/>
  <int value="5" label="Remove password"/>
  <int value="6" label="Show password"/>
  <int value="7" label="Mute password"/>
  <int value="8" label="Unmute password"/>
  <int value="9" label="Change password automatically"/>
</enum>

<enum name="PasswordCheckInteractionIOS">
  <int value="0" label="Change password"/>
  <int value="1" label="Edit password"/>
  <int value="2" label="Remove password"/>
  <int value="3" label="Show password"/>
  <int value="4" label="Mute warning"/>
  <int value="5" label="Unmute warning"/>
  <int value="6" label="Show list of warnings"/>
</enum>

<enum name="PasswordCheckInteractionIOSWithoutContext">
  <int value="0" label="Check started automatically"/>
  <int value="1" label="Check started manually"/>
  <int value="2" label="Open password checkup homepage"/>
</enum>

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

<enum name="PasswordCheckReferrer">
  <int value="0" label="Safety Check"/>
  <int value="1" label="Password Settings"/>
  <int value="2" label="Phish Guard Dialog"/>
  <int value="3" label="Password Breach Dialog"/>
  <int value="4" label="More passwords to fix bubble"/>
  <int value="5" label="(obsolete) Unsafe state bubble"/>
  <int value="6" label="Safety Check Magic Stack"/>
  <int value="7" label="Safety Check Notification"/>
</enum>

<!-- LINT.ThenChange(//chrome/browser/resources/settings/autofill_page/password_manager_proxy.ts:PasswordCheckReferrer, //components/password_manager/core/browser/ui/password_check_referrer.h:PasswordCheckReferrer) -->

<enum name="PasswordCheckResolutionAction">
  <int value="0" label="Opened a site to change password manually"/>
  <int value="1"
      label="(DEPRECATED IN M111) Started an automated password change flow"/>
  <int value="2" label="Removed a password"/>
  <int value="3" label="Edited a password"/>
  <int value="4" label="Did nothing"/>
</enum>

<enum name="PasswordCheckUIUserActionAndroid">
  <int value="0" label="Start check automatically"/>
  <int value="1" label="Start check manually"/>
  <int value="2" label="Cancel check"/>
  <int value="3" label="Change password"/>
  <int value="4" label="(DEPRECATED IN M111) Change password automatically"/>
  <int value="5" label="Change password manually"/>
  <int value="6" label="View password click"/>
  <int value="7" label="Viewed password"/>
  <int value="8" label="Copied password"/>
  <int value="9" label="Edit password click"/>
  <int value="10" label="Edited password"/>
  <int value="11" label="Delete password click"/>
  <int value="12" label="Deleted password"/>
</enum>

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

<enum name="PasswordDecryptionResult">
  <int value="0" label="Failed"/>
  <int value="1" label="Succeeded"/>
  <int value="2" label="Succeeded by skipping"/>
  <int value="3" label="Succeeded by ignoring failure"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_store/login_database_posix.cc:PasswordDecryptionResult) -->

<enum name="PasswordDropdownDuplicateCredentialsType">
  <summary>
    Describes the combination of duplicate credential types found in a password
    dropdown when it is shown. These are based on credentials sharing the same
    username. This metric is logged for each distinct type of duplication found
    in a single dropdown appearance.
  </summary>
  <int value="0" label="DuplicatePasswords">
    A user has multiple password credentials for the same username.
  </int>
  <int value="1" label="DuplicatePasskeys">
    A user has multiple passkey credentials for the same username.
  </int>
  <int value="2" label="DuplicatePasswordsAndPasskeys">
    A user has at least one password and at least one passkey credential for the
    same username. This is logged even if other duplications (e.g. multiple
    passwords for this same user) also exist for this user.
  </int>
</enum>

<enum name="PasswordDropdownSelectedOption">
  <int value="0" label="Password"/>
  <int value="1" label="Manage passwords"/>
  <int value="2" label="Generate password"/>
  <int value="3" label="(obsolete) Unlock account-store to fill password"/>
  <int value="4" label="(obsolete) Unlock account-store to generate password"/>
  <int value="5"
      label="(obsolete) Re-Signin to unlock account-stored passwords"/>
  <int value="6" label="WebAuthn credential"/>
  <int value="7" label="Sign in with another WebAuthn device"/>
  <int value="8" label="Backup password"/>
  <int value="9" label="Trouble signing in"/>
  <int value="10" label="WebAuthn passkey QR code"/>
</enum>

<enum name="PasswordDropdownState">
  <int value="0" label="Password suggestions"/>
  <int value="1" label="Passwords and generate new password"/>
</enum>

<enum name="PasswordExportEvent">
  <int value="0" label="The user selected password export option"/>
  <int value="1" label="Password export dismissed by the user"/>
  <int value="2" label="Password export confirmed by the user"/>
</enum>

<enum name="PasswordFillingReauthPromoShown">
  <int value="0" label="Not shown"/>
  <int value="1" label="Shown among other suggestions"/>
  <int value="2" label="Shown alone"/>
</enum>

<enum name="PasswordFormHadUsernameField">
  <int value="0" label="No username field"/>
  <int value="1" label="Username match"/>
</enum>

<enum name="PasswordFormPredictionWaitResult">
  <int value="0" label="Predictions received before timeout"/>
  <int value="1" label="Timed out with one closure outstanding"/>
  <int value="2" label="Timed out with two or more closures outstanding"/>
</enum>

<enum name="PasswordFormType2">
  <int value="0" label="Undefined"/>
  <int value="1" label="Login form"/>
  <int value="2" label="Signup form"/>
  <int value="3" label="Change password form"/>
  <int value="4" label="Reset password form"/>
  <int value="5" label="Single username"/>
</enum>

<enum name="PasswordGenerationEvent">
  <int value="0" label="No sign up form"/>
  <int value="1" label="Local heuristics found sign up form"/>
  <int value="2" label="DEPRECATED: Icon shown"/>
  <int value="3" label="DEPRECATED: Bubble shown"/>
  <int value="4" label="Generation available"/>
  <int value="5" label="DEPRECATED: Generation popup shown"/>
  <int value="6" label="Generated password accepted"/>
  <int value="7" label="DEPRECATED: Editing popup shown"/>
  <int value="8" label="Generated password edited"/>
  <int value="9" label="Generated password deleted"/>
  <int value="10" label="Generated popup shown (limit once per page)"/>
  <int value="11" label="Editing popup shown (limit once per page)"/>
  <int value="12" label="Generation triggered by autocomplete attributes"/>
  <int value="13" label="Generation item in the context menu accepted"/>
  <int value="14" label="Generation item in the context menu shown"/>
  <int value="15" label="Generated password deleted by autofilling"/>
</enum>

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

<enum name="PasswordGenerationPopupShown">
  <int value="0" label="Not shown"/>
  <int value="1" label="Shown automatically"/>
  <int value="2" label="Shown manually"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_form_metrics_recorder.h:PasswordGenerationPopupShown) -->

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

<enum name="PasswordGenerationUserEvent">
  <int value="0" label="Password accepted"/>
  <int value="1" label="Password edited"/>
  <int value="2" label="Password deleted"/>
  <int value="3" label="Password rejected in modal dialog (obsolete)"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/password_form_metrics_recorder.h:GeneratedPasswordStatus) -->

<enum name="PasswordLeakDetectionDialogDismissalReason">
  <int value="0" label="No direct user interaction"/>
  <int value="1" label="Clicked Close"/>
  <int value="2" label="Clicked Check passwords"/>
  <int value="3" label="Clicked Ok"/>
  <int value="4" label="(Deprecated) Clicked Change password automatically"/>
</enum>

<enum name="PasswordLeakDetectionError">
  <int value="0" label="Not signed in"/>
  <int value="1" label="Token request error"/>
  <int value="2" label="Hashing/encryption error"/>
  <int value="3" label="Invalid server response"/>
  <int value="4" label="Network error"/>
  <int value="5" label="Quota limit"/>
</enum>

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

<enum name="PasswordLeakDetectionUrlType">
  <int value="0" label="HTTPS"/>
  <int value="1" label="Localhost"/>
  <int value="2" label="HTTP"/>
  <int value="3" label="Private or Intranet IP"/>
  <int value="4" label="Android App"/>
  <int value="5" label="Other"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/leak_detection/leak_detection_types.h:LeakDetectionUrlType) -->

<enum name="PasswordLeakLookupResponseResult">
  <int value="0" label="Success"/>
  <int value="1" label="Network/server error"/>
  <int value="2" label="Malformed response"/>
</enum>

<enum name="PasswordManagementBubbleInteractions">
  <int value="0" label="Manage passwords button clicked"/>
  <int value="1"
      label="Google Password Manager link clicked in the bubble footer"/>
  <int value="2" label="Credential row without note clicked"/>
  <int value="3" label="Username copied"/>
  <int value="4" label="Password copied"/>
  <int value="5" label="Password revealed"/>
  <int value="6" label="Username edit button clicked"/>
  <int value="7" label="Username added"/>
  <int value="8" label="Note edit button clicked"/>
  <int value="9" label="Note added"/>
  <int value="10" label="Note edited"/>
  <int value="11" label="Note deleted"/>
  <int value="12" label="Credential row with note clicked"/>
  <int value="13" label="Part of a note selected"/>
  <int value="14" label="Full note selected"/>
  <int value="15" label="Part of a note copied"/>
  <int value="16" label="Full note copied"/>
  <int value="17" label="Move password link clicked in details footer"/>
  <int value="18"
      label="Link redirecting to the specific password page clicked"/>
</enum>

<enum name="PasswordManager.MoveToAccountStoreTrigger">
  <summary>
    Triggers that will cause Chrome to offer to move a password from the profile
    store to the account store.
  </summary>
  <int value="0" label="kSuccessfulLoginWithProfileStorePassword">
    The user successfully logged in with a password from the profile store.
    Recorded only on Win/Mac/Linux.
  </int>
  <int value="1" label="kExplicitlyTriggeredInSettings">
    The user explicitly asked to move a password listed in Settings. Recorded on
    iOS/Win/Mac/Linux.
  </int>
  <int value="2" label="kExplicitlyTriggeredForMultiplePasswordsInSettings">
    The user explicitly asked to move multiple passwords at once in Settings.
    Recorded only on Win/Mac/Linux.
  </int>
  <int value="3" label="(obsolete) kUserOptedInAfterSavingLocally">
    After saving a password locally, the user opted in to saving this and future
    passwords in the account. Recorded only on Win/Mac/Linux.
  </int>
  <int value="4"
      label="kExplicitlyTriggeredForSinglePasswordInDetailsInSettings">
    The user explicitly asked to move a password to account store from password
    details page.
  </int>
  <int value="5" label="kExplicitlyTriggeredInPasswordsManagementBubble">
    The user clicked a link in a footer of the manage passwords bubble.
  </int>
</enum>

<enum name="PasswordManager.PasswordGenerationBottomSheet.InteractionResult">
  <int value="0" label="(Deprecated in M132) Used generated password"/>
  <int value="1" label="Rejected generated password"/>
  <int value="2" label="Bottom sheet dismissed from native"/>
  <int value="3" label="Bottom sheet dismissed by user"/>
  <int value="4" label="Accepted - tap password view"/>
  <int value="5" label="Accepted - tap accept button"/>
</enum>

<enum name="PasswordManager.PasswordSharingDesktopActions">
  <int value="0" label="Password details: 'Share' button clicked"/>
  <int value="1" label="Not family member: 'Got it' button clicked"/>
  <int value="2" label="Not family member: 'Create a family group' clicked"/>
  <int value="3" label="No other family members: 'Got it' button clicked"/>
  <int value="4"
      label="No other family members: 'Invite family members' clicked"/>
  <int value="5" label="Error dialog: 'Try again' clicked"/>
  <int value="6" label="Error dialog: canceled"/>
  <int value="7"
      label="Family picker: 'Share' button clicked (1 member selected)"/>
  <int value="8"
      label="Family picker: 'Share' button clicked (&gt;1 member selected)"/>
  <int value="9" label="Family picker: dialog canceled"/>
  <int value="10" label="Family picker: 'View family' clicked"/>
  <int value="11" label="Confirmation dialog: sharing canceled/interrupted"/>
  <int value="12"
      label="(DEPRECATED in M122) Confirmation dialog: 'Learn more' clicked"/>
  <int value="13" label="Confirmation dialog: 'Change password' clicked"/>
  <int value="14" label="Dialog header: 'Help icon button' clicked"/>
  <int value="15" label="Family picker: opened"/>
</enum>

<enum name="PasswordManager.PasswordSharingIOSUserAction">
  <int value="0" label="Password details: 'Share' button clicked"/>
  <int value="1" label="First Run: 'Share' button clicked"/>
  <int value="2" label="First Run: 'Cancel' button clicked"/>
  <int value="3" label="First Run: 'Learn more' link clicked"/>
  <int value="4"
      label="Family picker: 'Share' button clicked (1 member selected)"/>
  <int value="5"
      label="Family picker: 'Share' button clicked (&gt;1 member selected)"/>
  <int value="6"
      label="Family picker: Ineligible recipient 'Learn more' link clicked"/>
  <int value="7" label="Family promo: 'Create family group' link clicked"/>
  <int value="8" label="Family promo: 'Invite family members' link clicked"/>
  <int value="9" label="Family promo: 'Got it' button clicked"/>
  <int value="10" label="Confirmation dialog: 'Cancel' button clicked"/>
  <int value="11" label="Confirmation dialog: 'Learn more' link clicked"/>
  <int value="12" label="Confirmation dialog: 'Change password' link clicked"/>
  <int value="13" label="Confirmation dialog: 'Done' button clicked"/>
  <int value="14" label="Family picker: opened"/>
</enum>

<enum name="PasswordManager.ProcessIncomingPasswordSharingInvitationResult">
  <int value="0" label="Auto-approved"/>
  <int value="1" label="No password store"/>
  <int value="2" label="Credentials exist with same password"/>
  <int value="3" label="Credentials exist with different password"/>
  <int value="4"
      label="Credentials exist shared from same sender with same password"/>
  <int value="5"
      label="Credentials exist shared from same sender with different
             password"/>
  <int value="6"
      label="Credentials exist shared from different sender with same
             password"/>
  <int value="7"
      label="Credentials exist shared from different sender with different
             password"/>
  <int value="8" label="Invalid credentials"/>
</enum>

<enum name="PasswordManager.SurfaceVisit">
  <int value="0" label="Opened Password Manager Main Page"/>
  <int value="1" label="Opened Password Details Page"/>
  <int value="2" label="Opened Password Checkup Home Page"/>
  <int value="3" label="Opened Password Issues Page"/>
  <int value="4" label="Opened Password Settings Page"/>
  <int value="5" label="Opened Add Password Page"/>
</enum>

<enum name="PasswordManagerClassificationCorrectness">
  <int value="0" label="Unknown"/>
  <int value="1" label="Correct"/>
  <int value="2" label="Wrong"/>
</enum>

<enum name="PasswordManagerEditsInSaveBubbleEnum">
  <int value="0" label="Username unchanged, password unchanged"/>
  <int value="1" label="Username changed, password unchanged"/>
  <int value="2" label="Username unchanged, password changed"/>
  <int value="3" label="Username changed, password changed"/>
</enum>

<enum name="PasswordManagerEnableState">
  <int value="0" label="Credentials Service enabled by default"/>
  <int value="1" label="Credentials Service enabled by the user"/>
  <int value="2" label="Credentials Service enabled by extension"/>
  <int value="3" label="Credentials Service enabled by policy"/>
  <int value="4" label="Credentials Service enabled by recommended policy"/>
  <int value="5" label="Credentials Service enabled by other"/>
  <int value="6" label="Credentials Service disabled by the user"/>
  <int value="7" label="Credentials Service disabled By extension"/>
  <int value="8" label="Credentials Service disabled by policy"/>
  <int value="9" label="Credentials Service disabled by recommended policy"/>
  <int value="10" label="Credentials Service disabled by other"/>
</enum>

<enum name="PasswordManagerFilledAndroidCredentials">
  <int value="0" label="NOT from Android"/>
  <int value="1" label="From Android"/>
</enum>

<enum name="PasswordManagerFillingAssistance">
  <int value="0" label=":-D Credential fields filled automatically"/>
  <int value="1"
      label=":-) Credential fields filled manually (but none required typing)"/>
  <int value="2"
      label=":-| Password filled (automatically or manually), known username
             was typed"/>
  <int value="3" label=":-( Saved password was typed"/>
  <int value="4"
      label=":-X Unknown password typed, some saved credentials existed"/>
  <int value="5"
      label=":-X Unknown password typed, no saved credentials existed"/>
  <int value="6" label="%-) Neither filling nor user input">
    For example, it might be because of 3rd party password managers.
  </int>
  <int value="7"
      label=":-X Unknown password typed, no saved credentials existed and
             site was explicitly blocklisted"/>
  <int value="8"
      label=":-X Unknown password typed, no saved credentials existed and
             site is blocklisted by the smart bubble"/>
  <int value="9" label=":-| User used manual fallback to fill the form"/>
</enum>

<enum name="PasswordManagerFillingSource">
  <int value="0"
      label="Typed manually (i.e. filled from neither the account-scoped nor
             the profile-scoped store"/>
  <int value="1" label="Filled from the profile-scoped store"/>
  <int value="2" label="Filled from the account-scoped store"/>
  <int value="3"
      label="Filled from both in the profile-scoped and the account-scoped
             store"/>
</enum>

<enum name="PasswordManagerFirstRendererFillingResult">
  <int value="0" label="Success"/>
  <int value="1" label="No password element">
    The password element to be filled has not been found.
  </int>
  <int value="2" label="Blocked by frame hierarchy">
    Filling only happens in iframes if all parent frames PSL-match the security
    origin of the iframe containing the password field.
  </int>
  <int value="3" label="Password element is not autocompleteable">
    Passwords are not filled into fields that are not editable.
  </int>
  <int value="4" label="Username prefilled with incompatible value">
    The username field contains a string that does not match the username of any
    available credential. This typically indicates placeholder values.
  </int>
  <int value="5" label="Found no password for username">
    No credential was filled due to mismatches with the username. This can
    happen in a number of cases: In case the username field is empty and
    readonly. In case of a username-first-flow where a user's credentials do
    contain a username but the form contains only a password field and no
    username field. In case of change password forms that contain no username
    field. In case the user name is given on a page but only PSL matched
    credentials exist for this username. There may be further cases.
  </int>
  <int value="6" label="Wait for username">
    Renderer was instructed to wait until user has manually picked a credential.
    This happens for example if the session is an incognito session, the
    credendial's URL matches the mainframe only via the PSL, the site is on
    HTTP, or the form has no current password field.
    PasswordManager.FirstWaitForUsernameReason records the root causes.
  </int>
  <int value="7" label="No fillable elements found">
    No fillable elements were found, only possible for the old form parser.
  </int>
</enum>

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

<enum name="PasswordManagerFirstWaitForUsernameReason">
  <int value="0" label="Don't wait"/>
  <int value="1" label="Incognito mode">
    User is browsing in incognito mode.
  </int>
  <int value="2" label="Public suffix match">
    A credential exists for a PSL matched site but not for the current security
    origin.
  </int>
  <int value="3" label="Form not good for filling">
    Form is suspected to be a password change form. (Only recorded for old form
    parser)
  </int>
  <int value="4" label="Insecure Origin">
    User is on a site with an insecure main frame origin.
  </int>
  <int value="5" label="Touch To Fill (obsolete)">
    User is browsing with the Touch To Fill feature enabled.
  </int>
  <int value="6" label="Fill On Select">
    User is browsing with the Fill On Select feature enabled.
  </int>
  <int value="7" label="Reauth required (obsolete)">
    Re-authenticaion for filling passwords is required.
  </int>
  <int value="8" label="Password is already filled">
    Password field is already filled in and it doesn't look like a placeholder.
  </int>
  <int value="9" label="Affiliated website">
    A credential exists for an affiliated matched site but not for the current
    security origin.
  </int>
  <int value="10" label="Accepts WebAuthn credentials">
    The form acccepts WebAuthn credentials from an active WebAuthn request.
  </int>
  <int value="11" label="Biometric authentication">
    User needs to reauthenticate using biometric.
  </int>
  <int value="12" label="Cross origin iframe">
    The form is in a cross origin iframe.
  </int>
  <int value="13" label="Grouped match">
    The only available credential is weakly affiliated.
  </int>
  <int value="14" label="Single username form">
    The form is a single username form.
  </int>
  <int value="15" label="Actor task ongoing">
    An actor task is ongoing on the page.
  </int>
  <int value="16" label="Password change ongoing">
    Password change is ongoing on the page.
  </int>
</enum>

<!-- LINT.ThenChange(/components/password_manager/core/browser/password_form_metrics_recorder.h:WaitForUsernameReason) -->

<enum name="PasswordManagerHttpCredentialType">
  <summary>
    This enum records the type of a given HTTP credential. Depending on its
    username and the password, an HTTP credential can have no matching, an
    equivalent or a conflicting HTTPS credentials. Also the corresponding
    website can be served with or without HSTS enabled.
  </summary>
  <int value="0" label="Conflicting HTTPS, HSTS disabled"/>
  <int value="1" label="Conflicting HTTPS, HSTS enabled"/>
  <int value="2" label="Equivalent HTTPS, HSTS disabled"/>
  <int value="3" label="Equivalent HTTPS, HSTS enabled"/>
  <int value="4" label="No Matching HTTPS, HSTS disabled"/>
  <int value="5" label="No Matching HTTPS, HSTS enabled"/>
</enum>

<enum name="PasswordManagerImportEntryStatus">
  <int value="0" label="None"/>
  <int value="1" label="Unknown error"/>
  <int value="2" label="Missing password"/>
  <int value="3" label="Missing URL"/>
  <int value="4" label="Invalid URL"/>
  <int value="5" label="Non-ASCII URL (Deprecated)"/>
  <int value="6" label="Long URL"/>
  <int value="7" label="Long password"/>
  <int value="8" label="Long username"/>
  <int value="9" label="Conflict profile"/>
  <int value="10" label="Conflict account"/>
  <int value="11" label="Long note"/>
  <int value="12" label="Long concatenated note"/>
  <int value="13" label="Valid"/>
</enum>

<enum name="PasswordManagerImportResultsStatus">
  <int value="0" label="None"/>
  <int value="1" label="Unknown error"/>
  <int value="2" label="Success"/>
  <int value="3" label="I/O error"/>
  <int value="4" label="Bad format"/>
  <int value="5" label="Dismissed"/>
  <int value="6" label="Chosen file exceeds max file size"/>
  <int value="7" label="Import already active"/>
  <int value="8" label="Number of allowed passwords exceeded"/>
  <int value="9" label="Conflicts need to be resolved by the user."/>
</enum>

<enum name="PasswordManagerMatchedFormType">
  <int value="0" label="Exact match"/>
  <int value="1" label="Public suffix match">
    A credential exists for a PSL matched site but not for the current security
    origin.
  </int>
  <int value="2" label="Affiliated android app">
    A credential exists for an affiliated android app but not for the current
    security origin. This is provided as a credential sharing affiliation by
    AffiliationService.
  </int>
  <int value="3" label="Affiliated website">
    A credential exists for an affiliated site but not for the current security
    origin. This is provided as a credential sharing affiliation by
    AffiliationService.
  </int>
  <int value="4" label="Grouped (Deprecated in M129)">
    A credential exists for another entity, which is grouped with the current
    domain by the AffiliationService through a grouping affiliation.
  </int>
  <int value="5" label="Grouped android app">
    A credential exists for an android application, which is grouped with the
    current domain by the AffiliationService through a grouping affiliation.
  </int>
  <int value="6" label="Grouped website">
    A credential exists for a website, which is grouped with the current domain
    by the AffiliationService through a grouping affiliation.
  </int>
</enum>

<enum name="PasswordManagerOfferedAndroidCredentials">
  <int value="0" label="None from Android"/>
  <int value="1" label="1+ from Android"/>
</enum>

<enum name="PasswordManagerPromoCard">
  <int value="0" label="Checkup promo"/>
  <int value="1" label="Web password manager promo"/>
  <int value="2" label="Add shortcut promo"/>
  <int value="3" label="Access on any device promo"/>
  <int value="4" label="Relaunch Chrome"/>
  <int value="5" label="Move passwords"/>
  <int value="6" label="(Obsolete) Enable screenlock reauth before filling"/>
  <int value="7" label="Passkey unlock promo"/>
</enum>

<enum name="PasswordManagerShortcutMetric">
  <int value="0" label="User clicked Add shortcut from the UI."/>
  <int value="1" label="Shortcut was successfully installed."/>
  <int value="2"
      label="User switched profile in the standalone password manager app."/>
</enum>

<enum name="PasswordManagerSyncingAccountState">
  <summary>
    The value is a combination of the current sync state and if the user has
    their sync password saved.
  </summary>
  <int value="0" label="Syncing/Sync password not saved"/>
  <int value="1" label="Syncing/Sync password saved"/>
  <int value="2" label="Not Syncing/Sync password not saved"/>
  <int value="3"
      label="Not Syncing/Sync pasword saved. This value should not happen."/>
</enum>

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

<enum name="PasswordManagerUIDismissalReason">
  <int value="0" label="Bubble lost focus / No infobar interaction"/>
  <int value="1" label="Clicked 'Save'/'Update'/'Move'/etc"/>
  <int value="2" label="Clicked 'Nope'"/>
  <int value="3" label="Clicked 'Never'"/>
  <int value="4"
      label="Clicked 'Manage passwords' in the passwords for domain bubble"/>
  <int value="5" label="Clicked 'Done' (obsolete)"/>
  <int value="6" label="Clicked 'Unblocklist' (obsolete)"/>
  <int value="7" label="Clicked 'OK' (obsolete)"/>
  <int value="8" label="Clicked on a credential (obsolete)"/>
  <int value="9" label="Auto-signin toast timeout"/>
  <int value="10" label="Auto-signin toast clicked (obsolete)"/>
  <int value="11" label="Clicked 'Google Smart Lock' (obsolete)"/>
  <int value="12" label="Clicked the link passwords.google.com"/>
  <int value="13"
      label="Clicked 'Manage Password' in password details bubble."/>
  <int value="14"
      label="Clicked 'Got it' in passkey deleted confirmation bubble."/>
  <int value="15"
      label="Clicked 'About password change' link in the password change
             bubble."/>
  <int value="16" label="Clicked 'Not now' in the save password bubble."/>
</enum>

<!-- LINT.ThenChange(/components/password_manager/core/browser/password_manager_metrics_util.h:UIDismissalReason) -->

<enum name="PasswordNoteAction">
  <int value="0"
      label="A new credential is added from settings, with the note field not
             empty"/>
  <int value="1"
      label="Note changed from empty to non-empty from the password edit
             dialog in settings"/>
  <int value="2"
      label="Note changed from non-empty to another non-empty value from the
             password edit dialog in settings"/>
  <int value="3"
      label="Note changed from non-empty to empty from the password edit
             dialog in settings"/>
  <int value="4" label="Note did not change"/>
</enum>

<enum name="PasswordProtectionReferringAppSource">
  <int value="0" label="Source unspecified"/>
  <int value="1" label="Known app id"/>
  <int value="2" label="Unknown app id"/>
  <int value="3" label="Activity referrer"/>
</enum>

<enum name="PasswordProtectionRequestOutcome">
  <int value="0" label="Unknown"/>
  <int value="1" label="Succeeded"/>
  <int value="2" label="Canceled"/>
  <int value="3" label="Timed out"/>
  <int value="4" label="Matched allowlist"/>
  <int value="5" label="Response already cached"/>
  <int value="6" label="DEPRECATED: Not extended reporting user"/>
  <int value="7" label="Disabled due to incognito"/>
  <int value="8" label="Request malformed"/>
  <int value="9" label="Fetch failed"/>
  <int value="10" label="Response malformed"/>
  <int value="11" label="Service destroyed"/>
  <int value="12" label="Disabled due to feature disabled"/>
  <int value="13" label="Disabled due to user population"/>
  <int value="14" label="URL not valid for reputation computing"/>
  <int value="15" label="URL matched enterprise allowlist"/>
  <int value="16" label="URL matched enterprise change password URL"/>
  <int value="17" label="URL matched enterprise login URL"/>
  <int value="18" label="Password Alert mode: no need to send ping"/>
  <int value="19" label="Turned off by enterprise admin"/>
  <int value="20" label="SafeBrowsing disabled"/>
  <int value="21" label="User not signed in"/>
  <int value="22" label="Country is excluded from Safe Browsing"/>
</enum>

<enum name="PasswordProtectionVerdict">
  <int value="0" label="Verdict not specified"/>
  <int value="1" label="Safe"/>
  <int value="2" label="Low reputation"/>
  <int value="3" label="Phishing"/>
</enum>

<enum name="PasswordProtectionWarningAction">
  <int value="0" label="Shown"/>
  <int value="1" label="Change password"/>
  <int value="2" label="Ignore"/>
  <int value="3" label="Close"/>
  <int value="4" label="Mark as legitimate"/>
</enum>

<enum name="PasswordReusePasswordFieldDetected">
  <int value="0" label="No password field"/>
  <int value="1" label="Has password field"/>
</enum>

<enum name="PasswordStoreAndroidBackendAPIError">
  <int value="4" label="SIGN_IN_REQUIRED"/>
  <int value="5" label="INVALID_ACCOUNT"/>
  <int value="6" label="RESOLUTION_REQUIRED"/>
  <int value="7" label="NETWORK_ERROR"/>
  <int value="8" label="INTERNAL_ERROR"/>
  <int value="10" label="DEVELOPER_ERROR"/>
  <int value="17" label="API_NOT_CONNECTED"/>
  <int value="19" label="REMOTE_EXCEPTION"/>
  <int value="20" label="CONNECTION_SUSPENDED_DURING_CALL"/>
  <int value="22" label="RECONNECTION_TIMED_OUT"/>
  <int value="11000" label="PASSPHRASE_REQUIRED"/>
  <int value="11004" label="ACCESS_DENIED"/>
  <int value="11005" label="AUTH_ERROR_RESOLVABLE"/>
  <int value="11006" label="AUTH_ERROR_UNRESOLVABLE"/>
  <int value="11008" label="BAD_REQUEST"/>
  <int value="11009" label="BACKEND_GENERIC"/>
  <int value="11010" label="BACKEND_RESOURCE_EXHAUSTED"/>
  <int value="11011" label="INVALID_DATA"/>
  <int value="11012" label="UNMAPPED_ERROR_CODE"/>
  <int value="11013" label="UNEXPECTED_ERROR"/>
  <int value="11014" label="KEY_RETRIEVAL_REQUIRED"/>
  <int value="11015" label="DATA_HOLDER_CREATION_ERROR"/>
  <int value="11016" label="EXTERNAL_API_EXCEPTION"/>
  <int value="11017" label="EXTERNAL_INVALID_LOCAL_KEYS"/>
  <int value="11018" label="DATABASE_ERROR"/>
  <int value="11019" label="EMPTY_SECURITY_DOMAIN"/>
  <int value="11020" label="IRRETRIEVABLE_SECURITY_DOMAIN"/>
  <int value="43502" label="CHROME_SYNC_API_CALL_ERROR"/>
  <int value="43504" label="ERROR_WHILE_DOING_LEAK_CHECK_SERVICE_GRPC"/>
  <int value="43507" label="REQUIRED_SYNCED_ACCOUNT_MISSING"/>
  <int value="43508" label="LEAK_CHECK_SERVICE_AUTH_ERROR"/>
  <int value="43509" label="LEAK_CHECK_SERVICE_RESOURCE_EXHAUSTED"/>
</enum>

<enum name="PasswordStoreAndroidBackendConnectionResultCode">
  <int value="0" label="SUCCESS"/>
  <int value="1" label="SERVICE_MISSING"/>
  <int value="2" label="SERVICE_VERSION_UPDATE_REQUIRED"/>
  <int value="3" label="SERVICE_DISABLED"/>
  <int value="4" label="SIGN_IN_REQUIRED"/>
  <int value="5" label="INVALID_ACCOUNT"/>
  <int value="6" label="RESOLUTION_REQUIRED"/>
  <int value="7" label="NETWORK_ERROR"/>
  <int value="8" label="INTERNAL_ERROR"/>
  <int value="9" label="SERVICE_INVALID"/>
  <int value="10" label="DEVELOPER_ERROR"/>
  <int value="11" label="LICENSE_CHECK_FAILED"/>
  <int value="13" label="CANCELED"/>
  <int value="14" label="TIMEOUT"/>
  <int value="15" label="INTERRUPTED"/>
  <int value="16" label="API_UNAVAILABLE"/>
  <int value="17" label="SIGN_IN_FAILED"/>
  <int value="18" label="SERVICE_UPDATING"/>
  <int value="19" label="SERVICE_MISSING_PERMISSION"/>
  <int value="20" label="RESTRICTED_PROFILE"/>
  <int value="21" label="API_VERSION_UPDATE_REQUIRED"/>
  <int value="22" label="RESOLUTION_ACTIVITY_NOT_FOUND"/>
  <int value="23" label="API_DISABLED"/>
  <int value="24" label="API_DISABLED_FOR_CONNECTION"/>
</enum>

<enum name="PasswordStoreAndroidBackendError">
  <int value="0" label="Error can't be categorized."/>
  <int value="1" label="API was called without a context."/>
  <int value="2" label="API was called without an account."/>
  <int value="3" label="Profile isn't initialized yet."/>
  <int value="4" label="Sync service isn't available yet."/>
  <int value="5" label="API was called with passphrase."/>
  <int value="6" label="GMS Core version is not supported."/>
  <int value="7" label="API was successfully called, but returned an error."/>
  <int value="8" label="API was successfully called, but result is unknown."/>
  <int value="9" label="Downstream implementation not available."/>
  <int value="10"
      label="Failed to create FacetId to obtain affiliated matches."/>
  <int value="11" label="Job cancelled because the sync state changed"/>
</enum>

<enum name="PasswordStoreAndroidBackendRequestStatus">
  <int value="0" label="Requested"/>
  <int value="1" label="Timeout"/>
  <int value="2" label="Completed"/>
  <int value="3" label="Cancelled: password sync status changed"/>
</enum>

<enum name="PasswordStoreBackendErrorType">
  <int value="0" label="Uncategorized"/>
  <int value="1" label="AuthErrorResolvable"/>
  <int value="2" label="AuthErrorUnresolvable"/>
  <int value="3" label="KeychainError"/>
  <int value="4" label="KeyRetrievalRequired"/>
  <int value="5" label="(obsolete) GMSCoreOutdatedSavingDisabled"/>
  <int value="6" label="(obsolete) GMSCoreOutdatedSavingPossible"/>
  <int value="7" label="EmptySecurityDomain"/>
  <int value="8" label="IrretrievableSecurityDomain"/>
  <int value="9" label="NeedsPassphrase"/>
</enum>

<enum name="PasswordSubmissionEvent">
  <int value="0" label="Password submission succeeded"/>
  <int value="1" label="Password submission failed"/>
  <int value="2" label="Password not submitted"/>
  <int value="3" label="Generated password overridden by a non-generated one"/>
  <int value="4" label="Password used"/>
  <int value="5" label="Generated password submission failed"/>
</enum>

<enum name="PasswordSyncMetadataReadError">
  <int value="0" label="None"/>
  <int value="1" label="DB Not Available"/>
  <int value="2" label="Reading failure"/>
  <int value="3" label="Reading success but metadata cleaned for initial sync"/>
  <int value="4"
      label="Reading success but metadata cleaned to resolve inconsistencies
             in the cache of unsupported proto fields"/>
  <int value="5"
      label="Reading successful, but the browser has just been upgraded to a
             version that supports passwords notes. Therefore, the metadata
             are cleared to enforce the initial sync flow and download any
             potential passwords notes on the server"/>
  <int value="6"
      label="(Obsolete) Reading successful, but suspicious bulk deletions
             were detected. To err on the side of safety, drop all password
             sync metadata and start again."/>
  <int value="7"
      label="Reading successful, but undecryptable passwords were detected.
             To err on the side of safety, drop all password sync metadata
             and start again."/>
</enum>

<enum name="PasswordSyncState">
  <int value="0" label="Syncing OK"/>
  <int value="1" label="Read failed"/>
  <int value="2" label="Duplcate tags"/>
  <int value="3" label="Server failed"/>
  <int value="4" label="Cleanup failed"/>
  <int value="5" label="Decryption failed"/>
  <int value="6" label="Add failed"/>
  <int value="7" label="Update failed"/>
  <int value="8" label="Metadata persistence failed"/>
</enum>

<enum name="PasswordUpdateLoginSyncError">
  <int value="0" label="None"/>
  <int value="1" label="DB Not Available"/>
  <int value="2" label="No Records were Updated"/>
  <int value="3" label="Encryption Service Failure"/>
  <int value="4" label="DB Error"/>
</enum>

<enum name="PasswordViewPageInteractions">
  <int value="0" label="Credential row is clicked to open password view page"/>
  <int value="1"
      label="The user opens the password view page to view an existing
             credential."/>
  <int value="2"
      label="The user opens the password view page to view an non-existing
             credential"/>
  <int value="3" label="Copy username button clicked"/>
  <int value="4" label="Copy password button clicked"/>
  <int value="5" label="Show password button clicked"/>
  <int value="6" label="Edit password button clicked"/>
  <int value="7" label="Delete password button clicked"/>
  <int value="8" label="Credential username, password or note edited"/>
  <int value="9"
      label="The password view page authentication timed out while the edit
             dialog is open"/>
  <int value="10"
      label="The password view page authentication timed out while the edit
             dialog is closed"/>
  <int value="11" label="The credential is requested by typing the URL."/>
  <int value="12" label="Passkey copy display name button clicked"/>
  <int value="13" label="Passkey card delete button clicked"/>
  <int value="14" label="Passkey edit button clicked"/>
  <int value="15" label="Change password button clicked"/>
</enum>

<enum name="PasswordVsOtpFormType">
  <int value="0"
      label="Form without password and OTP fields (e.g. single username form)"/>
  <int value="2" label="Password form"/>
  <int value="4" label="OTP form"/>
  <int value="6" label="Password + OTP form"/>
</enum>

<enum name="PasswordWeaknessScore">
  <int value="0" label="Too guessable password"/>
  <int value="1" label="Very guessable password"/>
  <int value="2" label="Somewhat guessable password"/>
  <int value="3" label="Safely unguessable password"/>
  <int value="4" label="Very unguessable password"/>
</enum>

<enum name="ProactivePasswordGenerationBottomSheetTransitionType">
  <int value="0" label="Silenced"/>
  <int value="1" label="Unsilenced"/>
</enum>

<enum name="ProvisionalSaveFailure">
  <summary>Reason why a provisional save failed.</summary>
  <int value="0" label="SAVING_DISABLED"/>
  <int value="1" label="EMPTY_PASSWORD"/>
  <int value="2" label="NO_MATCHING_FORM"/>
  <int value="3" label="MATCHING_NOT_COMPLETE"/>
  <int value="4" label="INVALID_FORM"/>
  <int value="5" label="SYNC_CREDENTIALS"/>
  <int value="6" label="SAVING_ON_HTTP_AFTER_HTTPS"/>
</enum>

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

<enum name="RemoteActorCredentialSharingResult">
  <int value="0" label="Other error"/>
  <int value="1" label="Success"/>
  <int value="2" label="User identity or sync state invalid"/>
  <int value="3" label="No sync or account storage"/>
  <int value="4" label="No passwords found"/>
  <int value="5" label="User cancelled dialog"/>
  <int value="6" label="Authenticator failed"/>
  <int value="7" label="Sharing service unavailable"/>
  <int value="8" label="Sharing failed"/>
  <int value="9" label="Request already in progress"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/remote_actor/remote_actor_credential_sharing_impl.h:RemoteActorCredentialSharingResult) -->

<enum name="ReusedPasswordType">
  <int value="0" label="Saved password"/>
  <int value="1" label="Primary account password"/>
  <int value="2" label="Other Gaia password"/>
  <int value="3" label="Enterprise password"/>
  <int value="4" label="Unknown password"/>
</enum>

<enum name="SharedPrefCredentialsAccessOutcome">
  <int value="0" label="No credentials"/>
  <int value="1" label="Parse error"/>
  <int value="2" label="Bad type"/>
  <int value="3" label="Empty credentials"/>
  <int value="4" label="Login match"/>
  <int value="5" label="Login mismatch"/>
</enum>

<enum name="SingleUsernameFillingAssistance">
  <int value="0" label=":-D Username filled automatically"/>
  <int value="1"
      label=":-) Username filled manually (but none required typing)"/>
  <int value="2" label=":-( Saved username was typed"/>
  <int value="3"
      label=":-X Unknown username typed, some saved credentials existed"/>
  <int value="4"
      label=":-X Unknown username typed, no saved credentials existed"/>
  <int value="5"
      label=":-X Unknown username typed, no saved credentials existed and
             site was explicitly blocklisted"/>
  <int value="6"
      label=":-X Unknown username typed, no saved credentials existed and
             site is blocklisted by the smart bubble"/>
  <int value="7" label="%-) Neither filling nor user input">
    For example, it might be because of 3rd party password managers.
  </int>
  <int value="8" label=":-) User used manual fallback to fill the form"/>
</enum>

<enum name="StoreAffiliationResult">
  <int value="0" label="Success"/>
  <int value="1" label="Failed to start transaction"/>
  <int value="2" label="Failed to close transaction"/>
  <int value="3" label="Failed to add set"/>
  <int value="4" label="Failed to add affiliation"/>
  <int value="5" label="Failed to add group"/>
</enum>

<enum name="SubmissionIndicatorEvent">
  <int value="0" label="No submission"/>
  <int value="1" label="HTML form submission"/>
  <int value="2" label="Same document navigation"/>
  <int value="3" label="XHR succeeded"/>
  <int value="4" label="Frame detached"/>
  <int value="5" label="(obsolete) By context menu"/>
  <int value="6" label="(obsolete) DOM mutation after XHR"/>
  <int value="7"
      label="(obsolete) Provisionally saved form on start provisional load"/>
  <int value="8" label="(obsolete) Filled form on start provisional load"/>
  <int value="9"
      label="(obsolete) Filled input elements on start provisional load"/>
  <int value="10" label="Probable form submission"/>
  <int value="11" label="Change password form cleared"/>
  <int value="12" label="DOM mutation after Autofill"/>
</enum>

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

<enum name="SubmissionOutcome">
  <int value="0" label="Uncategorized Error"/>
  <int value="1" label="Successful Outcome"/>
  <int value="2" label="Unknown Outcome"/>
  <int value="3" label="Error - old password was incorrect"/>
  <int value="4" label="Error - old passwords don't match"/>
  <int value="5" label="Error - new password incorrect"/>
  <int value="6" label="Error - page error"/>
  <int value="7" label="No Response"/>
  <int value="8" label="Could not parse response"/>
  <int value="9" label="User intervention needed"/>
</enum>

<!-- LINT.ThenChange(/chrome/browser/password_manager/password_change/password_change_submission_verifier.h:SubmissionOutcome)-->

<enum name="SubmittedPasswordFormFrame">
  <int value="0" label="Main frame"/>
  <int value="1" label="Iframe with the same url as main frame"/>
  <int value="2" label="Iframe with different url and the same signon realm"/>
  <int value="3" label="(obsolete) Iframe with different signon realm"/>
  <int value="4" label="Iframe with PSL matched signon realm"/>
  <int value="5"
      label="Iframe with different and not PSL matched signon realm"/>
</enum>

<enum name="TouchToFill.Outcome">
  <int value="0" label="Credenential is filled"/>
  <int value="1" label="Sheet is dismissed"/>
  <int value="2" label="Reauthentication failed"/>
  <int value="3" label="'Manage Passwords' was selected"/>
  <int value="4" label="Passkey was selected"/>
  <int value="5" label="Hybrid passkey sign-in was selected"/>
</enum>

<enum name="TouchToFill.SubmissionReadiness">
  <int value="0" label="No information"/>
  <int value="1" label="Error occurred"/>
  <int value="2" label="Username field not found"/>
  <int value="3" label="Fields between username and password fields"/>
  <int value="4" label="Field after the password field"/>
  <int value="5" label="Empty fields in the form"/>
  <int value="6" label="More than two fields in the form"/>
  <int value="7" label="2-field form (username+password)"/>
  <int value="8" label="Password field not found"/>
  <int value="9" label="Form likely has a CAPTCHA"/>
</enum>

<enum name="TouchToFillPasswordGenerationTriggerOutcome">
  <int value="0" label="Shown"/>
  <int value="1" label="Stored credentials present, not shown"/>
  <int value="2" label="Was already dismissed max times, not shown"/>
  <int value="3" label="Already shown once for this page, not shown"/>
  <int value="4" label="UI error, not shown"/>
</enum>

<enum name="UsernameDetectionMethod">
  <int value="0" label="No username detected"/>
  <int value="1" label="Base heuristic"/>
  <int value="2" label="HTML based classifier"/>
  <int value="3" label="'autocomplete' attribute"/>
  <int value="4" label="Server-side prediction"/>
  <int value="5" label="Client-side model prediction"/>
</enum>

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

<enum name="WellKnownChangePasswordResult">
  <int value="0" label="Fallback to Origin"/>
  <int value="1" label="Fallback to Url Override"/>
  <int value="2" label="Well-Known supported"/>
</enum>

<!-- LINT.ThenChange(//components/password_manager/core/browser/well_known_change_password/well_known_change_password_util.h:WellKnownChangePasswordResult) -->

</enums>

</histogram-configuration>
