<!--
Copyright 2020 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 is used to generate a comprehensive list of Autofill histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
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
[email protected].
-->
<histogram-configuration>
<histograms>
<variants name="Autofill.Ablation.FormType">
<variant name="Address" summary="The form is an address form."/>
<variant name="CreditCard" summary="The form is a credit card form."/>
</variants>
<variants name="Autofill.Ablation.Group">
<variant name="ConditionalAblation"
summary="The sample is recorded only when there was data available to
be filled and it was assigned to the ablation case."/>
<variant name="ConditionalControl"
summary="The sample is recorded only when there was data available to
be filled and it was assigned to the control case."/>
<variant name="UnconditionalAblation"
summary="The sample is recorded regardless whether data was available
to be filled and assigned to the ablation case."/>
<variant name="UnconditionalControl"
summary="The sample is recorded regardless whether data was available
to be filled and assigned to the control case."/>
</variants>
<variants name="Autofill.BetterAuthFlowType">
<variant name="Cvc" summary="CVC authentication only"/>
<variant name="CvcFallbackFromFido"
summary="CVC fallback from FIDO authentication"/>
<variant name="CvcThenFido" summary="CVC followed by FIDO authentication"/>
<variant name="Fido" summary="FIDO authentication only"/>
<variant name="Otp" summary="OTP auth only"/>
<variant name="OtpFallbackFromFido"
summary="OTP fallback from FIDO authentication"/>
</variants>
<variants name="Autofill.CardMetadataVisible">
<variant name="ArtImageShown" summary="Only art image was visible"/>
<variant name="MetadataNotShown" summary="No metadata was visible"/>
<variant name="ProductDescriptionAndArtImageShown"
summary="Both product description and art image were visible"/>
<variant name="ProductDescriptionShown"
summary="Only product description was visible"/>
</variants>
<variants name="Autofill.CreditCardIssuerId">
<variant name="Amex" summary="card issued by American Express"/>
<variant name="Anz" summary="card issued by ANZ"/>
<variant name="CapitalOne" summary="card issued by Capital One"/>
<variant name="Chase" summary="card issued by JP Morgan Chase"/>
<variant name="Citi" summary="card issued by Citibank"/>
<variant name="Discover" summary="card issued by Discover"/>
<variant name="Lloyds" summary="card issued by American Express"/>
<variant name="Marqeta" summary="card issued by Marqeta"/>
<variant name="Nab" summary="card issued by National Australia Bank"/>
<variant name="Natwest" summary="card issued by Natwest"/>
</variants>
<variants name="Autofill.CreditCardNetwork">
<variant name="Mastercard" summary="card with the Mastercard network."/>
<variant name="Visa" summary="card with the Visa network."/>
</variants>
<variants name="Autofill.DialogError">
<variant name="WithNoTemporaryError"
summary="No temporary error has been shown in the dialog"/>
<variant name="WithPreviousTemporaryError"
summary="A temporary error has been shown in the dialog"/>
</variants>
<variants name="Autofill.FeaturePreviousStrikes">
<variant name="" summary="previous strikes are not considered"/>
<variant name=".WithNoPreviousStrike"
summary="no strike has been logged under the key used for the feature"/>
<variant name=".WithPreviousStrikes"
summary="at least one strike has been logged under the key for the
feature"/>
</variants>
<variants name="Autofill.FormEventWithMetadata">
<variant name="FilledWithMetadata" summary="A card with metadata was filled"/>
<variant name="FilledWithMetadataOnce"
summary="A card with metadata was filled, logged once per page load"/>
<variant name="SelectedWithMetadata"
summary="A card with metadata was selected"/>
<variant name="SelectedWithMetadataOnce"
summary="A card with metadata was selected, logged once per page load"/>
<variant name="ShownWithMetadata" summary="A card with metadata was shown"/>
<variant name="ShownWithMetadataOnce"
summary="A card with metadata was shown, logged once per page load"/>
<variant name="SubmittedWithMetadataOnce"
summary="A form was submitted after a card with metadata was filled.
This event can only be triggered once per page load"/>
<variant name="WillSubmitWithMetadataOnce"
summary="A form was about to be submitted after a card with metadata
was filled. This event can only be triggered once per page
load"/>
</variants>
<variants name="Autofill.MandatoryReauth.AuthenticationMethod">
<variant name="Biometric" summary="biometric auth"/>
<variant name="ScreenLock" summary="screen lock"/>
<variant name="UnknownMethod" summary="an unknown auth type"/>
<variant name="UnsupportedMethod" summary="an unsupported auth type"/>
</variants>
<variants name="Autofill.MandatoryReauth.ChangingStatus">
<variant name="OptIn" summary="Feature is trying to be opted in"/>
<variant name="OptOut" summary="Feature is trying to be opted out"/>
</variants>
<variants name="Autofill.MandatoryReauth.Source">
<variant name="CheckoutFullServerCard"
summary="Feature is trying to be updated from full server card checkout"/>
<variant name="CheckoutLocalCard"
summary="Feature is trying to be updated from local card checkout"/>
<variant name="CheckoutLocalIban"
summary="Feature is trying to be updated from local IBAN checkout"/>
<variant name="CheckoutMaskedServerCard"
summary="Feature is trying to be updated from masked server card
checkout"/>
<variant name="CheckoutServerIban"
summary="Feature is trying to be updated from server IBAN checkout"/>
<variant name="CheckoutVirtualCard"
summary="Feature is trying to be updated from virtual card checkout"/>
<variant name="SettingsPage"
summary="Feature is trying to be updated from the Settings page"/>
<variant name="Unknown"
summary="Feature is trying to be updated from an unknown source"/>
</variants>
<variants name="Autofill.NonInteractivePaymentMethodType">
<variant name="LocalCard" summary="local card"/>
<variant name="LocalIban" summary="local IBAN"/>
<variant name="ServerCard" summary="server card"/>
<variant name="ServerIban" summary="server IBAN"/>
<variant name="UnknownCard" summary="unknown card type"/>
<variant name="VirtualCard" summary="virtual card"/>
</variants>
<variants name="Autofill.OfferNotification.Type">
<variant name="CardLinkedOffer"
summary="The bubble/infobar for an offer that is linked to a credit
card."/>
<variant name="FreeListingCouponOffer"
summary="The bubble/infobar for a merchant promo code offer sourced
from the FreeListingCouponService. Deprecated 07/08/2024."/>
<variant name="GPayPromoCodeOffer"
summary="The bubble/infobar for a promo code offer from GPay."/>
</variants>
<variants name="Autofill.OtpAuth.Type">
<variant name="EmailOtp" summary="The OTP authentication with an email."/>
<variant name="SmsOtp" summary="The OTP authentication with a SMS OTP."/>
</variants>
<variants name="Autofill.PaymentBubble.Show">
<variant name=".FirstShow" summary="first-show"/>
<variant name=".Reshows" summary="re-show"/>
</variants>
<variants name="Autofill.PaymentsRequestType">
<variant name="UnmaskCardRequest" summary="credit card unmask"/>
<variant name="UpdateVirtualCardEnrollment_Enroll" summary="VCN enrollment"/>
<variant name="UploadCardRequest" summary="credit card upload"/>
</variants>
<!-- TODO(crbug.com/40926801): Rename PaymentsRpcCardType since we add LocalCard here. -->
<variants name="Autofill.PaymentsRpcCardType">
<variant name="LocalCard" summary="local card"/>
<variant name="ServerCard" summary="server card"/>
<variant name="UnknownCard" summary="unknown card type"/>
<variant name="VirtualCard" summary="virtual card"/>
</variants>
<variants name="Autofill.PaymentsRpcResult">
<variant name="ClientSideTimeout"
summary="Request took longer time to finish than the set client-side
timeout. The request may still have completed on the server
side."/>
<variant name="Failure"
summary="Request failed during the authentication process. This is not
related to virtual cards."/>
<variant name="NetworkError"
summary="Unable to connect to Payments servers. Prompt user to check
internet connection."/>
<variant name="Success" summary="Request succeeded."/>
<variant name="VcnRetrievalFailure"
summary="Request failed in retrieving the virtual card information."/>
</variants>
<variants name="Autofill.PaymentsSigninState">
<variant name="SignedIn" summary="The user is signed in to Chromium"/>
<variant name="SignedInAndSyncFeatureEnabled"
summary="The user is signed in, has enabled the sync feature and has
not disabled Wallet sync"/>
<variant name="SignedInAndWalletSyncTransportEnabled"
summary="The user is signed in to Chromium and sync transport is active
for Wallet data"/>
<variant name="SignedOut" summary="The user is not signed in to Chromium"/>
<variant name="SyncPaused"
summary="The user has enabled the sync feature, but has then signed
out, so sync is paused"/>
<variant name="Unknown" summary="Unknown state"/>
</variants>
<variants name="Autofill.ProgressDialog.FlowType">
<variant name="3dsFetchVirtualCard"
summary="Progress dialog after the VCN 3DS pop-up has closed"/>
<variant name="ServerCardUnmask"
summary="Progress dialog for the credit card risk-based unmask flow"/>
<variant name="ServerIbanUnmask"
summary="Progress dialog for the server IBAN unmask flow"/>
<variant name="VirtualCardUnmask"
summary="Progress dialog for the VCN Card Unmask Flow"/>
</variants>
<variants name="Autofill.ServerCardUnmaskFlowType">
<variant name="DeviceUnlock" summary="Device unlock authentication"/>
<variant name="Fido" summary="FIDO authentication only"/>
<variant name="Otp" summary="OTP auth only"/>
<variant name="OtpFallbackFromFido"
summary="OTP fallback from FIDO authentication"/>
<variant name="RiskBased" summary="Risk-based authentication"/>
<variant name="UnspecifiedFlowType" summary="No authentication specified"/>
</variants>
<variants name="Autofill.SettingsPage.VirtualCardDialogType">
<variant name="SettingsPageEnrollment"
summary="the virtual card enrollment dialog"/>
<variant name="SettingsPageUnenrollment"
summary="the virtual card unenrollment dialog"/>
</variants>
<variants name="Autofill.ShadowPredictions.SourcePair">
<variant name="DefaultHeuristicToDefaultServer"
summary="the default heuristics, the default server prediction"/>
<variant name="DefaultPatternSourceToMLModel"
summary="the default pattern source, the machine learning model
prediction"/>
<variant name="DefaultServerToMLModel"
summary="the default server, the machine learning model prediction"/>
<variant name="ExperimentalToDefault"
summary="the heuristics being rolled out, the default heuristics"/>
<variant name="LegacyPatternSourceToMLModel"
summary="the legacy pattern source, the machine learning model
prediction"/>
</variants>
<variants name="Autofill.Snackbar.Type">
<variant name="MandatoryReauth"
summary="Snackbar shown after opting into mandatory reauth."/>
<variant name="SaveCardSuccess"
summary="Snackbar shown after card has been successfully saved."/>
<variant name="SaveServerIbanSuccess"
summary="Snackbar shown after a server IBAN has been successfully
saved."/>
<variant name="VirtualCard"
summary="Snackbar shown after virtual card is autofilled."/>
<variant name="VirtualCardEnrollSuccess"
summary="Snackbar shown after virtual card has been successfully
enrolled."/>
</variants>
<variants name="Autofill.TimingPrecise.Callee">
<variant name="ExtractFormData"/>
<variant name="UpdateFormCache"/>
</variants>
<variants name="Autofill.TimingPrecise.Caller">
<variant name="ApplyFieldsAction"/>
<variant name="BatchSelectOrSelectListOptionChange"/>
<variant name="DidChangeScrollOffsetImpl"/>
<variant name="ExtractForm"/>
<variant name="FocusedElementChanged"/>
<variant name="FocusedElementChangedDeprecated"/>
<variant name="GetFormDataFromUnownedInputElements"/>
<variant name="GetFormDataFromWebForm"/>
<variant name="GetSubmittedForm"/>
<variant name="HandleCaretMovedInFormField"/>
<variant name="JavaScriptChangedValue"/>
<variant name="NotifyPasswordManagerAboutClearedForm"/>
<variant name="OnProvisionallySaveForm"/>
<variant name="OnTextFieldDidChange"/>
<variant name="QueryAutofillSuggestions"/>
<variant name="ShowSuggestionPopup"/>
<variant name="UpdateFormCache"/>
<variant name="UpdateLastInteractedElement"/>
</variants>
<variants name="Autofill.VirtualCard.RequestSource">
<variant name="Downstream"
summary="The enrollment change happens after an Autofill Downstream
retrieving the actual card information"/>
<variant name="SettingsPage"
summary="The enrollment change comes from the Chrome payments settings
page"/>
<variant name="Unknown" summary="Unknown source, should not be used"/>
<variant name="Upstream"
summary="The enrollment change happens after an Autofill Upstream
saving the actual card to Google Payments"/>
</variants>
<variants name="Autofill.VirtualCardEnrollmentLinkType">
<variant name="GoogleLegalMessageLink"
summary="The user selected the Google Payments terms of service link."/>
<variant name="IssuerLegalMessageLink"
summary="The user selected the Issuer's terms of service link."/>
<variant name="LearnMoreLink"
summary="The user selected the learn more about virtual cards link."/>
</variants>
<variants name="Autofill.VirtualCardEnrollmentSource">
<variant name="Downstream" summary="credit card unmasking enrollment flow"/>
<variant name="SettingsPage" summary="settings page enrollment flow"/>
<variant name="Unknown" summary="uncategorized enrollment source"/>
<variant name="Upstream" summary="credit card uploading enrollment flow"/>
</variants>
<variants name="AutofillCreditCardSaveType">
<variant name="" summary="aggregated across all situations"/>
<variant name=".RequestingCardholderName"
summary="explicitly requesting cardholder name"/>
<variant name=".RequestingExpirationDate"
summary="explicitly requesting expiration date"/>
<variant name=".SavingWithCvc"
summary="saved security code at the same time"/>
</variants>
<variants name="AutofillFidoAuthenticationEnabledState">
<variant name="OptedIn" summary="FIDO authentication enabled"/>
<variant name="OptedOut" summary="FIDO authentication disabled"/>
</variants>
<variants name="AutofillFieldFillingStats">
<variant name=".Accepted"
summary="The field was autofilled without subsequent corrections."/>
<variant name=".CorrectedToDifferentType"
summary="The field was autofilled but the value was edited into another
non-empty value that was detected to be of different type."/>
<variant name=".CorrectedToEmpty"
summary="The field was autofilled but the value was corrected into the
empty type."/>
<variant name=".CorrectedToSameType"
summary="The field was autofilled but the value was edited into another
non-empty value that was detected to have the same type."/>
<variant name=".CorrectedToUnknownType"
summary="The field was autofilled but the value was edited into another
non-empty value with an unknown type."/>
<variant name=".LeftEmpty" summary="The field was not filled at all."/>
<variant name=".ManuallyFilledToDifferentType"
summary="The field was not autofilled but the user manually entered a
value that was detected to have a different type than the type
the field was predicted to have."/>
<variant name=".ManuallyFilledToSameType"
summary="The field was not autofilled but the user manually entered a
value that was detected to have the same type than the field
was predicted to."/>
<variant name=".ManuallyFilledToUnknownType"
summary="The field was not autofilled but the user manually entered a
value that was detected to have no known type."/>
<variant name=".Total" summary="The total number of fields."/>
<variant name=".TotalCorrected"
summary="The field was autofilled and subsequently corrected by the
user."/>
<variant name=".TotalFilled"
summary="The field was autofilled and either accepted or subsequently
corrected by the user."/>
<variant name=".TotalManuallyFilled"
summary="The field was not autofilled and manually filled by the user."/>
<variant name=".TotalUnfilled"
summary="The field was not autofilled and either manually filled by the
user or left empty."/>
</variants>
<variants name="AutofillFieldPredictionSource">
<variant name=".Heuristic"
summary="Field type predictions using local heuristics."/>
<variant name=".Overall"
summary="Field type prediction as seen by the user after combining the
heuristic and crowd sourced predictions."/>
<variant name=".Server"
summary="Field types based on crowd-sourced prediction fetched from the
Autofill Server"/>
</variants>
<variants name="AutofillFillingMethod">
<variant name=".Any" summary="User chose any of the filling methods."/>
<variant name=".FieldByFieldFilling"
summary="User chose to fill a specific field"/>
<variant name=".FullForm" summary="User chose to fill the full form"/>
<variant name=".GroupFilling"
summary="User chose one of the group filling options"/>
<variant name=".None" summary="No filling method."/>
</variants>
<variants name="AutofillFormType">
<variant name=".Address" summary="Address form"/>
<variant name=".CreditCard" summary="Credit card form"/>
<variant name=".Password" summary="Password form"/>
<variant name=".Unknown" summary="Unknown form type"/>
<variant name=".VirtualCard.StandaloneCvc"
summary="Standalone CVC form for a virtual card saved on file"/>
</variants>
<!-- Subset of variants "AutofillFormType.Fillable". Keep in sync. -->
<variants name="AutofillFormType.Address">
<variant name="Address" summary="Address form"/>
<variant name="EmailOnly" summary="Email-only form"/>
<variant name="PostalAddress" summary="Postal address form"/>
</variants>
<!-- Superset of variants "AutofillFormType.Address". Keep in sync. -->
<variants name="AutofillFormType.Fillable">
<variant name="Address" summary="Address form"/>
<variant name="CreditCard" summary="Credit card form"/>
<variant name="EmailOnly" summary="Email-only form"/>
<variant name="PostalAddress" summary="Postal address form"/>
<variant name="VirtualCard.StandaloneCvc"
summary="Standalone CVC form for a virtual card saved on file"/>
</variants>
<variants name="AutofillPlusAddressModalCompletionStatus">
<variant name="Canceled" summary="Modal canceled"/>
<variant name="Confirmed" summary="Modal confirmed"/>
<variant name="ConfirmError" summary="Confirm error occured"/>
<variant name="ReserveError" summary="Reserve error occured"/>
</variants>
<variants name="AutofillPlusAddressNetworkRequestType">
<variant name="Create" summary="Create a Plus Address after reservation"/>
<variant name="GetOrCreate" summary="Get or create a Plus Address"/>
<variant name="List" summary="Retrieve all Plus Addresses"/>
<variant name="Reserve" summary="Reserve a Plus Address"/>
</variants>
<variants name="AutofillPopupInteractionLevel">
<variant name="0"
summary="a root popup suggestion(s) was either shown or interacted with
by the user (selected or accepted)"/>
<variant name="1"
summary="a second level popup suggestion(s) was either shown or
interacted with by the user (selected or accepted)"/>
<variant name="2"
summary="a third level popup suggestion(s) was either shown or
interacted with by the user (selected or accepted)"/>
</variants>
<variants name="AutofillProfile.StorableTypes">
<variant name="ADDRESS_HOME_ADMIN_LEVEL2"/>
<variant name="ADDRESS_HOME_APT"/>
<variant name="ADDRESS_HOME_APT_NUM"/>
<variant name="ADDRESS_HOME_APT_TYPE"/>
<variant name="ADDRESS_HOME_BETWEEN_STREETS"/>
<variant name="ADDRESS_HOME_BETWEEN_STREETS_1"/>
<variant name="ADDRESS_HOME_BETWEEN_STREETS_2"/>
<variant name="ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK"/>
<variant name="ADDRESS_HOME_CITY"/>
<variant name="ADDRESS_HOME_COUNTRY"/>
<variant name="ADDRESS_HOME_DEPENDENT_LOCALITY"/>
<variant name="ADDRESS_HOME_FLOOR"/>
<variant name="ADDRESS_HOME_HOUSE_NUMBER"/>
<variant name="ADDRESS_HOME_LANDMARK"/>
<variant name="ADDRESS_HOME_OTHER_SUBUNIT"/>
<variant name="ADDRESS_HOME_OVERFLOW"/>
<variant name="ADDRESS_HOME_OVERFLOW_AND_LANDMARK"/>
<variant name="ADDRESS_HOME_SORTING_CODE"/>
<variant name="ADDRESS_HOME_STATE"/>
<variant name="ADDRESS_HOME_STREET_ADDRESS"/>
<variant name="ADDRESS_HOME_STREET_LOCATION"/>
<variant name="ADDRESS_HOME_STREET_NAME"/>
<variant name="ADDRESS_HOME_SUBPREMISE"/>
<variant name="ADDRESS_HOME_ZIP"/>
<variant name="COMPANY_NAME"/>
<variant name="EMAIL_ADDRESS"/>
<variant name="NAME_FIRST"/>
<variant name="NAME_FULL"/>
<variant name="NAME_LAST"/>
<variant name="NAME_LAST_CONJUNCTION"/>
<variant name="NAME_LAST_FIRST"/>
<variant name="NAME_LAST_SECOND"/>
<variant name="NAME_MIDDLE"/>
<variant name="NAME_SUFFIX"/>
<variant name="PHONE_HOME_WHOLE_NUMBER"/>
</variants>
<variants name="AutofillProfileCategory">
<variant name="AccountChrome"
summary="kAccount profiles originating from Chrome"/>
<variant name="AccountNonChrome"
summary="kAccount profiles originating from outside Chrome"/>
<variant name="Legacy" summary="kLegacyOrSyncable profiles"/>
</variants>
<variants name="AutofillSaveCreditCardPromptDestination">
<variant name=".Local" summary="locally"/>
<variant name=".Upload" summary="to server"/>
</variants>
<variants name="AutofillSeamlessnessFillability">
<variant name="Fillable"
summary="Recorded under the assumption of a complete profile (i.e., the
profile holds data for all present fields)."/>
<variant name="Fills"
summary="Recorded taking only the actually filled fields into account."/>
</variants>
<variants name="AutofillSeamlessnessMeasurementTime">
<variant name=".AtFillTimeAfterSecurityPolicy"
summary="Recorded after applying restrictions due to the cross-frame
security policy."/>
<variant name=".AtFillTimeBeforeSecurityPolicy"
summary="Recorded before applying restrictions due to the cross-frame
security policy."/>
<variant name=".AtSubmissionTime"
summary="Recorded at submission time. May be missed due to submission
detection problems."/>
</variants>
<variants name="AutofillSeamlessnessVisibility">
<variant name=""
summary="Recorded for all detected fields, including those that may be
invisible to the user."/>
<variant name=".Visible"
summary="Recorded only for fields that are visible to the user as per
Autofill's visibility detection (IsWebElementVisible())."/>
</variants>
<variants name="AutofillStrikeDatabaseProjectType">
<variant name=".CreditCardSave" summary="Credit card save"/>
<variant name=".CvcStorage" summary="CVC save"/>
<variant name=".FidoAuthentication"
summary="Fido authentication (Better Auth Project)"/>
<variant name=".IBANSave" summary="IBAN save"/>
<variant name=".LocalCardMigration" summary="Local card migration"/>
<variant name=".VirtualCardEnrollment" summary="virtual card enrollment"/>
</variants>
<variants name="ClassificationMatchesFillingProduct">
<variant name=".TriggeringFieldDoesNotMatchFillingProduct"
summary="The filling product chosen by the user does not match the
triggering field type."/>
<variant name=".TriggeringFieldMatchesFillingProduct"
summary="The filling product chosen by the user matches the triggering
field type."/>
</variants>
<variants name="CreditCardDataAvailability">
<variant name=".WithBothServerAndLocalData"
summary="both server and local autofill data"/>
<variant name=".WithNoData" summary="no autofill data"/>
<variant name=".WithOnlyLocalData" summary="only local autofill data"/>
<variant name=".WithOnlyServerData" summary="only server autofill data"/>
</variants>
<variants name="IbanRecordType">
<variant name="Local" summary="Local IBAN"/>
<variant name="Server" summary="Server IBAN"/>
</variants>
<variants name="IbanTypeToBeSaved">
<variant name=".Local" summary="Local IBAN save"/>
<variant name=".Upload" summary="Server IBAN save"/>
</variants>
<variants name="Vcn3ds.ConsentAlreadyGiven">
<variant name="ConsentAlreadyGiven"
summary="The consent for a pop-up was already given prior to the flow
starting"/>
<variant name="ConsentNotGivenYet"
summary="The consent for a pop-up was not given prior to the flow
starting and needs to be requested"/>
</variants>
<histogram name="Autocomplete.DaysSinceLastUse" units="days"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logged when users select Autocomplete entries in the dropdown, this
histogram captures the number of days that have passed since the selected
autocomplete entry was last submitted on a website. I.e., the distribution
of time between uses of an "active" autocomplete entry.
</summary>
</histogram>
<histogram name="Autocomplete.Events2" enum="AutocompleteEvents"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autocomplete events which are recorded when the user interacts with
suggestions served from Autocomplete. The histogram is recorded when an
autocomplete suggestion is shown, selected or deleted.
</summary>
</histogram>
<histogram
name="Autofill.Ablation.FillDurationSinceInteraction.{FormType}.{Group}"
units="ms" expires_after="2025-02-23">
<expired_intentionally>
This is for an ablation study that we may want to reactivate at some points
in the future.
</expired_intentionally>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for time from the first change to an input element (typed or
autofilled) on any form of a frame to a form submission. Note that the
change could even happen to a different form on the page than the one
submitted.
</summary>
<token key="FormType" variants="Autofill.Ablation.FormType"/>
<token key="Group" variants="Autofill.Ablation.Group"/>
</histogram>
<histogram
name="Autofill.Ablation.FormSubmissionAfterInteraction.{FormType}.{Group}"
enum="Boolean" expires_after="2025-02-23">
<expired_intentionally>
This is for an ablation study that we may want to reactivate at some points
in the future.
</expired_intentionally>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether after changing the value of an input element (typed or
autofilled) in a frame, any form on that page is submitted.
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
<token key="Group" variants="Autofill.Ablation.Group"/>
</histogram>
<histogram
name="Autofill.AcceptedFilledFieldWithNumericQuantityHeuristicPrediction"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs if the filling of a field was accepted even though it had a
NUMERIC_QUANTITY prediction. This metric is only emitted if the feature to
grant the heuristic precedence is disabled. Emitted on submission time.
Since M127 this stopped including fields filled with autocomplete.
</summary>
</histogram>
<histogram name="Autofill.AcceptedSuggestionDesktopRowViewVisibleEnough"
enum="Boolean" expires_after="2025-08-07">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is emitted by the desktop autofill popup row view just before
accepting the suggestion. This indicates that at least 50% of the popup were
visible for at least 500ms and serves as a safeguard against quick (and
potentially deceptive, which can lead to revealing user's data) accepts.
This metric serves as a sanity check for the guarding logic (the number of
`false`s is expected to be extremly low) and will be removed with the
`kAutofillPopupDontAcceptNonVisibleEnoughSuggestion` feature.
</summary>
</histogram>
<histogram name="Autofill.AddedNewAddress"
enum="AutofillManuallyAddedAddressSurface" expires_after="2025-03-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the surface from which the user manually added an address. Emitted
every time the user adds an address manually.
</summary>
</histogram>
<histogram name="Autofill.Address.DisabledReason.PageLoad"
enum="AutofillPreferenceSetter" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the pref autofill.profile_enabled is disabled, this metric records the
source. Emitted on page load for a page containing forms. The corresponding
metric tracking the activation rate of autofill.profile_enabled is
Autofill.Address.IsEnabled.PageLoad.
</summary>
</histogram>
<histogram name="Autofill.Address.DisabledReason.Startup"
enum="AutofillPreferenceSetter" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the pref autofill.profile_enabled is disabled, this metric records the
source. Emitted on startup. The corresponding metric tracking the activation
rate of autofill.profile_enabled is Autofill.Address.IsEnabled.Startup.
</summary>
</histogram>
<histogram name="Autofill.Address.IsEnabled.PageLoad" enum="BooleanEnabled"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether Profile (Address) Autofill is enabled on page load for a page
containing forms.
</summary>
</histogram>
<histogram name="Autofill.Address.IsEnabled.Startup" enum="BooleanEnabled"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether Profile (Address) Autofill is enabled when Chrome launches.
</summary>
</histogram>
<histogram name="Autofill.AddressesDeletedForDisuse" units="addresses"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Log the number of kLocalOrSyncable Autofill addresses that were deleted
because they have not been used for `kDisusedDataModelDeletionTimeDelta`.
Emitted once on browser startup, if the user has at least one address.
</summary>
</histogram>
<histogram name="Autofill.AddressesSuppressedForDisuse" units="addresses"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of address suggestions not shown in the Autofill popup because
they have not been used recently enough. Note that suppression only applies
when the user has not typed any text into the field. If any text is in the
field, all matching addresses are displayed, regardless of how recently they
have been used.
</summary>
</histogram>
<histogram name="Autofill.AddressProfileImportCountrySpecificFieldRequirements"
enum="AutofillAddressProfileImportCountrySpecificFieldRequirement"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Each country can require different fields (ZIP code, state, city) to exist
for an address to be valid. This histogram logs which mandatory fields were
missing in a submitted address form.
</summary>
</histogram>
<histogram name="Autofill.AddressProfileImportRequirements"
enum="AutofillAddressProfileImportRequirement" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs whether the individual requirements for importing an address profile
are met at form submission time.
</summary>
</histogram>
<histogram name="Autofill.AddressProfileImportStatus"
enum="AutofillAddressProfileImportStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the overall status of a profile import attempt on form submission time.
</summary>
</histogram>
<histogram
name="Autofill.AddressTokenVerificationStatusAtProfileUsage.{AddressType}"
enum="AufofillStructuredTokenVerificationStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each {AddressType} in a given AutofillProfile, the verification status
of the corresponding non-empty type is recorded when a profile is used to
fill a form.
</summary>
<token key="AddressType">
<variant name="Any" summary="any of the following"/>
<variant name="ApartmentNumber"
summary="the apartment number of the address"/>
<variant name="FloorNumber" summary="the floor number of the address"/>
<variant name="HouseNumber" summary="the house number of the address"/>
<variant name="Premise" summary="the premise of the address"/>
<variant name="StreetAddress" summary="the full street address"/>
<variant name="StreetName" summary="the street name of the address"/>
<variant name="SubPremise" summary="the subpremise of the address"/>
</token>
</histogram>
<histogram name="Autofill.AndroidAutofillAvailabilityStatus"
enum="AndroidAutofillAvailabilityStatus" expires_after="2024-12-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Clank only. Logs whether Android Autofill was available. If not, it splits
the reasons why. Only one reason is recorded (e.g. the pref isn't checked if
a policy makes it impossible to set the pref). The reasons are not ordered.
Emitted only once per cold start of Chrome when the first tab is created.
</summary>
</histogram>
<histogram
name="Autofill.Autocomplete.NotOff.EditedAutofilledFieldAtSubmission2{AutofillFormType}"
enum="AutofilledFieldUserEditingStatus" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records at submission time for each autofilled field with autocomplete !=
off whether the user edited the autofilled field value or not.
{AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.Autocomplete.NotOff.FillingAcceptance.{FormType}"
enum="BooleanAutofillFillingAcceptance" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each submitted form whether the user accepted the suggestion to
fill values and the triggering field has autocomplete != off. This is
counted as 'yes' if the user accepted such a suggestion at any time,
regardless whether other suggestions were ignored or whether the accepted
suggestion was reverted afterwards. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram
name="Autofill.Autocomplete.Off.EditedAutofilledFieldAtSubmission2{AutofillFormType}"
enum="AutofilledFieldUserEditingStatus" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records at submission time for each autofilled field with autocomplete = off
whether the user edited the autofilled field value or not.
{AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.Autocomplete.Off.FillingAcceptance.{FormType}"
enum="BooleanAutofillFillingAcceptance" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each submitted form whether the user accepted the suggestion to
fill values and the triggering field has autocomplete = off. This is counted
as 'yes' if the user accepted such a suggestion at any time, regardless
whether other suggestions were ignored or whether the accepted suggestion
was reverted afterwards. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.Autocomplete.PredictionCollisionState"
enum="PredictionStateAutocompleteStatePair" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records a pair of (PredictionState, AutocompleteState) for each field in a
submitted form. PredictionState indicates if server and/or heuristic type
prediction were available. AutocompleteState indicates if the autocomplete
attribute was present and whether it was valid. Emitted on form submission.
</summary>
</histogram>
<histogram name="Autofill.Autocomplete.PredictionCollisionType.Heuristics"
enum="AutofillFieldType" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the heuristic type of each field with autocomplete=garbage in a
submitted form. Emitted on form submission.
</summary>
</histogram>
<histogram name="Autofill.Autocomplete.PredictionCollisionType.Server"
enum="AutofillFieldType" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the server type of each field with autocomplete=garbage in a
submitted form. Emitted on form submission.
</summary>
</histogram>
<histogram
name="Autofill.Autocomplete.PredictionCollisionType.ServerOrHeuristics"
enum="AutofillFieldType" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the server type of each field with autocomplete=garbage in a
submitted form. If no server type is available, the heuristics type is
logged instead. Emitted on form submission.
</summary>
</histogram>
<histogram
name="Autofill.Autocomplete.PredictionCollisionType2.{PredictionType}.{AutocompleteState}"
enum="AutofillFieldType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the PredictionType of each field in a submitted form, depending on
the field's AutocompleteState. Emitted on form submission.
</summary>
<token key="PredictionType">
<variant name="Heuristics"/>
<variant name="Server"/>
<variant name="ServerOrHeuristics"
summary="If available, the server type. Otherwise the heuristic type."/>
</token>
<token key="AutocompleteState">
<variant name="Garbage"/>
<variant name="None"/>
<variant name="Off"/>
<variant name="Valid"/>
</token>
</histogram>
<histogram name="Autofill.Autocomplete.SingleEntryRemovalMethod"
enum="AutofillSingleEntryRemovalMethod" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how a user removed a single Autocomplete entry (i.e. via the
keyboard or via a delete button in the Autofill popup). Emitted on
Autocomplete entry deletion.
</summary>
</histogram>
<histogram name="Autofill.AutocompleteUnrecognized.FieldFillingStats2"
enum="FieldFillingStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for every field with autocomplete unrecognized, whether it was
filled, corrected, manually filled, or left empty. Recorded at submission
time.
</summary>
</histogram>
<histogram name="Autofill.AutomationRate.{FormType}" units="%"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the percentage of input text field characters that were autofilled.
This function measures text input as a number of UTF-16 code points. Fields
with more than 150 code points input are ignored. Emitted on form
submission. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.BetterAuth.CardUnmaskDuration.Fido" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the time it takes to fetch the full PAN of a credit card once user
successfully authenticates using WebAuthn.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.CardUnmaskDuration.Fido.{CardType}.{Result}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the time it takes to fetch the full PAN of a credit card once user
successfully authenticates using WebAuthn.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
<token key="Result" variants="Autofill.PaymentsRpcResult"/>
</histogram>
<histogram
name="Autofill.BetterAuth.CardUnmaskPreflightCalledWithFidoOptInStatus"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The total count of this histogram tracks the number of times Chrome made a
preflight GetDetailsForGetRealPan call. A preflight call is only made when
card suggestions are shown, and can only happen when the user has server
cards and is eligible for WebAuthn. For every log in this histogram, it also
tracks whether the user is opted-in to WebAuthn or opted-out of WebAuthn. A
log of true indicates the user is opted-in, and a log of false indicates the
user is opted-out.
As a percentage of the number of times card suggestions are shown, which is
tracked under Autofill.FormEvents.CreditCard, this metric provides an
estimate for the potential reach for the Autofill Better Auth project.
Moreover, this acts as a baseline value for other metrics in this project.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.CardUnmaskPreflightDuration" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracking the latency of a GetDetailsForGetRealPan call to Payments servers.
This duration should be comparable to that of Autofill.UnmaskPrompt.Duration
and should ideally stay under 500 ms in order for the user to autofill their
credit card without experiencing much friction.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.CardUnmaskPreflightInitiated"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of times that we initiate the card unmask preflight flow.
This will log both when the user is eligible for WebAuthn as well as when
the user is not eligible for WebAuthn, as it is logged before we check this
status.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.CardUnmaskTypeDecision"
enum="AutofillCreditCardUnmaskDecisionMetric" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the user is definitely opted-in to the new auth flow, Payments sends a
list of instrument IDs in the GDFGRP call, and Chrome makes the final call
on whether CVC or WebAuthn should be shown. Tracks which authentication
method was prompted.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.EnrollmentPromptOffered" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the Better Auth (FIDO) enrollment prompt was offered. Logged
at the time of showing the prompt, or if not shown, when the prompt would
have been shown. This metric can only be logged from the checkout flow,
after a CVC authentication has completed.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.FlowEvents.{BetterAuthFlowType}.{CardType}"
enum="AutofillCreditCardAuthenticationEvents" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when a user completes each step in a card unmasking flow per
authentication flow type, with an additional breakdown for if it was a
server card or virtual card.
</summary>
<token key="BetterAuthFlowType" variants="Autofill.BetterAuthFlowType"/>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram
name="Autofill.BetterAuth.FlowEvents{AutofillCreditCardAuthenticationFlows}"
enum="AutofillCreditCardAuthenticationEvents" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when a user completes each step in a card unmasking flow per
authentication type. This will provide a relative conversion rate for each
authentication type. {AutofillCreditCardAuthenticationFlows}
</summary>
<token key="AutofillCreditCardAuthenticationFlows">
<variant name=""/>
<variant name=".Cvc" summary="CVC authentication only"/>
<variant name=".CvcFallbackFromFido"
summary="CVC fallback from FIDO authentication"/>
<variant name=".CvcThenFido" summary="CVC followed by FIDO authentication"/>
<variant name=".Fido" summary="FIDO authentication only"/>
</token>
</histogram>
<histogram name="Autofill.BetterAuth.OptInCalled.FromCheckoutFlow"
enum="AutofillCreditCardWebauthnOptInParameters" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when users opt-in from a checkout flow, making an
UpdateAutofillUserPreference call. For each call to payments, logs if the
call was made in order to verify an existing credential, to create a new
credential, or to fetch a challenge.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.OptInPromoNotOfferedReason"
enum="WebauthnOptInPromoNotOfferedReason" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the Better Auth (FIDO) opt-in promo could have been offered on
Desktop, but wasn't. Logged at the time of the promo not being shown. This
metric can only be logged from the checkout flow, as we do not block opting
in to FIDO from the settings page. It logs the enum reason of what caused
the promo to not be shown.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.OptInPromoShown.FromCheckoutFlow"
enum="BooleanHit" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of times the opt-in promo to use FIDO authentication for
card unmasking has been shown. Only applicable on Desktop.
This is useful when compared to Autofill.BetterAuth.OptInPromoUserDecision,
to see what percentage of users are interacting with the dialog. Also, when
an opted-out user receives the preflight call before selecting a card (which
is recorded by the first bucket in
Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.OptedOut), then the
promo should eventually show if the user selects a masked card and
successfully authenticates through CVC.
</summary>
</histogram>
<histogram name="Autofill.BetterAuth.OptInPromoUserDecision.FromCheckoutFlow"
enum="AutofillWebauthnOptInPromoUserDecision" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the user response to the opt-in promo for using FIDO authentication
for card unmasking. The user can either accept the promo and proceed to
perform user-verification, can decline the promo immediately, or first
accept the promo but then decline while the challenge is being fetched. Only
applicable on Desktop.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.PreflightCallResponseReceivedOnCardSelection.{AutofillFidoAuthenticationEnabledState}.{CardType}"
enum="AutofillCreditCardPreflightCallEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetDetailsForGetRealPan call is made when card suggestions are shown.
This metric tracks whether the response is received before or after a card
is chosen by the user. For an opted-in user, a late response would imply
FIDO registration/authentication for the selected card will not be offered.
For an opted-out user, a late response would imply that opt-in may not have
been offered. This metric is split by whether the user is opted-out or
opted-in, and by the type of card used.
</summary>
<token key="AutofillFidoAuthenticationEnabledState"
variants="AutofillFidoAuthenticationEnabledState"/>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram
name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.OptedIn.Duration"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetDetailsForGetRealPan call is made when card suggestions are shown.
This metric logs the duration of the perceived latency when the response for
this call is received after a card is chosen by an opted-in user. After
waiting a set number of seconds without receiving a response, Chrome will
fall back to CVC authentication.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.OptedIn.TimedOutCvcFallback"
enum="AutofillCreditCardUserPerceivedLatencyFollowUp"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetDetailsForGetRealPan call is made when card suggestions are shown. If
an opted-in user selects a card before the response is returned, latency is
perceived. Given that the user perceives latency, this metric logs whether
the request timed out and fell back to CVC or if the request was completed
and continued to WebAuthn.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.{AutofillFidoAuthenticationEnabledState}"
enum="AutofillCreditCardPreflightCallEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The GetDetailsForGetRealPan call is made when card suggestions are shown.
This metric tracks whether the response is received before or after a card
is chosen by the user. For an opted-in user, a late response would imply
perceived latency. For an opted-out user, a late response would imply that
opt-in may not have been offered. {AutofillFidoAuthenticationEnabledState}
</summary>
<token key="AutofillFidoAuthenticationEnabledState"
variants="AutofillFidoAuthenticationEnabledState"/>
</histogram>
<histogram name="Autofill.BetterAuth.UserVerifiabilityCheckDuration" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks how long it takes to check that the user is verifiable through
WebAuthn's IsUserVerifiablePlatformAuthenticatorAvailable() call. This check
is done before deciding to make a GetDetailsForGetRealPan call to Payments.
</summary>
</histogram>
<histogram
name="Autofill.BetterAuth.WebauthnResult{AutofillFidoUserVerificationFlow}"
enum="AutofillCreditCardWebauthnResultMetric" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric tracks the result of the WebAuthn prompt when the user attempts
to either opt-in for FIDO authentication or unmask a card using FIDO
authentication. {AutofillFidoUserVerificationFlow}
</summary>
<token key="AutofillFidoUserVerificationFlow">
<variant name=".AuthenticationAfterCVC" summary="WebAuthn after CVC"/>
<variant name=".CheckoutOptIn"
summary="Registering for WebAuthn on checkout"/>
<variant name=".ImmediateAuthentication"
summary="WebAuthn for card downstream"/>
</token>
</histogram>
<histogram
name="Autofill.ButterForPayments.ShowCardsFromGoogleAccountButtonEvents"
enum="ShowCardsFromGoogleAccountButtonEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs events for the 'Show cards from your Google Account' button, i.e.,
button shown, button shown (logged once per page), or clicked. Logged at the
time of the event happening.
</summary>
</histogram>
<histogram name="Autofill.CardholderNameFixFlowPrompt.Events"
enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events tracking the usage of the cardholder name fix flow prompt. This
prompt is triggered whenever cardholder name must be explicitly requested
from the user in order to upload the card to Google Payments.
</summary>
</histogram>
<histogram name="Autofill.CardUnmask.ScreenLockCheckBox.InitialState"
enum="CheckBoxStatus" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the initial state of the ScreenLockCheckBox. The ScreenLockCheckBox
is the checkbox shown to the user as part of the CardUnmaskPrompt. This
histogram will be logged only when the CardUnmaskPrompt is initialized. This
is only available on Android.
</summary>
</histogram>
<histogram name="Autofill.CardUnmask.ScreenLockCheckBox.UserChecked"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the check/uncheck action from users on the ScreenLockCheckBox. The
ScreenLockCheckBox is the checkbox shown to the user as part of the
CardUnmaskPrompt. This histogram will be updated whenever the user
clicks/unclicks the checkbox. This is only available on Android.
</summary>
</histogram>
<histogram name="Autofill.CardUnmaskAuthenticationSelectionDialog.Result"
enum="AutofillCardUnmaskAuthenticationSelectionDialogResult"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of the Card Unmask Authentication Selection Dialog, such
as user cancelation before/after selecting a challenge option, or automatic
dismissal after a server success/failure for a selected option was returned.
The metric is recorded any time the dialog is dismissed.
</summary>
</histogram>
<histogram name="Autofill.CardUnmaskAuthenticationSelectionDialog.Shown2"
units="challenge_options" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
On every show of the card unmask challenge option selection dialog, this
histogram records a count (with a maximum of 10) for the number of challenge
options that were shown. This dialog is shown when a user needs to select a
challenge option to authenticate a card for payments autofill.
</summary>
</histogram>
<histogram name="Autofill.CardUploadDecisionMetric"
enum="AutofillCardUploadDecisionMetric" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether upload was offered upon detecting a form submission with credit card
data, a detailed reason if upload was offered even with some missing fields
and detailed reasons if it wasn't.
</summary>
</histogram>
<histogram name="Autofill.CardUploadEnabled" enum="AutofillCardUploadEnabled"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Detailed reasons why (or why not) card upload was enabled. When a user
submits a form, this check is triggered to decide whether to ask the user if
she wants to upload the card.
</summary>
</histogram>
<histogram name="Autofill.CreditCard.DisabledReason.PageLoad"
enum="AutofillPreferenceSetter" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the pref autofill.credit_card_enabled is disabled, this metric records
the source. Emitted on page load for a page containing forms. The
corresponding metric tracking the activation rate of
autofill.credit_card_enabled is Autofill.CreditCard.IsEnabled.PageLoad.
</summary>
</histogram>
<histogram name="Autofill.CreditCard.DisabledReason.Startup"
enum="AutofillPreferenceSetter" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the pref autofill.credit_card_enabled is disabled, this metric records
the source. Emitted on browser startup when a new Chrome profile is loaded.
The corresponding metric tracking the activation rate of
autofill.credit_card_enabled is Autofill.CreditCard.IsEnabled.Startup.
</summary>
</histogram>
<histogram name="Autofill.CreditCard.IsEnabled.PageLoad" enum="BooleanEnabled"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether Credit Card Autofill is enabled on page load for a page
containing forms.
</summary>
</histogram>
<histogram name="Autofill.CreditCard.IsEnabled.Startup" enum="BooleanEnabled"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether Credit Card Autofill is enabled when Chrome launches.
</summary>
</histogram>
<histogram
name="Autofill.CreditCard.Seamless{AutofillSeamlessnessFillability}{AutofillSeamlessnessMeasurementTime}{AutofillSeamlessnessVisibility}"
enum="CreditCardSeamlessFill" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each credit card form the quality of the fill.
{AutofillSeamlessnessFillability} {AutofillSeamlessnessMeasurementTime}
{AutofillSeamlessnessVisibility}
The fields in question are: cardholder name (full, or first and last),
credit card number, expiration date (MM/YY, MM/YYYY, MM and YY, or MM and
YYYY), and CVC.
Each bucket represents a minimal set of fields that must be autofilled.
Lower numbers are better:
Bucket 0 = name & number & exp. date & CVC = Full fill :-D
Bucket 1 = number & exp. date & CVC = Optional name missing :-)
Bucket 2 = name & number & exp. date = Optional CVC missing :-)
Bucket 3 = number & exp. date = Optional name and CVC missing :-)
Bucket 4 = name & number & CVC = Full fill but exp. date missing :-|
Bucket 5 = all other scenarios = Partial fill :-(
Any form that contains at least one credit card field counts as credit card
form.
</summary>
<token key="AutofillSeamlessnessFillability"
variants="AutofillSeamlessnessFillability"/>
<token key="AutofillSeamlessnessMeasurementTime"
variants="AutofillSeamlessnessMeasurementTime"/>
<token key="AutofillSeamlessnessVisibility"
variants="AutofillSeamlessnessVisibility"/>
</histogram>
<histogram
name="Autofill.CreditCard.Seamless{AutofillSeamlessnessFillability}{AutofillSeamlessnessMeasurementTime}{AutofillSeamlessnessVisibility}.Bitmask"
enum="AutofillCreditCardSeamlessnessBitmask" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each credit card form the quality of the fill.
{AutofillSeamlessnessFillability} {AutofillSeamlessnessMeasurementTime}
{AutofillSeamlessnessVisibility}
The emitted value is a non-zero bitmask whose bits have the following
meaning, from highest to lowest bit:
Bit #4 is true iff a cardholder name was filled.
Bit #3 is true iff a card number was filled.
Bit #2 is true iff an expiraton date was filled.
Bit #1 is true iff a CVC name was filled.
</summary>
<token key="AutofillSeamlessnessFillability"
variants="AutofillSeamlessnessFillability"/>
<token key="AutofillSeamlessnessMeasurementTime"
variants="AutofillSeamlessnessMeasurementTime"/>
<token key="AutofillSeamlessnessVisibility"
variants="AutofillSeamlessnessVisibility"/>
</histogram>
<histogram
name="Autofill.CreditCard.SelectionLatencySinceShown.CardWithIssuerId.{CardMetadataVisible}.{CardIssuerId}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency between an Autofill credit card suggestion being shown, and when
it was selected, in milliseconds. Logged immediately when a card is selected
by the user if the card has an issuer id, and it is broken down by whether
the selected card has card metadata available. This is also broken down by
card issuer id. This helps identify whether showing the card metadata has
potential impact on latency for selecting a particular card.
</summary>
<token key="CardMetadataVisible" variants="Autofill.CardMetadataVisible"/>
<token key="CardIssuerId" variants="Autofill.CreditCardIssuerId"/>
</histogram>
<histogram
name="Autofill.CreditCard.SelectionLatencySinceShown.{CardMetadataVisible}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The latency between Autofill credit card suggestion dropdown being shown,
and when a suggestion was selected, in milliseconds. Logged immediately when
a card suggestion is selected by the user. Broken down by whether any card
(not necessarily the selected card) in the suggestion list has card metadata
available. This helps identify whether showing the card metadata has
potential impact on assisting card selection in general.
</summary>
<token key="CardMetadataVisible" variants="Autofill.CardMetadataVisible"/>
</histogram>
<histogram
name="Autofill.CreditCard.{CardIssuer}.SelectedWithIssuerMetadataPresentOnce"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true if a {CardIssuer} was selected in the suggestions. Emits false if
a {CardIssuer} with metadata existed in the suggestions list but was not
selected from the suggestions. Logged at the time a card selection was made.
Logged only once per page load.
</summary>
<token key="CardIssuer" variants="Autofill.CreditCardIssuerId"/>
</histogram>
<histogram name="Autofill.CreditCard.{CardIssuer}.{FormEventWithMetadata}"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true if a {CardIssuer}:
1. shown in Autofill suggestions had metadata
2. selected from Autofill suggestions had metadata
Emits false if:
1. every {CardIssuer} shown in Autofill suggestions did not have metadata
2. a {CardIssuer} selected from Autofill suggestions did not have metadata
Histograms without "Once" are logged every time Autofill
suggestions that are shown or selected have an issuer id. Histograms with
"Once" are logged once per page load.
</summary>
<token key="CardIssuer" variants="Autofill.CreditCardIssuerId"/>
<token key="FormEventWithMetadata" variants="Autofill.FormEventWithMetadata"/>
</histogram>
<histogram
name="Autofill.CreditCard.{CardNetwork}.SelectedWithIssuerMetadataPresentOnce"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true if a {CardNetwork} was selected in the suggestions. Emits false
if a {CardNetwork} with metadata existed in the suggestions list but was not
selected from the suggestions. Logged at the time a card selection was made.
Logged only once per page load.
</summary>
<token key="CardNetwork" variants="Autofill.CreditCardNetwork"/>
</histogram>
<histogram name="Autofill.CreditCard.{CardNetwork}.{FormEventWithMetadata}"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true if a {CardNetwork}:
1. shown in Autofill suggestions had metadata
2. selected from Autofill suggestions had metadata
Histograms without `Once` are logged every time Autofill suggestions that
are shown or selected have an issuer id. Histograms with `Once` are logged
once per page load.
</summary>
<token key="CardNetwork" variants="Autofill.CreditCardNetwork"/>
<token key="FormEventWithMetadata" variants="Autofill.FormEventWithMetadata"/>
</histogram>
<histogram
name="Autofill.CreditCardInfoBar{AutofillCreditCardInfoBarSaveType}{SaveType}"
enum="AutofillCreditCardInfoBar" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept, deny, or ignore the Autofill
credit card info bar prompt. {AutofillCreditCardInfoBarSaveType},
{SaveType}.
</summary>
<token key="AutofillCreditCardInfoBarSaveType">
<variant name=".Local" summary="Local credit card save"/>
<variant name=".Server" summary="Server/upload credit card save"/>
</token>
<token key="SaveType" variants="AutofillCreditCardSaveType"/>
</histogram>
<histogram name="Autofill.CreditCardSaveFlowResult.{SaveDestination}{SaveType}"
enum="AutofillCreditCardSaveFlowResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept, deny, or ignore the Autofill
credit card prompt when card is saved to for a {SaveDestination} save,
{SaveType}. Note that this metric concerns the result of final save, rather
than the CTR of the prompt, and this metric should record when a decision of
whether card will be saved or not is made.
</summary>
<token key="SaveDestination">
<variant name="Local" summary="local"/>
<variant name="Server" summary="server"/>
</token>
<token key="SaveType" variants="AutofillCreditCardSaveType"/>
</histogram>
<histogram name="Autofill.CreditCardsDeletedForDisuse" units="units"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of local credit cards deleted during a major version upgrade
because they have not been used recently enough and are expired.
</summary>
</histogram>
<histogram name="Autofill.CreditCardsSuppressedForDisuse" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of credit card suggestions not shown in the Autofill popup
because they have not been used recently enough and are expired. Note that
suppression only applies when the user has not typed any text into the
field. If any text is in the field, all matching cards are displayed,
regardless of how recently they have been used and their expiration status.
</summary>
</histogram>
<histogram name="Autofill.CreditCardUpload.ConfirmationResult.{IsCardUploaded}"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the save card confirmation bubble which is
shown after the credit card upload is completed. IsCardUploaded
({IsCardUploaded}) indicates whether the bubble shown was for a successful
credit card upload or not. Recorded when the confirmation bubble is closed.
</summary>
<token key="IsCardUploaded">
<variant name="CardNotUploaded"
summary="Credit card failed to be uploaded to the server."/>
<variant name="CardUploaded"
summary="Credit card was successfully uploaded to the server."/>
</token>
</histogram>
<histogram name="Autofill.CreditCardUpload.ConfirmationShown.{IsCardUploaded}"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the save card confirmation bubble is shown after credit card
upload is completed. IsCardUploaded ({IsCardUploaded}) indicates whether the
confirmation bubble is for a successfull credit card upload or not. Recorded
after the confirmation bubble is shown or after the decision to not show the
confirmation bubble.
</summary>
<token key="IsCardUploaded">
<variant name="CardNotUploaded"
summary="Credit card failed to be uploaded to the server."/>
<variant name="CardUploaded"
summary="Credit card was successfully uploaded to the server."/>
</token>
</histogram>
<histogram name="Autofill.CreditCardUpload.LoadingResult"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the save card loading bubble which is shown
during the credit card upload. Recorded when the loading bubble is closed.
</summary>
</histogram>
<histogram name="Autofill.CreditCardUpload.LoadingShown" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the save card loading bubble is shown during credit card upload.
Recorded after the loading bubble is shown or after the decision to not show
the loading bubble.
</summary>
</histogram>
<histogram name="Autofill.CreditCardUpload.RanLocalSaveFallback" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if a new card is locally added during a local card save fallback on
credit card upload failures. This is true when the card being saved is a new
addition to the local cards and false when the card is identified as an
existing local card and so isn't added to the local cards. The value is
recorded immediately after running the local card save fallback.
</summary>
</histogram>
<histogram name="Autofill.CvcAuth.{CardType}.Attempt" enum="BooleanAttempted"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when a CVC authentication starts and does not emit any value
otherwise. Broken down into sub-histograms based on the type of the card,
for example virtual card or server card.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.CvcAuth.{CardType}.Result"
enum="AutofillCvcAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the result of the OTP authentication, broken down into sub-histograms
by card type. The different possible results can be found in the
AutofillCvcAuthEvent enum, with the exception of any retriable failure,
which is logged in a separate histogram. This histogram is 1:1 with
Autofill.CvcAuth.{CardType}.Attempt
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.CvcAuth.{CardType}.RetryableError"
enum="AutofillCvcAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs any retryable failure that occurs during the CVC authentication flow.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.CvcInfoBar{AutofillSaveCreditCardPromptDestination}"
enum="AutofillCreditCardInfoBar" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept, deny, or ignore the Autofill
info bar prompt for saving card CVC
{AutofillSaveCreditCardPromptDestination}.
</summary>
<token key="AutofillSaveCreditCardPromptDestination"
variants="AutofillSaveCreditCardPromptDestination"/>
</histogram>
<histogram name="Autofill.CvcStorage.CvcFilling.{CardType}"
enum="CvcFillingFlowType" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the authentication method used to fill a card that has a saved CVC.
Logged when CVC was filled in the form.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.DataUtilization.ByPossibleType"
enum="AutofillDataUtilizationByFieldType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records, for fields that were submitted with values that were found in the
user's stored address profiles / credit cards, whether the field value was
autofilled or manually entered by the user. Note that fields that were
autofilled and then edited by the user or JavaScript count as "manually
entered". Note that fields that were submitted with a prefilled value
don't get recorded. Emitted on form submission. Broken down by the field's
possible types. Possible types are the field types that correspond to stored
values which matched the field value on form submission. A field can have
multiple possible types. This metric is recorded for every possible type.
</summary>
</histogram>
<histogram name="Autofill.DataUtilization.{FieldTypesSelection}.{FieldState}"
enum="AutofillDataUtilization" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records, for fields that were submitted with values that were found in the
user's stored address profiles / credit cards, whether the field value was
autofilled or manually entered by the user. Note that fields that were
autofilled and then edited by the user or JavaScript count as "manually
entered". Note that fields that were submitted with a prefilled value
don't get recorded. Emitted on form submission.
</summary>
<token key="FieldTypesSelection">
<variant name="AllFieldTypes"
summary="Metrics are recorded for all field types."/>
<variant name="SelectedFieldTypes"
summary="Metrics are recorded for field types whose associated values
typically are not small numbers, i.e. less than 100."/>
</token>
<token key="FieldState">
<variant name="Aggregate"
summary="Aggregated data of all fields (within in the selection of
field types)."/>
<variant name="Garbage"
summary="Metrics are recorded if the autocomplete attribute is
unrecognized."/>
<variant name="GarbageHadPrediction"
summary="Metrics are recorded if the autocomplete attribute is
unrecognized and if AutofillField::Type() returns a known
type."/>
<variant name="HadPrediction"
summary="Metrics are recorded if AutofillField::Type() returns a
known type."/>
<variant name="NoPrediction"
summary="Metrics are recorded if AutofillField::Type() returns an
unknown type."/>
</token>
</histogram>
<histogram name="Autofill.DaysSinceLastUse.CreditCard" units="days"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of days that have passed since the credit card was last
used.
</summary>
</histogram>
<histogram name="Autofill.DaysSinceLastUse.Profile" units="days"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logged at the time of autofill address use, this histogram captures the
number of days that have passed since the address was last used. I.e., the
distribution of time between uses of an "active" autofill address.
</summary>
</histogram>
<histogram name="Autofill.DaysSinceLastUse.StoredCreditCard" units="days"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->
<summary>
Logs the number of days that have passed since each credit card belonging to
a given Chrome Profile was last used. This is logged for each Autofill
credit card once per Chrome User Profile load.
</summary>
</histogram>
<histogram name="Autofill.DaysSinceLastUse.StoredIban.{IbanRecordType}"
units="days" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of days that have passed since each IBAN belonging to a
given Chrome Profile was last used. This is logged for each Autofill IBAN
once per Chrome User Profile load.
</summary>
<token key="IbanRecordType" variants="IbanRecordType"/>
</histogram>
<histogram name="Autofill.DaysSinceLastUse.StoredProfile.{Category}"
units="days" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram captures the number of days that have passed since each
stored address profile belonging to a given Chrome Profile was last used.
This is logged for each Autofill address profile of the given category once
per Chrome User Profile load.
</summary>
<token key="Category" variants="AutofillProfileCategory"/>
</histogram>
<histogram name="Autofill.DaysUntilFirstUsage.Profile" units="day"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of days from saving an Autofill profile until using it
for the first time before it got purged. Emitted on the first usage of the
profile for filling a form.
</summary>
</histogram>
<histogram
name="Autofill.Deduplication.ExistingProfiles.EditingDistanceOfQuasiDuplicateToken.{N}.{Type}"
units="Editing distance" expires_after="2025-06-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every stored profile (in every source), calculate the
ProfileDuplicationRank (N) and the list of types that are not compatible
between the two profiles. Calculate and emit (lower out of normalized and
non-normalized) editing distance for every non-compatible type. Emitted on
browser startup. Profiles of different countries are not considered, since
they can never be merged due to the data model differences. The metric is
split by the N and Type.
</summary>
<token key="N">
<variant name="1"/>
<variant name="2"/>
<variant name="3"/>
<variant name="4"/>
<variant name="5"/>
</token>
<token key="Type" variants="AutofillProfile.StorableTypes"/>
</histogram>
<histogram
name="Autofill.Deduplication.ExistingProfiles.LowQualityQuasiDuplicatesRemoved"
units="Profiles" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of low quality quasi duplicates that were silently removed
by the once per milestone deduplication routine on startup.
</summary>
</histogram>
<histogram
name="Autofill.Deduplication.ExistingProfiles.PercentageOfNonQuasiDuplicates.{MaxN}"
units="Percents" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every stored profile (in every source), calculate the
ProfileDuplicationRank. For a given MaxN, calculate the percentage of
profiles that have a ProfileDuplicationRank greater than MaxN. Emitted on
browser startup. Profiles of different countries are not considered, since
they can never be merged due to the data model differences. The metric is
split by the MaxN.
</summary>
<token key="MaxN">
<variant name="1"/>
<variant name="2"/>
<variant name="3"/>
<variant name="4"/>
<variant name="5"/>
</token>
</histogram>
<histogram
name="Autofill.Deduplication.ExistingProfiles.QuasiDuplicateAdoption.{DuplicationRank}.QualityThreshold"
units="units" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every profile, records the pair: lower use count and the sum of the use
counts of the deuplicated profiles. Both values are capped to be in range
[0, 99]. This values are then encoded such that they fit in an integer where
8 lowest bits are equal to the capped total use count, the next 8 bits are
equal to the capped lower use count. Emitted on browser startup for every
user with at least 2 profiles. Profiles of different countries are not
considered, since they can never be merged due to the data model
differences. The metric is split by the size of differing type set
(duplication rank).
</summary>
<token key="DuplicationRank">
<variant name="1"/>
<variant name="2"/>
<variant name="3"/>
<variant name="4"/>
<variant name="5"/>
</token>
</histogram>
<histogram
name="Autofill.Deduplication.ExistingProfiles.RankOfStoredQuasiDuplicateProfiles"
units="Rank" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every profile, records the minimum number of fields in which the profile
differs from some other profile of the same country. That is, the minimum
number of fields that prevent us from deduplicating the profile. Emitted on
browser startup, for every user with at least 2 profiles. Profiles of
different countries are not considered, since they can never be merged due
to the data model differences. If no possible merge candidate exists, a
sample is emitted into the overflow bucket.
</summary>
</histogram>
<histogram
name="Autofill.Deduplication.NewProfile.{Decision}.RankOfStoredQuasiDuplicateProfiles"
units="Rank" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For the import candidate, records the minimum number of fields in which the
profile differs from some other profile of the same country. That is, the
minimum number of fields that prevent us from deduplicating the profile.
Emitted on form import. Profiles of different countries are not considered,
since they can never be merged due to the data model differences. If no
possible merge candidate exists, a sample is emitted into the overflow
bucket.
</summary>
<token key="Decision">
<variant name="Accepted"/>
<variant name="Declined"/>
</token>
</histogram>
<histogram
name="Autofill.Deduplication.{Scenario}.QualityOfQuasiDuplicateToken.{DuplicationRank}.{Type}"
units="units" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every profile, records the quality of the types of fields in which the
profile differs from some other duplicated profile of the same country.
Quality is determined as a count of good(accepted) observations - the bad
observations. This histogram is offsetted by 10, to get the real value
please subtract 10 from the recorded values. Emitted on browser startup
(ExistingProfiles) for every user with at least 2 profiles or on form import
(NewProfile). Profiles of different countries are not considered, since they
can never be merged due to the data model differences. The metric is split
by the size of differing type set (duplication rank) and the type of field.
</summary>
<token key="Scenario">
<variant name="ExistingProfiles"/>
<variant name="NewProfile.Accepted"/>
<variant name="NewProfile.Declined"/>
</token>
<token key="DuplicationRank">
<variant name="1"/>
<variant name="2"/>
<variant name="3"/>
<variant name="4"/>
<variant name="5"/>
</token>
<token key="Type" variants="AutofillProfile.StorableTypes"/>
</histogram>
<histogram
name="Autofill.Deduplication.{Scenario}.TypeOfQuasiDuplicateToken.{DuplicationRank}"
enum="AutofillSettingsVisibleTypes" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every profile, records the types of the minimum set of fields in which
the profile differs from some other profile of the same country. That is,
the set of types that prevent us from deduplicating the profile. Emitted on
browser startup (ExistingProfiles) or on form import (NewProfile), for every
user with at least 2 profiles. Profiles of different countries are not
considered, since they can never be merged due to the data model
differences. The metric is split by the size of this set (duplication rank).
</summary>
<token key="Scenario">
<variant name="ExistingProfiles"/>
<variant name="NewProfile.Accepted"/>
<variant name="NewProfile.Declined"/>
</token>
<token key="DuplicationRank">
<variant name="1"/>
<variant name="2"/>
<variant name="3"/>
<variant name="4"/>
<variant name="5"/>
</token>
</histogram>
<histogram name="Autofill.DeveloperEngagement"
enum="AutofillDeveloperEngagement" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the adoption of the HTML autocomplete type hint specification (see
http://is.gd/whatwg_autocomplete for more details). For each fillable form
detected, logs whether that form includes author-specified type hints.
</summary>
</histogram>
<histogram name="Autofill.DOMContentLoadedInOutermostMainFrame" enum="Boolean"
expires_after="2025-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the AutofillAgent receives a DOMContentLoaded event in an
outermost main frame. This is useful as a denominator for timing metrics to
see how much time is spent in a certain function per page load (where page
includes the subframes).
</summary>
</histogram>
<histogram name="Autofill.EditedAutofilledFieldAtSubmission2.Aggregate"
enum="AutofilledFieldUserEditingStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
On submission time, this metric tracks for every field that was autofilled
if the filling was accepted or subsequently corrected. This metric is
aggregated over all field types.
</summary>
</histogram>
<histogram name="Autofill.EditedAutofilledFieldAtSubmission2.ByFieldType"
enum="AutofilledFieldUserEditingStatusByFieldType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
On submission time, this metric tracks for every field that was autofilled
if the filling was accepted or subsequently corrected. This metrics resolves
the field type.
</summary>
</histogram>
<histogram name="Autofill.EmailHeuristicOnlyAcceptance"
enum="BooleanAutofillFillingAcceptance" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
This metric is intended to mimic the Autofill.KeyMetrics.FillingAcceptance
metric, but is recorded when the
kAutofillEnableEmailHeuristicOnlyAddressForms feature is enabled and an
email heuristic only form is observed. Counts for submitted forms whether
users accepted the suggestion to fill values. This is counted as 'yes' if
the user accepted such a suggestion at any time, regardless of whether other
suggestions were ignored or whether the accepted suggestion was reverted
afterwards.
This metric is experimental and may be removed in the future.
</summary>
</histogram>
<histogram name="Autofill.EmailPredictionCorrectness.Precision"
enum="EmailPredictionConfusionMatrix" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the precision of an EMAIL_ADDRESS field prediction. Emitted at form
submission time for every field predicted as EMAIL_ADDRESS type.
</summary>
</histogram>
<histogram name="Autofill.EmailPredictionCorrectness.Recall"
enum="EmailPredictionConfusionMatrix" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the recall of an EMAIL_ADDRESS field prediction. Emitted at form
submission time for every field for which its value matches the email
format.
</summary>
</histogram>
<histogram name="Autofill.ErrorDialogShown" enum="AutofillErrorDialogType"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Log when an autofill error dialog is shown to the user along with its type.
The type here denotes the flows in which the dialog is shown. Such flows
include virtual card retrieval, masked server card risk based authentication
and etc. See "AutofillErrorDialogType" for details.
</summary>
</histogram>
<histogram name="Autofill.ErrorDialogShown.WithServerText"
enum="AutofillErrorDialogType" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs when an autofill error dialog is shown along with its type. The type
here denotes the flows in which the dialog is shown. Such flows include
virtual card retrieval, masked server card risk based authentication and
etc. See "AutofillErrorDialogType" for details. This is a
secondary histogram to the "Autofill.ErrorDialogShown" and it is
logged when server side returns text to override the static client-side
error messages to be shown in the dialog.
</summary>
</histogram>
<histogram name="Autofill.ExpirationDateFixFlowPrompt.Events"
enum="AutofillExpirationDateFixFlowPromptEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events tracking the usage of the expiration date fix flow prompt. This
prompt is triggered whenever expiration date must be explicitly requested
from the user in order to upload the card to Google Payments.
</summary>
</histogram>
<histogram name="Autofill.ExpirationDateFixFlowPromptShown" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times the expiration date fix flow prompt is shown.
</summary>
</histogram>
<histogram name="Autofill.ExtendedMenu.EditAddress"
enum="BooleanAutofillEditAddress" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric measures how many users Clicked on the Edit Address option in
the extended Autofill menu and the next action. The metric is logged when
the user closes the edit address profile dialog.
</summary>
</histogram>
<histogram name="Autofill.ExtractForm{OwnershipType}.FieldCount" units="fields"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of FormFieldData contained in FormData::fields. Emitted whenever
a FormData is extracted in the renderer.
</summary>
<token key="OwnershipType">
<variant name="Owned"
summary="FormDatas for form controls inside HTML form tags."/>
<variant name="Unowned" summary="FormDatas for unowned form controls."/>
</token>
</histogram>
<histogram
name="Autofill.FastCheckout.CapabilitiesFetcher.CacheStateForIsTriggerFormSupported"
enum="FastCheckoutCacheStateForIsTriggerFormSupported"
expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Cache state for when a given origin and form signature are checked for their
Fast Checkout trigger form capability.
</summary>
</histogram>
<histogram
name="Autofill.FastCheckout.CapabilitiesFetcher.HttpResponseAndNetErrorCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The http response code or net error code returned on a query.
</summary>
</histogram>
<histogram name="Autofill.FastCheckout.CapabilitiesFetcher.ParsingResult"
enum="FastCheckoutCapabilitiesParsingResult" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Parsing result of the response body of a Fast Checkout capabilities fetch.
</summary>
</histogram>
<histogram name="Autofill.FastCheckout.CapabilitiesFetcher.ResponseTime"
units="ms" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Response time for fetching FastCheckout capabilities. The time is recorded
for both successful and failed fetches.
</summary>
</histogram>
<histogram name="Autofill.FastCheckout.RunOutcome"
enum="FastCheckoutRunOutcome" expires_after="2024-11-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of a Fast Checkout run. It is recorded when a run is completed,
successfully or not, or when the run got cancelled, e.g. by the user closing
the tab.
</summary>
</histogram>
<histogram name="Autofill.FastCheckout.TriggerOutcome"
enum="FastCheckoutTriggerOutcome" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The outcome of an attempt to trigger a FastCheckout bottomsheet for a user
that has the feature enabled and a form on a site for which FastCheckout is
known to be available.
</summary>
</histogram>
<histogram
name="Autofill.FieldByFieldFilling.FieldTypeUsed.{FillingProduct}{ClassificationMatchesFillingProduct}"
enum="AutofillFieldByFieldFillingTypes" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Specifies the field type used to fill a specific field and whether the
product chosen (Address, payments, passwords etc) matches the field
classification. Recorded when a field-by-field filling suggestion is
accepted by the user from an Autofill popup.
</summary>
<token key="FillingProduct">
<variant name="Address"/>
<variant name="CreditCard"/>
<variant name="Password"/>
<variant name="VirtualCard.StandaloneCvc"/>
</token>
<token key="ClassificationMatchesFillingProduct"
variants="ClassificationMatchesFillingProduct"/>
</histogram>
<histogram name="Autofill.FieldCount" units="form fields"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Number of fields in a form that Autofill encounters.</summary>
</histogram>
<histogram name="Autofill.FieldFillingStats.{FormType}"
enum="FieldFillingStatus" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the status (see FieldFillingStatus) of a submitted field. Emitted once
per field at submission time.
</summary>
<token key="FormType">
<variant name="Address"/>
<variant name="CreditCard"/>
<variant name="PostalAddress"/>
<variant name="VirtualCard.StandaloneCvc"/>
</token>
</histogram>
<histogram
name="Autofill.FieldFillingStats{AutofillFillingMethod}{AutofillFormType}{FillingStatus}"
units="fields" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For a filling method (full form, group filling or field-by-field-filling)
and {AutofillFormType} logs an histogram of the number of fields with the
{FillingStatus} at submission time. The non-aggregated FillingStatuses are
mutually exclusive and each field can only contribute to one of
corresponding histograms. However, the combined histograms that are prefixed
with Total are not mutually exclusive and a single field can contribute to
multiple of those.
</summary>
<token key="AutofillFillingMethod" variants="AutofillFillingMethod"/>
<token key="AutofillFormType" variants="AutofillFormType"/>
<token key="FillingStatus" variants="AutofillFieldFillingStats"/>
</histogram>
<histogram name="Autofill.FieldFillingStats{AutofillFormType}{FillingStatus}"
units="fields" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For {AutofillFormType} logs an histogram of the number of fields with the
{FillingStatus} at submission time. The non-aggregated FillingStatuses are
mutually exclusive and each field can only contribute to one of
corresponding histograms. However, the combined histograms that are prefixed
with Total are not mutually exclusive and a single field can contribute to
multiple of those.
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
<token key="FillingStatus" variants="AutofillFieldFillingStats"/>
</histogram>
<histogram name="Autofill.FieldPrediction.PhoneNumberGrammarUsage2"
enum="PhoneNumberGrammarUsage2" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the index of the phone number grammar that matched. Emitted when
parsing forms using local heuristics.
</summary>
</histogram>
<histogram
name="Autofill.FieldPredictionQuality.Aggregate{AutofillFieldPredictionSource}"
enum="AutofillFieldPredictionQuality" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Aggregate Autofill field-type prediction outcomes. See
https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the
values. {AutofillFieldPredictionSource}
</summary>
<token key="AutofillFieldPredictionSource"
variants="AutofillFieldPredictionSource">
<variant name=""/>
</token>
</histogram>
<histogram
name="Autofill.FieldPredictionQuality.ByFieldType{AutofillFieldPredictionSource}"
enum="AutofillFieldPredictionQualityByFieldType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill field-type prediction outcomes, broken down by field type. See
https://en.wikipedia.org/wiki/Confusion_matrix for an explanation of the
values. {AutofillFieldPredictionSource}
</summary>
<token key="AutofillFieldPredictionSource"
variants="AutofillFieldPredictionSource">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.FieldPrediction{AutofillFieldPredictionSource}"
units="units" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Predicted and actual form field type. This is a computed sparse histogram
where the value is ((predicted << 16)| actual). Predicted and actual
are taken from the autofill::FieldType enumeration.
{AutofillFieldPredictionSource}
</summary>
<token key="AutofillFieldPredictionSource"
variants="AutofillFieldPredictionSource">
<variant name=""/>
</token>
</histogram>
<histogram
name="Autofill.FillDuration.FromInteraction.WithAutofill{AutofillFormType}"
units="units" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between the user's first interaction with a form and the form's
submission, for an autofilled form. An interaction requires changing a form
control's value manually or via autofill. The interaction can happen on a
different form than the one which is submitted. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType">
<variant name=""/>
</token>
</histogram>
<histogram
name="Autofill.FillDuration.FromInteraction.WithoutAutofill{AutofillFormType}"
units="units" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between the user's first interaction with a form and the form's
submission, for a non-autofilled form. An interaction requires changing a
form control's value manually or via autofill. The interaction can happen on
a different form than the one which is submitted. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.FillDuration.FromLoad.WithAutofill" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between form load and form submission, for an autofilled form.
</summary>
</histogram>
<histogram name="Autofill.FillDuration.FromLoad.WithoutAutofill" units="units"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between form load and form submission, for a non-autofilled
form.
</summary>
</histogram>
<histogram name="Autofill.FilledFieldType.Password"
enum="BooleanFieldClassificationType" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each field filled with passwords data, whether it is classified
as target filling password or not. Emitted at the time of the filling.
</summary>
</histogram>
<histogram name="Autofill.FilledFieldType.{FormType}"
enum="FieldClassificationType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records for each field autofilled with {FormType} data, whether it is
classified with autocomplete attribute recognized, unrecognized, or whether
it is simply unclassified. Emitted at destruction time of
BrowserAutofillManager if at least one autofill operation was performed.
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram
name="Autofill.FillingMethodUsed.{FillingProduct}{ClassificationMatchesFillingProduct}"
enum="AutofillFillingMethodMetric" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when an Autofill suggestion is accepted by the user. The filling
method defines whether the user chose to fill the whole form, a specific
field or a group of fields (address fields, phone fields, name fields or
email fields).
</summary>
<token key="FillingProduct">
<variant name="Address"/>
<variant name="CreditCard"/>
<variant name="Password"/>
<variant name="VirtualCard.StandaloneCvc"/>
</token>
<token key="ClassificationMatchesFillingProduct"
variants="ClassificationMatchesFillingProduct"/>
</histogram>
<histogram name="Autofill.FillingOperationCount.{FormType}" units="unit"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how many time the user uses Autofill to fill forms and fields with
{FormType} data before submitting. Does not account for refill operations.
Recorded on the destruction of BrowserAutofillManager if at least one
autofill operation was performed.
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.FormEvents.CreditCard.WithBenefits.{CardIssuerId}"
enum="AutofillFormEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill form events for credit card forms that contain at least one
suggestion where a card benefit is available. This includes logging for when
card suggestions with benefits are shown, selected, filled, and submitted,
and logs at each of those times. Log emission pertains to the credit card
issuer, {CardIssuerId}.
</summary>
<token key="CardIssuerId" variants="Autofill.CreditCardIssuerId"/>
</histogram>
<histogram name="Autofill.FormEvents.CreditCard.WithOffer"
enum="AutofillFormEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill form events for credit card forms. These are recorded when the user
interacts with a form requesting a credit card, a dropdown of suggestions is
shown and at least one of the suggestions has a linked credit card offer.
</summary>
</histogram>
<histogram name="Autofill.FormEvents.CreditCard{CreditCardDataAvailability}"
enum="AutofillFormEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill form events for credit card forms. These are recorded when the user
interacts with a form requesting a credit card. {CreditCardDataAvailability}
Important caveat about submission metrics: - Submission using autofill data
is determined by simply evaluating if there was a fill operation in this
page. So, if the user filled with local data, completed erased or modified
the data after and then submitted, we would only emit one "Submitted
with server suggestion filled (once)"; - The submission segmentation
works by checking what kind of data was last filled for this type of form in
the page load. So, if a user initially filled with local data and after that
filled with server, we will only emit "Submitted with server suggestion
filled (once)".
</summary>
<token key="CreditCardDataAvailability" variants="CreditCardDataAvailability">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.FormEvents.{AddressFormType}"
enum="AutofillFormEvent" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill form events for {AddressFormType} forms. These are recorded when
the user interacts with a form requesting an address.
Important caveat about submission metrics: - Submission using autofill data
is determined by simply evaluating if there was a fill operation in this
page. So, if the user filled with local data, completed erased or modified
the data after and then submitted, we would only emit one "Submitted
with server suggestion filled (once)"; - The submission segmentation
works by checking what kind of data was last filled for this type of form in
the page load. So, if a user initially filled with local data and after that
filled with server, we will only emit "Submitted with server suggestion
filled (once)".
</summary>
<token key="AddressFormType" variants="AutofillFormType.Address"/>
</histogram>
<histogram name="Autofill.FormFillingComplexScore.{AutofillFormType}"
units="complex filling score" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For {AutofillFormType} logs a filling complex score on form submission that
is calculated as following:
Score = 10 * number_of_accepted_fields + number_of_corrected_fields
The score resembles a two dimensional histogram to evaluate the number of
accepted fields against the number of corrected ones. Both number of fields
used in the score are limited to 9 to guaranteed that the score will be
within 0 and 99 and that the significant digit corresponds to the number of
accepted fields while the least significant digit corresponds to the number
of corrected fields.
The score is only emitted when there is at least one correct or accepted
field.
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.FormFillingScore.{AutofillFormType}"
units="filling score" expires_after="2024-12-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For {AutofillFormType} logs a filling score on form submission that is
calculated as following:
Score = 2 * number_of_accepted_fields - 3 * number_of_corrected_fields + 100
The score is only emitted when there is at least one correct or accepted
field.
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.FormFillSuccessIOS"
enum="BooleanAutofillFormFillSuccessIOS" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the form was successfully filled by Autofill on iOS.
</summary>
</histogram>
<histogram name="Autofill.FormForest.GetBrowserFormOfRendererForm.Duration"
units="microseconds" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to retrieve a browser form for a given renderer
form. (A renderer form is a single frame's form, whereas a browser form may
or may not transcend multiple frames.) This corresponds to the duration of
FormForest::GetBrowserFormOfRendererForm() and is emitted per each
execution. Note that histogram samples for clients without high-resolution
clocks are dropped.
</summary>
</histogram>
<histogram name="Autofill.FormForest.GetRendererFormsOfBrowserForm.Duration"
units="microseconds" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to retrieve the renderer forms for a given browser
form. (A renderer form is a single frame's form, whereas a browser form may
or may not transcend multiple frames.) This corresponds to the duration of
FormForest::GetRendererFormsOfBrowserForm() and is emitted per each
execution. Note that histogram samples for clients without high-resolution
clocks are dropped.
</summary>
</histogram>
<histogram name="Autofill.FormForest.UpdateTreeOfRendererForm.Duration"
units="microseconds" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it takes to update Autofill's form/frame tree. This
corresponds to the duration of FormForest::UpdateTreeOfRendererForm() and is
emitted per each execution. Note that histogram samples for clients without
high-resolution clocks are dropped.
</summary>
</histogram>
<histogram name="Autofill.FormForest.UpdateTreeOfRendererForm.Visits"
units="node-visits" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records nodes visited on a form/frame tree. This is emitted per each call of
FormForest::UpdateTreeOfRendererForm() that actually does an entire tree
traversal.
</summary>
</histogram>
<histogram name="Autofill.FormSubmission.PerProfileType"
enum="BrowserProfileType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This histogram records the browser profile type when an autofill form is
submitted.
</summary>
</histogram>
<histogram
name="Autofill.Funnel.ClassifiedAsTargetFilling.FillAfterSuggestion.Password"
enum="BooleanAutofillFillAfterSuggestion" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users accepted any password suggestion that was shown to them
for a given form. This metric is conditioned to those suggestions that were
triggered via the context menu on a field that matches the target filling
product password.
This metric is only recorded if a suggestion for the password form was
shown, accepted, and the suggestion was filled successfully. This is
recorded once per navigation. It is reported as "User chose to
fill" once. It does not matter if the user clears the filled values nor
if the user accepts a different suggestion later.
If the accepted suggestion is not filled (e.g., if it required
authentication and the user cancelled or failed that step), then this metric
is not recorded.
</summary>
</histogram>
<histogram
name="Autofill.Funnel.ClassifiedFieldAutocompleteUnrecognized.FillAfterSuggestion.Address"
enum="BooleanAutofillFillAfterSuggestion" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Like Autofill.Funnel.FillAfterSuggestion.Address, but conditioned on
autocomplete=unrecognized fields. The metric is only recorded if the user
saw a suggestion on an autocomplete=unrecognized field. On desktop, that
means using the manual fallback option through the context menu. On mobile,
keyboard accessory suggestions appear independently of the autocomplete
attribute. Emitted on navigation (when the AutofillManager is destroyed), at
most once per page.
</summary>
</histogram>
<histogram name="Autofill.Funnel.FillAfterSuggestion.{FormType}"
enum="BooleanAutofillFillAfterSuggestion" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users accepted any autofill suggestion that was shown to them
for a given form.
This metric is only recorded if a suggestion for the {FormType} was shown,
accepted, and the suggestion was filled successfully. This is recorded once
per navigation. It is reported as "User chose to fill" once. It
does not matter if the user clears the filled values nor if the user accepts
a different suggestion later.
If the accepted suggestion is not filled (e.g., if it required
authentication and the user cancelled or failed that step), then this metric
is not recorded.
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.Funnel.InteractionAfterParsedAsType.{FormType}"
enum="BooleanAutofillInteractionAfterParsedAsType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users interacted with a form of a certain type.
Focusing a field is sufficient to consider a form as being interacted with.
The user does not need to type anything. Note that some forms may get
focused on page load.
This metric is recorded once per form observed by Autofill, but only for
forms that Autofill classifies to be of the type indicated by the histogram
name. If a form changes dynamically, Autofill interprets the forms before
and after the change as two different forms and records two values. If a
form did not have features that classify it as a form of a certain type
(e.g. an address form or payment form), then nothing is recorded. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram
name="Autofill.Funnel.NotClassifiedAsTargetFilling.FillAfterSuggestion{AutofillFormType}"
enum="BooleanAutofillFillAfterSuggestion" expires_after="2025-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users accepted any autofill suggestion that was shown to them
for a given form. This metric is conditioned to those suggestions that were
triggered via the context menu on a field that does not match the target
filling product.
This metric is only recorded if a suggestion for the {AutofillFormType} was
shown, accepted, and the suggestion was filled successfully. This is
recorded once per navigation. It is reported as "User chose to
fill" once. It does not matter if the user clears the filled values nor
if the user accepts a different suggestion later.
If the accepted suggestion is not filled (e.g., if it required
authentication and the user cancelled or failed that step), then this metric
is not recorded.
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.Funnel.ParsedAsType.{FormType}"
enum="BooleanAutofillParsedAsType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether a form was parsed/interpreted to be of the type indicated in
the histogram name.
This metric is recorded once for each form observed by Autofill. If a form
changes dynamically, then Autofill treats the different versions of the form
as different forms. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.Funnel.SubmissionAfterFill.{FormType}"
enum="BooleanAutofillSubmissionAfterFill" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users submitted a form that was filled via autofill.
This metric is recorded once for each form observed by Autofill but only for
forms that the user filled via Autofill. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.Funnel.SuggestionAfterInteraction.{FormType}"
enum="BooleanAutofillSuggestionAfterInteraction" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users were shown suggestions to fill the form, given that
they have already interacted with the form.
This metric is recorded only for forms that users interacted with. It is
recorded only once per form, meaning that it does not matter how often the
user sees suggestions. If a form changes dynamically, then Autofill treats
the different versions of the form as different forms. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.Iban.CountryOfSaveAcceptedIban" enum="IbanCountry"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The country code of an IBAN that was accepted to be saved. Recorded upon the
user deciding to accept the offer to save the IBAN. This metric includes
both local and server IBANs.
</summary>
</histogram>
<histogram name="Autofill.Iban.CountryOfSaveOfferedIban" enum="IbanCountry"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The country code of an IBAN that was offered to be saved. Recorded upon
deciding whether to offer save.
</summary>
</histogram>
<histogram name="Autofill.Iban.CountryOfSelectedIban" enum="IbanCountry"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The country code of an IBAN suggestion that was selected. Recorded when the
user clicks on the IBAN suggestion. This metric includes both local and
server IBANs.
</summary>
</histogram>
<histogram name="Autofill.Iban.ShowSuggestionsBlocklistDecision"
enum="IbanSuggestionBlockListStatus" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when the user has IBANs and clicks on an IBAN form field. Logs
whether IBAN suggestions were allowed to be shown, blocked from being shown,
or if the blocklist was not accessible at all.
</summary>
</histogram>
<histogram name="Autofill.Iban.Suggestions" enum="IbanSuggestionsEvent"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
These metrics are relevant to the IBAN suggestions popup, such as when it is
shown or when a suggestion is selected. The IBAN-based suggestions popup
gets displayed when a form's field that can be autofilled with an IBAN is
selected, and the user has at least one IBAN saved. The metric is recorded
upon each action, such as IBAN suggestions being shown or selected.
</summary>
</histogram>
<histogram name="Autofill.Iban.UnmaskIbanDuration{UnmaskIbanResult}" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded at a successful return of an unmask server IBAN call. This metric
tracks the duration from the user's click on a server IBAN suggestion to the
successful reception of a response of unmasking a server IBAN.
</summary>
<token key="UnmaskIbanResult">
<variant name="" summary="UnmaskIban request overall"/>
<variant name=".Failure" summary="UnmaskIban request failed"/>
<variant name=".Success" summary="UnmaskIban request succeeded"/>
</token>
</histogram>
<histogram name="Autofill.Iban.UnmaskIbanResult" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded upon receiving the response for an unmask server IBAN call. This
metric tracks whether the unmask call succeeded or failed.
</summary>
</histogram>
<histogram name="Autofill.IbanUpload.SaveFailed" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Indicates that an IBAN upload save failed, logged at the time of failure.
Records true if the IBAN was able to be saved locally as a fallback, or
false if it was not (such as in the case of an existing local IBAN).
</summary>
</histogram>
<histogram name="Autofill.IbanUploadEnabled" enum="IbanUploadEnabledStatus"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the reason why (or why not) IBAN upload was enabled. Logged when a user
submits a form, which triggers the check to decide whether to ask the users
if they want to upload the IBAN.
</summary>
</histogram>
<histogram name="Autofill.IbanUploadEnabled.{AutofillPaymentsSigninState}"
enum="IbanUploadEnabledStatus" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the reason why (or why not) IBAN upload was enabled. Logged when a user
submits a form, which triggers the check to decide whether to ask the users
if they want to upload the IBAN.
</summary>
<token key="AutofillPaymentsSigninState"
variants="Autofill.PaymentsSigninState"/>
</histogram>
<histogram name="Autofill.ImageFetcher.RequestLatency" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the roundtrip latency for fetching an image in AutofillImageFetcher. It
is logged when the fetch request for image is completed.
</summary>
</histogram>
<histogram name="Autofill.ImageFetcher.Result" enum="BooleanSuccess"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record the image fetch result of one image. If true, then the image was
fetched successfully.
</summary>
</histogram>
<histogram name="Autofill.iOS.FormActivity.SendRatio" units="%"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the percentage of form activities that were really sent to the
browser from the renderer. Recorded when the browser receives the last
message of a batch of form activity messages. Only recorded on iOS.
</summary>
</histogram>
<histogram name="Autofill.iOS.FormActivity.{Outcome}Count" units="count"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of form activies observed in the renderer where
{Outcome}. Recorded when the browser receives the last message of a batch of
form activity messages. Only recorded on iOS.
</summary>
<token key="Outcome">
<variant name="Drop" summary="form activity was dropped"/>
<variant name="Send" summary="form activity sent to the browser"/>
</token>
</histogram>
<histogram name="Autofill.iOS.FormRemoval.RemovedForms" units="count"
expires_after="2024-09-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of removed forms in a form removal event. Recorded when a
set of html forms or formless fields are removed from the page. Maximum
number of forms recorded is 100. iOS only.
</summary>
</histogram>
<histogram name="Autofill.iOS.FormRemoval.RemovedUnownedFields" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records then number of removed formless fields in a form removal event.
Recorded when a set of html forms or formless fields are removed from the
page. Maximum number of fields recorded is 100. iOS only.
</summary>
</histogram>
<histogram name="Autofill.iOS.FormRemoval.SubmissionDetected" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a form submission was inferred after html forms or formless
fields were removed from the page. Recorded when a set of html forms or
formless fields are removed from the page. iOS only.
</summary>
</histogram>
<histogram name="Autofill.iOS.FormRemoval.SubmissionDetected.IsFormless"
enum="Boolean" expires_after="2024-09-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the form detected as submitted after a form removal event
was the synthetic form. The synthetic form is an Autofill abstraction that
represents all fields in a web frame not directly contained in a form
element. Recorded when the browser detects a form submission after a set of
html forms or formless fields are removed from the page. iOS only.
</summary>
</histogram>
<histogram name="Autofill.IsEnabled.PageLoad" enum="BooleanEnabled"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This includes Autofill.Address.IsEnabled.PageLoad and
Autofill.CreditCard.IsEnabled.PageLoad, and tracks whether either profile
Autofill or payment Autofill is enabled on page load for a page containing
forms. It helps deduce the overlap by showing what percentage of users have
one type of Autofill enabled but not the other.
</summary>
</histogram>
<histogram name="Autofill.IsEnabled.Startup" enum="BooleanEnabled"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This includes Autofill.Address.IsEnabled.Startup and
Autofill.CreditCard.IsEnabled.Startup, and tracks whether either profile
Autofill or payment Autofill is enabled when Chrome launches. It helps
deduce the overlap by showing what percentage of users have one type of
Autofill enabled but not the other.
</summary>
</histogram>
<histogram name="Autofill.KeyMetrics.FillingAcceptance.{FormType}"
enum="BooleanAutofillFillingAcceptance" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted forms whether users accepted the suggestion to fill
values. This is counted as 'yes' if the user accepted such a suggestion at
any time, regardless whether other suggestions were ignored or whether the
accepted suggestion was reverted afterwards. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.KeyMetrics.FillingAssistance.{FormType}"
enum="BooleanAutofillFillingAssistance" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted forms whether the user filled any fields via Autofill.
If the user reverts the filling, the form is still counted as filled.
This metric is different from Autofill.KeyMetrics.FillingAcceptance in the
sense that the latter is only recorded if the user has actually seen a
prompt to fill data. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.KeyMetrics.FillingCorrectness.{FormType}"
enum="BooleanAutofillFillingCorrectness" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted and autofilled forms whether users edited at least one
filled value before submitting the form. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.KeyMetrics.FillingReadiness.{FormType}"
enum="BooleanAutofillFillingReadiness" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted forms whether Chromium had any address or payments data
to fill.
It does not matter whether the user actually requested to fill the data. It
does not matter either whether the data available for filling corresponded
to the submitted data. {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.KeyMetrics.FormSubmission.Autofilled.{FormType}"
enum="BooleanAutofillSubmission" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for filled (by Autofill) forms whether users submitted those forms.
This is only recorded for forms that the user filled via Autofill. It does
not matter if the user reverted the filling afterwards.
This is recorded once Autofill stops tracking the form (e.g. due to a
navigation or due to removal from the DOM). {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.KeyMetrics.FormSubmission.NotAutofilled.{FormType}"
enum="BooleanAutofillSubmission" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for not filled (by Autofill) forms whether users submitted those
forms.
This is only recorded for forms into which the user typed anything but did
not fill anything. It does not matter if the user reverted what they typed.
This is recorded once Autofill stops tracking the form (e.g. due to a
navigation or due to removal from the DOM). {FormType}
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram name="Autofill.LabelInference.InferredLabelSource.AtSubmission2"
enum="InferredLabelSource" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs how/if the label of an input was derived. Emitted at form submission
for every field where the data the user entered matches some stored Autofill
data.
</summary>
</histogram>
<histogram
name="Autofill.Leipzig.Duplication.NumberOfLocalSupersetProfilesOnStartup"
units="Profiles" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the number of kLocalOrSynable profiles that are a strict superset of
some kAccount profile. This corresponds to the number of profiles that
cannot be automatically deduplicated, since no profiles should be silently
deleted from the account storage. Emitted when the Chrome user profile is
loaded.
</summary>
</histogram>
<histogram name="Autofill.Leipzig.FillingAssistanceCategory"
enum="AutofillCategoryResolvedFillingAssistance" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Like Autofill.KeyMetrics.FillingAssistance.Address, but split by profile
category.
</summary>
</histogram>
<histogram name="Autofill.Leipzig.FillingCorrectness.{Category}"
enum="BooleanAutofillFillingCorrectness" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Like Autofill.KeyMetrics.FillingCorrectness.Address, but split by profile
category.
</summary>
<token key="Category">
<variant name="AccountChrome"
summary="Only kAccount profiles originating from Chrome were used"/>
<variant name="AccountNonChrome"
summary="Only kAccount profiles originating from outside Chrome were
used"/>
<variant name="Legacy" summary="Only kLegacyOrSyncable profiles were used"/>
<variant name="Mixed"
summary="Multiple profiles of mixed categories were used"/>
</token>
</histogram>
<histogram name="Autofill.Leipzig.FillingReadinessCategory"
enum="AutofillCategoryResolvedFillingReadiness" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Like Autofill.KeyMetrics.FillingReadiness.Address, but split by profile
category.
</summary>
</histogram>
<histogram name="Autofill.LocalCardMigrationBubbleOffer{ShowType}"
enum="AutofillLocalCardMigrationBubbleOffer" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record events related to bubble showing. Logged when bubble is requested or
is actually shown to users.
</summary>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.LocalCardMigrationBubbleResult{ShowType}"
enum="AutofillLocalCardMigrationBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether and how the local card migration bubble was accepted or
closed.
</summary>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.LocalCardMigrationBubbleUserInteraction"
enum="AutofillLocalCardMigrationBubbleUserInteraction"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Record how bubble is closed by different user interactions.</summary>
</histogram>
<histogram name="Autofill.LocalCardMigrationDecision"
enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record the decisions made when determining if local card migration should be
offered.
</summary>
</histogram>
<histogram
name="Autofill.LocalCardMigrationDialogActiveDuration{AutofillLocalCardMigrationDialogDurationWithCloseEvent}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record duration of the local card migration dialog being visible to users.
{AutofillLocalCardMigrationDialogDurationWithCloseEvent}
</summary>
<token key="AutofillLocalCardMigrationDialogDurationWithCloseEvent">
<variant name=""/>
<variant name=".Accepted"
summary="The dialog was closed due to the user clicking the save
button."/>
<variant name=".Closed"
summary="The dialog was closed due to the user clicking the view
cards or done button."/>
<variant name=".Denied"
summary="The dialog was closed due to the user clicking the cancel
button."/>
</token>
</histogram>
<histogram name="Autofill.LocalCardMigrationDialogOffer"
enum="AutofillLocalCardMigrationDialogOffer" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record events related to showing the local card migration dialog.
</summary>
</histogram>
<histogram name="Autofill.LocalCardMigrationDialogUserInteraction"
enum="AutofillLocalCardMigrationDialogUserInteraction"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record user interactions related to local card migration dialog.
</summary>
</histogram>
<histogram name="Autofill.LocalCardMigrationDialogUserSelectionPercentage"
units="%" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Record the percentage of cards selected by the user in the migration dialog.
</summary>
</histogram>
<histogram
name="Autofill.LocalCardMigrationOrigin{AutofillLocalCardMigrationOrigin}"
enum="LocalCardMigrationPrompt" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when local card migration prompts are shown and/or accepted.
{AutofillLocalCardMigrationOrigin}
</summary>
<token key="AutofillLocalCardMigrationOrigin">
<variant name=""/>
<variant name=".SettingsPage" summary="Trigger from settings page"/>
<variant name=".UseOfLocalCard"
summary="Trigger from submitted form with local card"/>
<variant name=".UseOfServerCard"
summary="Trigger from submitted form with server card"/>
</token>
</histogram>
<histogram name="Autofill.LogEvent.{LogEventTypes}" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of log events of type {LogEventTypes} which have been recorded
until the FieldInfo metric is recorded into UKM at form submission or form
destruction time (whatever comes first).
</summary>
<token key="LogEventTypes">
<variant name="AblationEvent"
summary="total number of AblationEvent events recorded"/>
<variant name="All" summary="total number of all the log events recorded"/>
<variant name="AskForValuesToFillEvent"
summary="total number of AskForValuesToFillFieldLogEvent events
recorded"/>
<variant name="AutocompleteAttributeEvent"
summary="total number of AutocompleteAttributeFieldLogEvent events
recorded"/>
<variant name="FillEvent"
summary="total number of FillFieldLogEvent events recorded"/>
<variant name="HeuristicPredictionEvent"
summary="total number of HeuristicPredictionFieldLogEvent events
recorded"/>
<variant name="RationalizationEvent"
summary="total number of RationalizationFieldLogEvent events recorded"/>
<variant name="ServerPredictionEvent"
summary="total number of ServerPredictionFieldLogEvent events
recorded"/>
<variant name="TriggerFillEvent"
summary="total number of TriggerFillFieldLogEvent events recorded"/>
<variant name="TypingEvent"
summary="total number of TypingFieldLogEvent events recorded"/>
</token>
</histogram>
<histogram name="Autofill.ManageCardsPrompt{AutofillManageCardsPrompt}"
enum="AutofillManageCardsPrompt" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The frequency of user interactions with the Manage Cards prompt.
{AutofillManageCardsPrompt}
</summary>
<token key="AutofillManageCardsPrompt">
<variant name=""/>
<variant name=".Local" summary="Card was saved locally"/>
<variant name=".Upload" summary="Card was uploaded to server"/>
</token>
</histogram>
<histogram name="Autofill.ManualFallback.AddNewAddressPromptShown"
enum="AutofillAddNewAddressPromptOutcome" expires_after="2025-03-18">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the outcome of the 'Add new address' popup prompt interaction (new
address added or prompt canceled/ignored).
</summary>
</histogram>
<histogram
name="Autofill.ManualFallback.ExplicitlyTriggered.ClassifiedAsTargetFilling.Password"
enum="BooleanSelectManualFallback" expires_after="2025-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records per form type the acceptance of manual fallback suggestions on
fields that are classified as the target filling product password. This
tracks the number of times a user accepted/didn't accept the manual fallback
option in the context menu. Emitted on navigation (when the
PasswordAutofillManager is destroyed/reset), at most once per page.
</summary>
</histogram>
<histogram
name="Autofill.ManualFallback.ExplicitlyTriggered.NotClassifiedAsTargetFilling.Total"
enum="BooleanSelectManualFallback" expires_after="2025-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total acceptance of manual fallback suggestions on fields that
are either unclassified or classified differently as the filling product.
This tracks the number of times a user accepted/didn't accept the manual
fallback option in the context menu. Emitted on navigation (when the
AutofillManager/PasswordAutofillManager is destroyed/reset), at most once
per page.
</summary>
</histogram>
<histogram
name="Autofill.ManualFallback.ExplicitlyTriggered.NotClassifiedAsTargetFilling{AutofillFormType}"
enum="BooleanSelectManualFallback" expires_after="2025-01-20">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records per form type the acceptance of manual fallback suggestions on
fields that are either unclassified or classified differently as the filling
product. This tracks the number of times a user accepted/didn't accept the
manual fallback option in the context menu. Emitted on navigation (when the
AutofillManager/PasswordAutofillManager is destroyed/reset), at most once
per page.
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.ManualFallback.ExplicitlyTriggered.{AutocompleteState}.Address"
enum="BooleanSelectManualFallback" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the acceptance of manual fallback suggestions, by tracking the
number of times a user accepted/didn't accept the manual fallback option in
the context menu. Emitted on navigation (when the AutofillManager is
destroyed), at most once per page.
The "Total" variant of this metric is recorded only on classified
address fields. It represents the sum of classified address fields with
autocomplete unrecognized and with autocomplete recognized.
</summary>
<token key="AutocompleteState">
<variant name="ClassifiedFieldAutocompleteRecognized"
summary="A classified field with recognized autocomplete attribute"/>
<variant name="ClassifiedFieldAutocompleteUnrecognized"
summary="A classified field with unrecognized autocomplete attribute"/>
<variant name="Total" summary="Sum of recognized and unrecognized"/>
</token>
</histogram>
<histogram name="Autofill.Message.{MessageType}.{Event}" enum="BooleanShown"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when an autofill Android Message event occurs (shown, dismissed,
etc.) and does not emit any value otherwise. See event variants for
additional details on when each individual logging event happens.
</summary>
<token key="MessageType">
<variant name="SaveCardFailure"
summary="Autofill Android Message shown after a credit card has
failed to have been saved to the server."/>
<variant name="VirtualCardEnrollFailure"
summary="Autofill Android Message shown after a virtual card has
failed to have been enrolled."/>
</token>
<token key="Event">
<variant name="ActionClicked"
summary="Event for when the action button on the message is clicked
by the user."/>
<variant name="Dismissed"
summary="Event for when the message is dismissed."/>
<variant name="Shown"
summary="Event for when the message is initially shown."/>
</token>
</histogram>
<histogram name="Autofill.NameTokenVerificationStatusAtProfileUsage.{NameType}"
enum="AufofillStructuredTokenVerificationStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each {NameType} in a given AutofillProfile, the verification status of
the corresponding non-empty type is recorded when a profile is used to fill
a form.
</summary>
<token key="NameType">
<variant name="Any" summary="any of the following"/>
<variant name="FirstLast" summary="the first last name of the profile"/>
<variant name="Full" summary="the full name of the profile"/>
<variant name="Last" summary="the last name of the profile"/>
<variant name="Middle" summary="the middle name of the profile"/>
<variant name="SecondLast" summary="the second last name of the profile"/>
</token>
</histogram>
<histogram name="Autofill.NumberOfDriversPerFactory" units="count"
expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the maximum number of simultaneously existing drivers that a factory
saw over its lifetime. Recorded on all platforms except for iOS. Recorded on
destruction of the factory, which happens on destruction of the WebContents.
</summary>
</histogram>
<histogram name="Autofill.NumberOfLastUsedDatesAfterFilling" units="Uses"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
After filling an address and updating its last use date, emits the total
number of last used dates that the profile has stored. This is relevant when
AutofillTrackMultipleUseDates is enabled, since the feature enables tracking
the last three use dates of the profile. The metrics provides insights into
the number of profiles that were already used multiple times after the
feature got introduced.
</summary>
</histogram>
<histogram name="Autofill.NumberOfProfilesConsideredForDedupe" units="profiles"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Autofill profiles that have been considered for deduplication.
Emitted once per major version, if the user has at least two profiles.
</summary>
</histogram>
<histogram name="Autofill.NumberOfProfilesRemovedDuringDedupe" units="profiles"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Autofill profiles that have been removed during deduplication.
Emitted once per major version, if the user has at least two profiles.
</summary>
</histogram>
<histogram name="Autofill.NumericQuantity.DidTriggerSuggestions" enum="Boolean"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs whether a field with a NUMERIC_QUANTITY heuristic prediction and
non-empty server prediction triggered suggestions or not. The metric is
emitted on form submission.
</summary>
</histogram>
<histogram name="Autofill.NumericQuantityCollidesWithServerPrediction"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs that a field with a heuristic prediction for an NUMERIC_QUANTITY
collides with a server prediction. The metric is emitted on form submission.
</summary>
</histogram>
<histogram name="Autofill.Offer.SelectedCardHasOffer"
enum="AutofillCreditCardOfferSelection" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When at least one of the cards in the Autofill suggestions list has a linked
offer and the user selects a suggestion, this metric records whether or not
the selected suggestion had a linked offer. Nothing is recorded if none of
the cards suggested have linked offers.
</summary>
</histogram>
<histogram name="Autofill.Offer.StoredOfferCount2.{OfferType}" units="offers"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of Autofill offers a user has stored (including if the
user has zero offers), separated by offer type, and measured at Chrome
profile launch time.
</summary>
<token key="OfferType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram name="Autofill.Offer.StoredOfferRelatedCardCount" units="cards"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of the credit cards an autofill card linked offer data is
related to, measured at Chrome profile launch time.
</summary>
</histogram>
<histogram name="Autofill.Offer.StoredOfferRelatedMerchantCount.{OfferType}"
units="merchants" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of the merchants an autofill offer data is related to,
separated by offer type, and measured at Chrome profile launch time.
</summary>
<token key="OfferType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram name="Autofill.Offer.SubmittedCardHasOffer"
enum="AutofillCreditCardOfferSubmission" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When at least one of the cards in the Autofill suggestions list has a linked
offer and the user submits the form, this metric records whether or not the
form was submitted using the card with a linked offer. Nothing is recorded
if none of the cards suggested have linked offers.
</summary>
</histogram>
<histogram name="Autofill.Offer.SuggestedCardsHaveOffer"
enum="AutofillCreditCardOfferSuggestion" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When the user is shown the Autofill suggestions list, this metric records
whether or not a credit card that is linked to an offer is shown as part of
the suggestions.
</summary>
</histogram>
<histogram name="Autofill.Offer.Suggestion2.{OfferType}"
enum="OffersSuggestionsEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is recorded every time an event related to an individual offer
suggestion in the offers suggestions popup gets triggered. The offers
suggestions popup gets displayed when a form's field that can be autofilled
with an offer is selected, and there is no promo code already filled into
the field.
This histogram is different from Autofill.Offer.Suggestion.{OfferType}
because Autofill.Offer.Suggestion.{OfferType} logged that suggestions were
shown when a promo code was already filled into the field and the field was
clicked again, but in this case suggestions would not have been shown due to
the field already having a full value. Since we updated the logic for when
this histogram is logged to, we also needed to create a new histogram.
</summary>
<token key="OfferType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram name="Autofill.Offer.SuggestionsPopupShown2"
enum="OffersSuggestionsPopupEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric records two enums, one for every time the offers suggestions
popup is shown, and another for that same event, but only one per unique
field. The offers suggestions popup is shown when a form's field that can be
autofilled with an offer is selected, and there is no promo code already
filled into the field.
This histogram is different from Autofill.Offer.SuggestionsPopupShown
because Autofill.Offer.SuggestionsPopupShown logged that suggestions were
shown when a promo code was already filled into the field and the field was
clicked again, but in this case suggestions would not have been shown due to
the field already having a full value. Since we updated the logic for when
this histogram is logged to, we also needed to create a new histogram.
</summary>
</histogram>
<histogram name="Autofill.Offer.SyncedOfferDataBeingValid" units="offers"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether the offer data is valid or not, measured whenever offer data
is synced down via Sync.
</summary>
</histogram>
<histogram name="Autofill.OfferNotificationBubbleOffer.{BubbleType}"
enum="BooleanPreviouslyShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the offer notification bubble is the first such offer that
the user has been shown or is reshown due to user actions. The metric is
recorded when the bubble is shown.
</summary>
<token key="BubbleType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram
name="Autofill.OfferNotificationBubblePromoCodeButtonClicked.{BubbleType}"
enum="BooleanClicked" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the copy promo code button for an offer notification bubble is
clicked by the user. The subhistogram is the type of offer shown, such as
GPay promo code offer or free-listing coupon offer.
</summary>
<token key="BubbleType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram name="Autofill.OfferNotificationBubbleResult.{BubbleType}{ShowType}"
enum="AutofillOfferNotificationBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the offer notification bubble. Recorded when
the bubble is closed.
</summary>
<token key="BubbleType" variants="Autofill.OfferNotification.Type"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.OfferNotificationBubbleSuppressed.{BubbleType}"
enum="BooleanSuppressed" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the offer notification bubble should show but gets suppressed
due to reasons like show frequency rate control. The subhistogram is the
type of offer shown, such as GPay promo code offer or free-listing coupon
offer.
</summary>
<token key="BubbleType" variants="Autofill.OfferNotification.Type"/>
</histogram>
<histogram name="Autofill.OtpAuth.{OtpAuthType}.Attempt"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when an OTP authentication starts and does not emit any value
otherwise.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram
name="Autofill.OtpAuth.{OtpAuthType}.RequestLatency.SelectChallengeOptionRequest"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the roundtrip latency of the SelectChallengeOptionRequest in the OTP
authentication.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram
name="Autofill.OtpAuth.{OtpAuthType}.RequestLatency.UnmaskCardRequest"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the roundtrip latency of the UnmaskCardRequest in the OTP
authentication.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpAuth.{OtpAuthType}.Result"
enum="AutofillOtpAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Logs the result of the OTP authentication.</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpAuth.{OtpAuthType}.RetriableError"
enum="AutofillOtpAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs any retriable failure before the OTP authentication completes.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpInputDialog.{OtpAuthType}.ErrorMessageShown"
enum="AutofillOtpInputDialogError" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the type of the error when any temporary error is shown in the card
unmask OTP dialog.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpInputDialog.{OtpAuthType}.NewOtpRequested"
enum="BooleanRequested" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when the "Get New Code" button is clicked and a new OTP
is requested. Doesn't emit any other value.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpInputDialog.{OtpAuthType}.Result"
enum="AutofillOtpInputDialogResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the reason of the closure when the card unmask OTP dialog is closed.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.OtpInputDialog.{OtpAuthType}.Result.{WithError}"
enum="AutofillOtpInputDialogResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the reason of the closure when the card unmask OTP dialog is closed.
This breaks down on whether any temporary error happened before the card
unmask OTP dialog was closed.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
<token key="WithError" variants="Autofill.DialogError"/>
</histogram>
<histogram name="Autofill.OtpInputDialog.{OtpAuthType}.Shown"
enum="BooleanShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when the card unmask OTP dialog is shown. Doesn't emit any other
value.
</summary>
<token key="OtpAuthType" variants="Autofill.OtpAuth.Type"/>
</histogram>
<histogram name="Autofill.PaymentMethods.CardBenefitsIsEnabled.Startup"
enum="BooleanEnabled" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks enablement of the credit card benefits toggle on the payment methods
settings page. This histogram will be populated during profile loadup for
users who have enabled autofill for payment methods. A value of true denotes
that credit card benefits are enabled for the user, while false denotes that
they are not.
</summary>
</histogram>
<histogram
name="Autofill.PaymentMethods.CheckoutFlow.ReauthUsage.{PaymentMethodType}.{AuthenticationMethod}"
enum="MandatoryReauthAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the users mandatory reauth result during the checkout flow for
opted-in users breakdown by each card type and each authentication method.
Whenever a reauth opted-in user starts, succeeds or fails the mandatory
reauth flow during a payments autofill form fill, we will log the
MandatoryReauthAuthEvent to this histogram. This is logged in order to get
the reauth usages and corresponding success rate for each breakdown. This
subhistogram pertains to {PaymentMethodType}s that used
{AuthenticationMethod} during the checkout flow.
</summary>
<token key="PaymentMethodType"
variants="Autofill.NonInteractivePaymentMethodType"/>
<token key="AuthenticationMethod"
variants="Autofill.MandatoryReauth.AuthenticationMethod"/>
</histogram>
<histogram name="Autofill.PaymentMethods.CvcStorageIsEnabled.Startup"
enum="BooleanEnabled" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the user opt-in rate for CVC storage. This histogram will be
populated during profile loadup for users who have enabled autofill for
payments. It is not reported for incognito profiles. A value of true denotes
that the CVC feature is enabled, while false denotes the feature is
disabled.
</summary>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.AuthEvent.SettingsPage.{ActionType}"
enum="MandatoryReauthAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the auth result when the user tries to {ActionType} and mandatory
reauth feature is enabled. Whenever a user tries to {ActionType}, we will
log into the `flow started` bucket. The user would then be challenged with
an auth, where if the auth was successful, we will log in the `flow
succeded` bucket, else we will log in the `flow failed` bucket.
</summary>
<token key="ActionType">
<variant name="DeleteCard"
summary="delete a card from the payment methods settings"/>
<variant name="EditCard"
summary="edit a card on the payment methods settings"/>
</token>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.CheckoutFlow.ReauthOfferOptInDecision2"
enum="MandatoryReauthOfferOptInDecision" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the detailed reason why (or why not) mandatory reauth opt-in was
offered during a credit card checkout flow. Whenever we determine whether to
offer the mandatory reauth opt-in prompt, we will log the decision result to
this histogram.
</summary>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.OptChangeEvent.{Source}.{ChangingStatus}"
enum="MandatoryReauthAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the users auth result during the {ChangingStatus} flow for the
mandatory reauth feature. Whenever a user triggers to change the mandatory
reauth feature from the {Source}, we will log into the `flow started`
bucket. The user would then be challenged with an auth, where if the auth
was successful, we will log in the `flow succeded` bucket, else we will log
in the `flow failed` bucket.
</summary>
<token key="Source" variants="Autofill.MandatoryReauth.Source"/>
<token key="ChangingStatus"
variants="Autofill.MandatoryReauth.ChangingStatus"/>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.OptInBubbleOffer{ShowType}"
enum="MandatoryReauthOptInBubbleOffer" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks events related to offering the mandatory reauth opt-in feature, for
instance when it is shown or why it is not shown. This metric is recorded
when the mandatory reauth opt-in prompt is or is not displayed. Mandatory
reauth requires the user to unlock their device or pass a biometric auth
when autofilling payment method information.
</summary>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.OptInBubbleResult{ShowType}"
enum="MandatoryReauthOptInBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the reason the mandatory reauth opt-in prompt was closed. This metric
is recorded when the user closes the mandatory reauth opt-in prompt.
Mandatory reauth requires the user to unlock their device or pass a
biometric auth when autofilling payment method information.
</summary>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram
name="Autofill.PaymentMethods.MandatoryReauth.OptInConfirmationBubble"
enum="MandatoryReauthOptInConfirmationBubbleMetric"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks various events related to the mandatory reauth opt-in confirmation
prompt. These metrics are recorded when the prompt is displayed or the user
interacts with the prompt. Mandatory reauth requires the user to unlock
their device or pass a biometric auth when autofilling payment method
information.
</summary>
</histogram>
<histogram
name="Autofill.PaymentMethods.SettingsPage.StoredCreditCardCountBeforeCardAdded"
units="cards" expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of stored credit cards (both local and server) after a
user adds a new local card through the Chrome payment methods settings page.
The number of existing cards is calculated before saving the new card, but
the value is recorded after saving the new card. Note that the new local
card is not counted towards this number (i.e. if there aren't any existing
cards when adding the new card, the "cards" bucket labeled 0 will
be incremented).
</summary>
</histogram>
<histogram
name="Autofill.PaymentsNetworkInterface.RequestLatency.GetCardUploadDetails{Result}"
units="ms" expires_after="2025-01-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the roundtrip latency of a GetCardUploadDetailsRequest in the
PaymentsNetworkInterface. This is recorded when the response is received
(right before the callback is called).
</summary>
<token key="Result">
<variant name="" summary="Includes all result types."/>
<variant name=".Failure" summary="Failed to get the card upload details."/>
<variant name=".Success"
summary="Successfully got the card upload details."/>
</token>
</histogram>
<histogram
name="Autofill.PaymentsNetworkInterface.{PaymentsRequestType}.ClientSideTimedOut"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For an API call to Google Payments servers of type {PaymentsRequestType},
denotes whether or not that API call triggered the client-side timeout.
Logged when the request either completes or times out on the client side,
and only if there is a client-side timeout value specified for the given
type.
The non-timeout case is logged only if the request succeeds according to the
server, to try to best measure the ratio of failed calls that are due to the
client-side timeout.
</summary>
<token key="PaymentsRequestType" variants="Autofill.PaymentsRequestType"/>
</histogram>
<histogram name="Autofill.PerfectFilling.{FormType}" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For a form of type {FormType}, log at submission time if the filling
experience was perfect. In a perfect filling experience, the user must have
not edited any field, meaning that the filed must either be autofilled
without prefix-matching and without further corrections, empty, have the
same value as pageload or have its value set by JavaScript.
Note that the {FormType} is not mutually exclusive. If a single form
contains both address and credit card information, the metric is recorded
for each {FormType}. In such a combined form, both the address and the
credit card information needs to be filled perfectly, in order to record
perfect filling.
</summary>
<token key="FormType">
<variant name="Addresses" summary="Form contains address information."/>
<variant name="CreditCards"
summary="Forms contains credit card information."/>
</token>
</histogram>
<histogram name="Autofill.PlusAddresses.Modal.Events"
enum="PlusAddressModalEvent" expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by PlusAddresses.Modal.Events.
Records user interactions with the experimental plus addresses modal, which
provides context for new plus addresses and gives the user a chance to opt
out if desired. Written when the user clicks either of the cancel or ok
buttons, and when the modal is presented to the user.
</summary>
</histogram>
<histogram name="Autofill.PlusAddresses.Modal.{Status}.Refreshes"
units="refreshes" expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.Modal.{Status}.Refreshes. Records number of times a user
refreshes the proposed plus addresses during the lifetime of a creation
dialog (modal or bottomsheet). Emitted once per creation dialog including
error states.
</summary>
<token key="Status" variants="AutofillPlusAddressModalCompletionStatus"/>
</histogram>
<histogram name="Autofill.PlusAddresses.Modal.{Status}.ShownDuration"
units="ms" expires_after="2024-09-24">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.Modal.{Status}.ShownDuration. Records the duration of time the
user take to interact with the experimental plus addresses modal/bottomsheet
on iOS, providing insight on the user experience with it. The duration is
the span between when the modal/bottomsheet is shown and when the user
decides to confirm or cancel the plus address. An error status is recorded
if the user cancels after an error occurs.
</summary>
<token key="Status" variants="AutofillPlusAddressModalCompletionStatus"/>
</histogram>
<histogram name="Autofill.PlusAddresses.NetworkRequest.OauthError"
enum="GoogleServiceAuthError" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.NetworkRequest.OauthError. Records any OAuth error that the
experimental plus addresses feature encounters. This is recorded when the
PlusAddressClient needs to fetch an OAuth token to make a network request.
This enum also captures the non-error case with NONE.
</summary>
</histogram>
<histogram name="Autofill.PlusAddresses.NetworkRequest.{Type}.Latency"
units="ms" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.NetworkRequest.{Type}.Latency. Measures the latency of network
requests made by the experimental plus addresses feature. Latency is
measured as the difference between when the PlusAddressClient issues the
request and when it receives a response. The PlusAddressClient records this
whenever it gets a response for the network requests it makes.
</summary>
<token key="Type" variants="AutofillPlusAddressNetworkRequestType"/>
</histogram>
<histogram name="Autofill.PlusAddresses.NetworkRequest.{Type}.ResponseByteSize"
units="bytes" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.NetworkRequest.{Type}.ResponseByteSize. Records the response
body size of network requests made by the experimental plus addresses
feature. The PlusAddressClient records this whenever it gets a response for
the network requests it makes.
</summary>
<token key="Type" variants="AutofillPlusAddressNetworkRequestType"/>
</histogram>
<histogram name="Autofill.PlusAddresses.NetworkRequest.{Type}.ResponseCode"
enum="HttpResponseCode" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.NetworkRequest.{Type}.ResponseCode. Records HTTP response
codes of network requests made by the experimental plus addresses feature.
The PlusAddressClient records this whenever it gets a response for the
network requests it makes.
</summary>
<token key="Type" variants="AutofillPlusAddressNetworkRequestType"/>
</histogram>
<histogram name="Autofill.PlusAddresses.Suggestion.Events"
enum="PlusAddressSuggestionEvent" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Obsolete histogram as of M128, superseded by
PlusAddresses.Suggestion.Events. Records user interactions with the
experimental plus addresses feature in autofill. Includes suggestions and
clicks of both new plus address creation suggestions and existing plus
address filling suggestions. Recorded when the suggestions are shown, and
when they are chosen.
</summary>
</histogram>
<histogram name="Autofill.Popup.NextIdleTimeTicksDelay" units="ms"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long it took for the UI thread in the browser process to become
idle and record the TimeTicks at which the Autofill popup was shown. It is a
safe-guard metric: For the majority of cases, this time should be
negligible. Emitted whenever an Autofill popup (or keyboard acessory on
Android) is shown and the AutofillPopupImprovedTimingChecks feature is
enabled.
</summary>
</histogram>
<histogram name="Autofill.Popup.VisibleDuration" units="ms"
expires_after="2025-06-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration that the autofill root popup remains open for all
filling products. Emitted by the popup controller on hide. Note that it is
not emitted for sub popups.
</summary>
</histogram>
<histogram name="Autofill.Popup.VisibleDuration.{FillingProduct}" units="ms"
expires_after="2025-06-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the duration that the autofill root popup remains open. Emitted by
the popup controller on hide. Note that it is not emitted for sub popups.
</summary>
<token key="FillingProduct">
<variant name="Address"
summary="User chose to fill a form or field with an address profile."/>
<variant name="Autocomplete"
summary="User chose to fill a field with autocomplete."/>
<variant name="Compose"
summary="User chose to fill a field with a compose suggestion."/>
<variant name="CreditCard"
summary="User chose to fill a form or field with a credit card
profile."/>
<variant name="Iban" summary="User chose to fill a field with an iban."/>
<variant name="MerchantPromoCode"
summary="User chose to fill a field with a merchant promo code."/>
<variant name="None" summary="No filling product matches."/>
<variant name="Password"
summary="User chose to fill a form or field with password
credentials."/>
<variant name="PlusAddresses"
summary="User chose to fill a field with a plus addresses suggestion."/>
</token>
</histogram>
<histogram name="Autofill.PopupHidingReason"
enum="AutofillSuggestionHidingReason" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This tracks the reasons for which the Autofill popup disappers or cannot be
displayed. Recorded everytime an Autofill popup disappears or cannot be
displayed.
</summary>
</histogram>
<histogram name="Autofill.PopupHidingReason.{FillingProduct}"
enum="AutofillSuggestionHidingReason" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This tracks per filling product the reasons for which the Autofill popup
disappers or cannot be displayed. Recorded everytime an Autofill popup
disappears or cannot be displayed.
</summary>
<token key="FillingProduct">
<variant name=".VirtualCard.StandaloneCvc"
summary="User chose to fill a form or field with a CVC for a virtual
card saved on file."/>
<variant name="Address"
summary="User chose to fill a form or field with an address profile."/>
<variant name="Autocomplete"
summary="User chose to fill a field with autocomplete."/>
<variant name="Compose"
summary="User chose to fill a field with a compose suggestion."/>
<variant name="CreditCard"
summary="User chose to fill a form or field with a credit card
profile."/>
<variant name="Iban" summary="User chose to fill a field with an iban."/>
<variant name="MerchantPromoCode"
summary="User chose to fill a field with a merchant promo code."/>
<variant name="None" summary="No filling product matches."/>
<variant name="Password"
summary="User chose to fill a form or field with password
credentials."/>
<variant name="PlusAddresses"
summary="User chose to fill a field with a plus addresses suggestion."/>
</token>
</histogram>
<histogram
name="Autofill.PopupInteraction.PopupLevel.{AutofillPopupInteractionLevel}"
enum="AutofillPopupInteraction" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is emitted when {AutofillPopupInteractionLevel}. Its goal is to learn
about user's behaviour related to the Autofill popup therefore it is only
emitted on desktop.
</summary>
<token key="AutofillPopupInteractionLevel"
variants="AutofillPopupInteractionLevel"/>
</histogram>
<histogram
name="Autofill.PopupInteraction.PopupLevel.{AutofillPopupInteractionLevel}.{FillingProduct}"
enum="AutofillPopupInteraction" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This is emitted when {AutofillPopupInteractionLevel}. This is also specific
for a {FillingProduct}. It is emitted when the popup is shown, a suggestion
is selected (hover) or accepted. Its goal is to learn about user's behaviour
related to the Autofill popup therefore it is only emitted on desktop.
</summary>
<token key="AutofillPopupInteractionLevel"
variants="AutofillPopupInteractionLevel"/>
<token key="FillingProduct">
<variant name="Address" summary="popup with address suggestion(s)"/>
<variant name="Autocomplete"
summary="popup with autocomplete suggestion(s)"/>
<variant name="Compose" summary="popup with compose suggestion(s)"/>
<variant name="CreditCard" summary="popup with credit card suggestion(s)"/>
<variant name="Iban" summary="popup with iban suggestion(s)"/>
<variant name="MerchantPromoCode"
summary="popup with merchant promo code suggestion(s)"/>
<variant name="None"
summary="popup with suggestion(s) that match no filling product"/>
<variant name="Password" summary="popup with password suggestion(s)"/>
<variant name="PlusAddresses"
summary="popup with plus addresses suggestion(s)"/>
</token>
</histogram>
<histogram name="Autofill.PreFilledFieldClassifications.{FormType}"
enum="AutofillPreFilledFieldClassifications" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of pre-filled fields that had a placeholder
classification. The metric is emitted on form submission.
</summary>
<token key="FormType" variants="Autofill.Ablation.FormType"/>
</histogram>
<histogram name="Autofill.PreFilledFieldClassificationsQuality.{FormType}"
enum="AutofillPreFilledFieldClassificationsQuality"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the quality of a placeholder classification. The metric is emitted
on form submission and only if there was a placeholder prediction for the
field.
</summary>
<token key="FormType" variants="Autofill.Ablation.FormType"/>
</histogram>
<histogram name="Autofill.PreFilledFieldStatus.ByFieldType"
enum="AutofillPreFilledFieldStatusByFieldType" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if an address or credit card field is pre-filled or empty on page
load, by field type. The metric is emitted on form submission.
</summary>
</histogram>
<histogram name="Autofill.PreFilledFieldStatus.{FormType}"
enum="AutofillPreFilledFieldStatus" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if a field is pre-filled or empty on page load. The metric is
emitted on form submission.
</summary>
<token key="FormType" variants="Autofill.Ablation.FormType"/>
</histogram>
<histogram name="Autofill.PreFilledValueStatus.{FormType}"
enum="AutofillPreFilledValueStatus" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the value of an autofillable, pre-filled field was changed until
form submission. Emitted on form submission.
</summary>
<token key="FormType" variants="Autofill.Ablation.FormType"/>
</histogram>
<histogram name="Autofill.ProfileDeleted.{DeletionType}"
enum="BooleanAutofillDeleteAddress" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Autofill.ProfileDeleted is emitted in the following scenarios: ExtendedMenu,
Settings, Popup and KeyboardAccessory. There is also an "Any"
bucket, which sums all of the above.
{DeletionType}
</summary>
<token key="DeletionType">
<variant name="Any"
summary="This metric records how many users tried to delete an
address and whether they canceled or confirmed the deletion
(regardless of how the address was deleted)."/>
<variant name="ExtendedMenu"
summary="This metric records how many users clicked on the
"Delete Address" button in the autofill extended
menu, and whether they canceled or confirmed the deletion."/>
<variant name="KeyboardAccessory"
summary="This metric records how many users long-pressed on an
address suggestion button in the keyboard accessory, and
whether they canceled or confirmed the deletion."/>
<variant name="Popup"
summary="Counts how many users deleted an address using shift+delete
while hovering on a first-level popup. This metric is
emitted only for the "Confirmed" bucket, as the
user cannot cancel this process."/>
<variant name="Settings"
summary="This metric records how many users pressed the "Delete
address" button in chrome://settings, and whether they
canceled or confirmed the deletion."/>
</token>
</histogram>
<histogram name="Autofill.ProfileImport.InaccessibleFieldsRemoved.ByFieldType"
enum="AutofillSettingsVisibleTypes" expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs that a given field type was removed on import, due to being setting
inaccessible in the imported profile's country. Emitted on profile import.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.InaccessibleFieldsRemoved.Total"
enum="Boolean" expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs if at least one field was removed on import, due to being setting
inaccessible in the imported profile's country. Emitted on profile import.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.MigrateProfileDecision"
enum="AutofillProfileImportDecision" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the user's decision for migrating a stored profile with record type
AutofillProfile::RecordType::kLocalOrSyncable to the account storage. This
metric is emitted at the end of an import process once the user-provided
import decision is final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.MigrateProfileEditedType"
enum="AutofillSettingsVisibleTypes" expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs that a specific type was edited in a profile migration prompt. This
metric is emitted once the user-provided import decision is final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.NewProfileDecision"
enum="AutofillProfileImportDecision" expires_after="M126">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Obsolete metric, replaced by Autofill.ProfileImport.NewProfileDecision2.
Logs the user's decision for storing a new address profile observed in a
form submission. This metric is emitted at the end of an import process once
the user-provided import decision is final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.NewProfileDecision2.{UserGroup}"
enum="AutofillProfileImportDecision" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the user's decision for storing a new address profile observed in a
form submission. This metric is emitted at the end of an import process once
the user-provided import decision is final.
</summary>
<token key="UserGroup">
<variant name="Aggregate" summary="Aggregated data of all users."/>
<variant name="UserHasExistingProfile"
summary="Metrics are recorded for users who have address profiles
saved already."/>
<variant name="UserHasNoExistingProfiles"
summary="Metrics are recorded for users who don't have any address
profiles saved."/>
<variant name="UserHasQuasiDuplicateProfile"
summary="Metrics are recorded for users where an existing address
profile matches the import candidate after removing one
field."/>
</token>
</histogram>
<histogram name="Autofill.ProfileImport.NewProfileEditedType"
enum="AutofillSettingsVisibleTypes" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs that a specific type was edited in a new profile save prompt that was
shown to the user when a new address profile is observed in a form
submission. This metric is emitted once the user-provided import decision is
final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.PhoneNumberParsed" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs if a phone number was parsed successfully on profile import. Only
emitted when a number is present in the submitted form.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.ProfileImportType"
enum="AutofillProfileImportType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
The type of an import of an address that is observed in a form submission.
This metric is emitted once the import decision is final. This does not
necessarily mean that the user was prompted.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.SilentUpdatesProfileImportType"
enum="AutofillSilentUpdatesProfileImportType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
The type of an import of an address that is observed in a form submission
when the form does not satisfy profile import requirements. This metric is
emitted once the import decision is final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.StorageNewAddressIsSavedTo"
enum="AutofillProfileRecordType" expires_after="2025-02-04">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs in which storage type the new address profile will be stored when the
user accepted the save prompt that was shown to them after a form
submission. This metric is emitted at the end of an import process once the
user-provided import decision is final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.UpdateProfileAffectedType.{Decision}"
enum="AutofillSettingsVisibleTypes" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs that a specific type would have changed in a profile update process
that received a specific {Decision}. The update was shown to the user
because a profile similar to an already existing profile was observed in a
form submission. Note that this metric collects the changed types before the
user potentially applies additional edits. The metric is recorded on form
submission once the user decision is final.
</summary>
<token key="Decision">
<variant name="Accepted"
summary="The user accepted the update flow from the initial prompt."/>
<variant name="Any" summary="Any decision."/>
<variant name="AutoDeclined"
summary="The prompt is suppressed most likely because there is
already another prompt shown on the same tab."/>
<variant name="Declined"
summary="The user declined the update flow from the initial prompt."/>
<variant name="EditAccepted"
summary="The user accepted the update flow from the edit dialog."/>
<variant name="EditDeclined"
summary="The user declined the update flow from the edit dialog."/>
<variant name="Ignored" summary="The user ignored the prompt."/>
<variant name="MessageDeclined"
summary="The user swipes away the update Message. This is only
relevant on mobile."/>
<variant name="MessageTimeout"
summary="The update message timed out before the user interacted.
This is only relevant on mobile."/>
<variant name="Never"
summary="The user selected to never save a new profile on a given
domain or update a specific profile (currently not
supported)."/>
<variant name="Undefined" summary="Undefined"/>
<variant name="UserNotAsked"
summary="No prompt is shown and no decision is needed to proceed with
the process."/>
</token>
</histogram>
<histogram name="Autofill.ProfileImport.UpdateProfileDecision"
enum="AutofillProfileImportDecision" expires_after="M126">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Obsolete metric, replaced by Autofill.ProfileImport.UpdateProfileDecision2.
Logs the user's decision for editing an already existing address after a
similar profile was observed in a form submission. This metric is emitted at
the end of an import process once the user-provided import decision is
final.
</summary>
</histogram>
<histogram name="Autofill.ProfileImport.UpdateProfileDecision2.{UserGroup}"
enum="AutofillProfileImportDecision" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the user's decision for editing an already existing address after a
similar profile was observed in a form submission. This metric is emitted at
the end of an import process once the user-provided import decision is
final.
</summary>
<token key="UserGroup">
<variant name="Aggregate" summary="Aggregated data of all users."/>
<variant name="UserHasQuasiDuplicateProfile"
summary="Metrics are recorded for users where an existing address
profile matches the import candidate after removing one
field. The profile to be updated is not considered an
existing profile in the calculation of the duplication rank."/>
</token>
</histogram>
<histogram name="Autofill.ProfileImport.UpdateProfileEditedType"
enum="AutofillSettingsVisibleTypes" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs that a specific type was edited in a profile update prompt that was
shown to the user when a profile similar to an already existing profile was
observed in a form submission. This metric is emitted once the user-provided
import decision is final.
</summary>
</histogram>
<histogram
name="Autofill.ProfileImport.UpdateProfileNumberOfAffectedFields.{Decision}"
units="fields" expires_after="2025-03-30">
<owner>[email protected]</owner>
<owner>src/components/autofill/OWNERS</owner>
<summary>
Logs the number of fields that would be changed by an accepted update for
any possible Decision. Note that this metric collects the number of changed
fields before the user potentially applies additional edits. The metric is
recorded on form submission once the user decision is final.
</summary>
<token key="Decision">
<variant name="Accepted"
summary="The user accepted the update flow from the initial prompt."/>
<variant name="Any" summary="Any decision."/>
<variant name="AutoDeclined"
summary="The prompt is suppressed most likely because there is
already another prompt shown on the same tab."/>
<variant name="Declined"
summary="The user declined the update flow from the initial prompt."/>
<variant name="EditAccepted"
summary="The user accepted the update flow from the edit dialog."/>
<variant name="EditDeclined"
summary="The user declined the update flow from the edit dialog."/>
<variant name="Ignored" summary="The user ignored the prompt."/>
<variant name="MessageDeclined"
summary="The user swipes away the update Message. This is only
relevant on mobile."/>
<variant name="MessageTimeout"
summary="The update message timed out before the user interacted.
This is only relevant on mobile."/>
<variant name="Never"
summary="The user selected to never save a new profile on a given
domain or update a specific profile (currently not
supported)."/>
<variant name="Undefined" summary="Undefined"/>
<variant name="UserNotAsked"
summary="No prompt is shown and no decision is needed to proceed with
the process."/>
</token>
</histogram>
<histogram
name="Autofill.ProfileTokenQuality.ObservationCountBeforeSubmission.PerProfile"
units="Observations" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
At form submission, for every profile that was used to fill at least one
field, records the total number of observation it has stored. Emitted once
for every profile used, before collecting new observations.
</summary>
</histogram>
<histogram
name="Autofill.ProfileTokenQuality.ObservationCountBeforeSubmission.{Type}"
units="Observations" expires_after="2024-12-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
At form submission, for every autofilled field, records the number of
observation that the filled profile has for the field's type. Emitted once
per autofilled field at submission, before collecting new observations.
</summary>
<token key="Type" variants="AutofillProfile.StorableTypes"/>
</histogram>
<histogram name="Autofill.ProfileTokenQuality.PerProfile" units="Percents"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The overall acceptance rate of all stored observations for the profile.
Emitted once per profile at Chrome profile start-up.
</summary>
</histogram>
<histogram
name="Autofill.ProfileTokenQuality.StoredObservationsCount.PerProfile"
units="Observations" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the total number of observations stored for a profile. Emitted once
per profile at Chrome profile start-up.
</summary>
</histogram>
<histogram name="Autofill.ProfileTokenQuality.StoredObservationTypes.{Type}"
enum="AutofillProfileTokenQualityObservationType"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records which observation types are stored. Emitted once per profile and
storable type at Chrome profile start-up. For additional supported types,
consulte the metric of the corresponding storable type.
</summary>
<token key="Type" variants="AutofillProfile.StorableTypes"/>
</histogram>
<histogram name="Autofill.ProfileTokenQuality.{Type}" units="Percents"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the acceptance rate of {Type}, based on the available observations
for it. Emitted once per profile and storeable type at Chrome profile
start-up. For additional supported types, consulte the metric of the
corresponding storable type.
</summary>
<token key="Type" variants="AutofillProfile.StorableTypes"/>
</histogram>
<histogram name="Autofill.ProfileTokenQualityScore" units="bits"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the {number of observations (bits 0-3, capped at 10), quality score
(bits 4-7), profile token (bits 8-15)} as a bitmask, if there were any
observations. The score is an integer ranging from 0 to 10, as is the number
of observations. Observations are from the profile that was used for
filling. Emitted on form submission, after the profile's observations were
updated.
</summary>
</histogram>
<histogram name="Autofill.ProgressDialog.{FlowType}.Result"
enum="BooleanCanceled" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the result of the progress dialog, which can either be canceled
(user canceled while it was in progress) or not canceled (user waited until
confirmation). This dialog is shown in between other dialogs in a flow to
provide a progress state to the user. If the user does not cancel it, after
its related background task completes it moves on to the next dialog in the
flow that it is a part of. The metric is recorded when this dialog is
dismissed, and the result that gets logged is false if the user waited until
confirmation or true if the user canceled the dialog.
</summary>
<token key="FlowType" variants="Autofill.ProgressDialog.FlowType"/>
</histogram>
<histogram name="Autofill.ProgressDialog.{FlowType}.Shown" enum="BooleanShown"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records true every time the progress dialog is shown. This dialog is shown
in between other dialogs in a payments autofill flow to provide a progress
state to the user. If the user does not cancel it, after its related
background task completes it moves on to the next dialog in the flow that it
is a part of.
</summary>
<token key="FlowType" variants="Autofill.ProgressDialog.FlowType"/>
</histogram>
<histogram name="Autofill.QueriedCreditCardFormIsSecure" enum="BooleanSecure"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For credit card forms that are queried for Autofill, a ratio of how many are
within secure contexts (which includes mixed passive content).
</summary>
</histogram>
<histogram name="Autofill.Query.BackoffDelay" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay of a network request for a query due to exponential backoff.
</summary>
</histogram>
<histogram name="Autofill.Query.FailingPayloadSize" units="bytes"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of bytes that were sent in a query that subsequently failed. This
is to help determine the appropriate threshold at which autofill queries
should switch from GET to POST, and if there are certain sizes of queries
which are prone to failure.
</summary>
</histogram>
<histogram name="Autofill.Query.HttpResponseOrErrorCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The http response code or net error code returned on a query.
</summary>
</histogram>
<histogram name="Autofill.Query.Method" enum="AutofillQueryMethod"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The HTTP method used to query the autofill server.</summary>
</histogram>
<histogram name="Autofill.Query.RequestDuration" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The duration of a network request for a query.</summary>
</histogram>
<histogram name="Autofill.Query.WasInCache" enum="BooleanCacheHit"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Was the autofill query response retrieved from the HTTP cache.
</summary>
</histogram>
<histogram name="Autofill.Rationalization.OnlyFillWhenFocused.Quality"
enum="AutofillRationalizationQualityMetric" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether the "only_fill_when_focused"-rationalization had a
Good, Ok or Bad impact. Good means that the rationalization prevented the
user from editing a field that would have been autofilled if the
rationalization didn't happen. Ok means that the rationalization had no
impact of whether the user edited the field or not. Bad means that the
rationalization made the user edit a field (by either typing or triggering
autofill a second time) that wouldn't have been edited if the
rationalization didn't happen.
</summary>
</histogram>
<histogram name="Autofill.RendererFillSkipReason" enum="RendererFillSkipReason"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the reason for skipping filling a field in the renderer. Emitted every
time a field is passed to ShouldSkipFillField in form_autofill_util.cc.
</summary>
</histogram>
<histogram name="Autofill.ResetAutofillPrefToChrome" enum="Boolean"
expires_after="2024-12-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Clank only. Logs whether the user decided to use 3P password managers but a
precondition prevented their use so Chrome fell back to using the built-in
password manager. Emitted only once per cold start of Chrome when the first
tab is created.
</summary>
</histogram>
<histogram name="Autofill.RiskBasedAuth.{CardType}.Attempt"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when a risk-based authentication starts, and does not emit any
value otherwise. Currently, ServerCard and VirtualCard support risk-based
authentication.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.RiskBasedAuth.{CardType}.Latency" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the roundtrip latency of the UnmaskCardRequest during risk-based
authentication. It is logged when the UnmaskCardRequest is completed.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.RiskBasedAuth.{CardType}.Result"
enum="AutofillRiskBasedAuthEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the result of a risk-based unmasking process when the unmasking is
finished (whether it succeeded or the failure reason). Broken down by the
type of card to be unmasked.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.RiskDataLoading.Latency" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the latency of risk data loading. It is logged when the loading is
completed or timed out.
</summary>
</histogram>
<histogram name="Autofill.SaveCardCardholderNamePrefilled" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the cardholder name fix flow is shown when credit card upload is offered,
records if the cardholder name textfield was prefilled with the name from
the user's Google Account.
</summary>
</histogram>
<histogram name="Autofill.SaveCardCardholderNameWasEdited" enum="Boolean"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
If the cardholder name fix flow is shown during credit card upload and the
user accepts upload, logs whether the final cardholder name was changed from
its prefilled value or not.
</summary>
</histogram>
<histogram name="Autofill.SaveCardRequestExpirationDateReason"
enum="AutofillSaveCardRequestExpirationDateReason"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason expiration date was explicitly requested from the user
during credit card save.
</summary>
</histogram>
<histogram
name="Autofill.SaveCreditCardPromptOffer{SaveDestination}{ShowType}{SaveType}"
enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which the Autofill save credit card prompt is
shown or not to save credit card {SaveDestination}, {SaveType}. Logged when
the flow is triggered and the prompt should be shown. It was a {ShowType}.
</summary>
<token key="SaveDestination"
variants="AutofillSaveCreditCardPromptDestination">
<variant name=""/>
</token>
<token key="ShowType" variants="Autofill.PaymentBubble.Show">
<variant name=""/>
</token>
<token key="SaveType" variants="AutofillCreditCardSaveType"/>
</histogram>
<histogram
name="Autofill.SaveCreditCardPromptResult{SaveDestination}.{UserGroup}"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept or deny the Autofill save
credit card prompt to save credit card {SaveDestination}. Only first shows
are recorded. Logged when the prompt closes.
</summary>
<token key="SaveDestination"
variants="AutofillSaveCreditCardPromptDestination"/>
<token key="UserGroup">
<variant name="Aggregate" summary="Aggregated data of all users."/>
<variant name="UserHasNoCards"
summary="Metrics are recorded for users who don't have any credit
cards saved."/>
<variant name="UserHasSavedCards"
summary="Metrics are recorded for users who have credit cards saved
already."/>
</token>
</histogram>
<histogram
name="Autofill.SaveCreditCardPromptResult{SaveDestination}{ShowType}{SaveType}"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept or deny the Autofill save
credit card prompt to save credit card {SaveDestination}. Logged when the
prompt closes.
</summary>
<token key="SaveDestination"
variants="AutofillSaveCreditCardPromptDestination">
<variant name=""/>
</token>
<token key="ShowType" variants="Autofill.PaymentBubble.Show">
<variant name=""/>
</token>
<token key="SaveType" variants="AutofillCreditCardSaveType"/>
</histogram>
<histogram
name="Autofill.SaveCvcPromptOffer{AutofillSaveCreditCardPromptDestination}{ShowType}"
enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which the Autofill save CVC prompt is shown or
not to save CVC {AutofillSaveCreditCardPromptDestination}. Logged when the
flow is triggered and the prompt should be shown. It was a {ShowType}.
</summary>
<token key="AutofillSaveCreditCardPromptDestination"
variants="AutofillSaveCreditCardPromptDestination"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram
name="Autofill.SaveCvcPromptResult{AutofillSaveCreditCardPromptDestination}{ShowType}"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The relative frequency with which users accept or deny the Autofill save CVC
prompt to save CVC {AutofillSaveCreditCardPromptDestination}. Logged when
the prompt closes. It was a {ShowType}.
</summary>
<token key="AutofillSaveCreditCardPromptDestination"
variants="AutofillSaveCreditCardPromptDestination"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.SaveIbanPromptOffer{IbanTypeToBeSaved}{ShowType}"
enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records every time the save IBAN bubble or omnibox icon (due to maxstrike
reached) is offered to the user, broken down by destination and show type.
</summary>
<token key="IbanTypeToBeSaved" variants="IbanTypeToBeSaved"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram
name="Autofill.SaveIbanPromptResult{IbanTypeToBeSaved}.SavedWithNickname"
enum="Boolean" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the user accepts the bubble to save an IBAN, with or without
nickname.
</summary>
<token key="IbanTypeToBeSaved" variants="IbanTypeToBeSaved"/>
</histogram>
<histogram name="Autofill.SaveIbanPromptResult{IbanTypeToBeSaved}{ShowType}"
enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when the user makes a decision on the save IBAN bubble, broken down
by destinations.
</summary>
<token key="IbanTypeToBeSaved" variants="IbanTypeToBeSaved"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.ScanCreditCard.Completed" enum="BooleanCompleted"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Whether a credit card scan was completed or cancelled.</summary>
</histogram>
<histogram name="Autofill.ScanCreditCard.Duration{CreditCardScanSuccess}"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How long a credit card took to scan. {CreditCardScanSuccess}
</summary>
<token key="CreditCardScanSuccess">
<variant name=""/>
<variant name="_Cancelled" summary="Credit card scan was cancelled."/>
<variant name="_Completed" summary="Credit card scan completed."/>
</token>
</histogram>
<histogram name="Autofill.ScanCreditCardPrompt"
enum="AutofillScanCreditCardPrompt" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>Usage of the "Scan card" control item.</summary>
</histogram>
<histogram name="Autofill.Sectioning.FieldsPerSection" units="Fields"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of fields per section after sectioning a form using
kAutofillUseParameterizedSectioning. Only considers fields that may actually
be autofilled: fields that (a) are either focusable or a select field, and
(b) have a fillable type (e.g., UNKNOWN_TYPE and NUMERIC_QUANTITY are not
fillable). Emitted once per section every time sectioning is done.
</summary>
</histogram>
<histogram name="Autofill.Sectioning.NumberOfSections" units="Sections"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of sections after sectioning a form using
kAutofillUseParameterizedSectioning. Only considers fields that may actually
be autofilled: fields that (a) are either focusable or a select field, and
(b) have a fillable type (e.g., UNKNOWN_TYPE and NUMERIC_QUANTITY are not
fillable). Emitted every time sectioning is done.
</summary>
</histogram>
<histogram name="Autofill.ServerCardLinkClicked" enum="AutofillSyncState"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logged when the user clicks on the server credit card link in the settings
page.
</summary>
</histogram>
<histogram name="Autofill.ServerCardUnmask.{CardType}.Attempt"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when a server card unmasking process starts and does not emit any
value otherwise.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.ServerCardUnmask.{CardType}.FormSubmission"
enum="BooleanSubmitted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when a form is submitted with information fetched in a server
card unmasking process, and does not emit any value otherwise.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.ServerCardUnmask.{CardType}.Result.{FlowType}"
enum="AutofillServerCardUnmaskResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the result of a server card unmasking process when the unmasking is
finished (whether it succeeded or otherwise reason of the failure). It
includes the type of the card to be unmasked and the flow type (what
authentication used) in the unmasking.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
<token key="FlowType" variants="Autofill.ServerCardUnmaskFlowType"/>
</histogram>
<histogram name="Autofill.ServerIbanLinkClicked" enum="AutofillSyncState"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the sync state when the user clicks on a server IBAN's [Edit in Google
Pay] link.
</summary>
</histogram>
<histogram name="Autofill.ServerQueryResponse" enum="AutofillQueryResult"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The usefulness of Autofill server information.</summary>
</histogram>
<histogram name="Autofill.ServerResponseHasDataForForm"
enum="BooleanHadPredictions" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether Autofill server had at least some prediction data for a given
form at query response time.
</summary>
</histogram>
<histogram name="Autofill.Settings.AutofillOptionsReferrerAndroid"
enum="AutofillOptionsReferrer" expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records which entry point opened the Autofill Options screen. Recorded on
Android.
</summary>
</histogram>
<histogram name="Autofill.Settings.EditAddress"
enum="BooleanAutofillEditAddress" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric measures how many users clicked on the edit option from the
settings page and what their next action was. The metric is logged when the
user closes the edit address profile dialog, either after saving an updated
profile or after canceling.
</summary>
</histogram>
<histogram name="Autofill.Settings.ToggleUseThirdPartyFilling" enum="Boolean"
expires_after="2025-01-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records true whenever the user opts into the third party autofill
experience. Records false whenever they switch back to the default,
Chrome-provided autofill experience. Recorded when the user flips the toggle
in the autofill options settings.
</summary>
</histogram>
<histogram name="Autofill.SettingsPage.ButtonClicked.{CardType}.{Button}"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true whenever {Button} is clicked in the mobile {CardType} edit page.
Never emits false.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
<token key="Button">
<variant name="EditCard" summary="the edit button"/>
<variant name="Enroll" summary="the enroll button"/>
<variant name="Unenroll" summary="the unenroll button"/>
</token>
</histogram>
<histogram name="Autofill.ShadowPredictions.{SourcePair}"
enum="AutofillPredictionsComparisonResult" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
3-way comparison between {SourcePair} and the value that was in a field on
submission. This is emitted after an autofillable form has been submitted.
</summary>
<token key="SourcePair" variants="Autofill.ShadowPredictions.SourcePair"/>
</histogram>
<histogram name="Autofill.SharedStorageServerCardDataSetResult"
enum="AutofillSharedStorageServerCardDataSetResult"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the shared storage Set operation result that is returned from the
SharedStorageManager, each time the cached autofill server credit card
information is updated and inserted into the shared storage database,
implemented in ContentAutofillSharedStorageHandler. SharedStorageManager
provides the API to update the Shared Storage database, which enables
privacy-preserving cross-site data storage.
</summary>
</histogram>
<histogram name="Autofill.SkippingFormFillDueToChangedFieldCount"
enum="Boolean" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether an autofill operation was skipped because the number of
fields to be filled is different than that number of fields registered in
the form cache.
</summary>
</histogram>
<histogram name="Autofill.Snackbar.{SnackbarType}.ActionClicked"
enum="BooleanShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when the action button on the autofill snackbar is clicked and
does not emit any value otherwise.
</summary>
<token key="SnackbarType" variants="Autofill.Snackbar.Type"/>
</histogram>
<histogram name="Autofill.Snackbar.{SnackbarType}.Shown" enum="BooleanShown"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when the autofill snackbar is displayed and does not emit any
value otherwise.
</summary>
<token key="SnackbarType" variants="Autofill.Snackbar.Type"/>
</histogram>
<histogram name="Autofill.StoredCreditCardCount" units="cards"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->
<summary>
The number of credit cards a user has stored, measured at Chrome profile
launch time.
</summary>
</histogram>
<histogram name="Autofill.StoredCreditCardCount.Server.WithCardArtImage"
units="units" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of server cards with a valid card art image, measured at Chrome
profile launch.
</summary>
</histogram>
<histogram name="Autofill.StoredCreditCardCount.Server.WithVirtualCardMetadata"
units="units" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of server cards with virtual card metadata, measured at Chrome
profile launch.
</summary>
</histogram>
<histogram name="Autofill.StoredCreditCardDisusedCount" units="cards"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<!-- Name completed by histogram_suffixes name="AutofillCreditCardType" -->
<summary>
The number of disused credit cards a user has stored, measured at Chrome
profile launch time. This is only reported for users who have at least one
stored credit card.
</summary>
</histogram>
<histogram name="Autofill.StoredIbanCount" units="ibans"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of local and server IBANs a user has stored, measured at Chrome
profile launch time. It's logged once per profile load.
</summary>
</histogram>
<histogram name="Autofill.StoredIbanCount.{IbanRecordType}" units="ibans"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of local or server IBANs a user has stored, measured at Chrome
profile launch time. It's logged once per profile load.
</summary>
<token key="IbanRecordType" variants="IbanRecordType"/>
</histogram>
<histogram name="Autofill.StoredIbanCount.{IbanRecordType}.WithNickname"
units="ibans" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of local or server IBANs with nickname a user has stored,
measured at Chrome profile launch time. It's logged one per profile load.
</summary>
<token key="IbanRecordType" variants="IbanRecordType"/>
</histogram>
<histogram name="Autofill.StoredIbanDisusedCount.{IbanRecordType}"
units="ibans" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of disused IBANs a user has stored, measured at Chrome profile
launch time. This is only reported for users who have at least one stored
IBAN.
</summary>
<token key="IbanRecordType" variants="IbanRecordType"/>
</histogram>
<histogram name="Autofill.StoredProfileCount.{Suffix}" units="Profiles"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Autofill addresses a user has stored of the given category or
in total, measured at launch time.
</summary>
<token key="Suffix" variants="AutofillProfileCategory">
<variant name="Total"/>
</token>
</histogram>
<histogram name="Autofill.StoredProfileCountAtAutofillableFormSubmission"
units="units" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of Autofill addresses a user has stored, measured when an
autofillable form is submitted.
</summary>
</histogram>
<histogram name="Autofill.StoredProfileDisusedCount.{Category}"
units="Profiles" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of stored Autofill address profiles of the given category, which
have not been used in a sufficiently long time for autofill to consider them
disused. Measured once per Chrome user profile launch. This metric is only
recorded if the user has at least one profile of that category.
</summary>
<token key="Category" variants="AutofillProfileCategory"/>
</histogram>
<histogram name="Autofill.StoredProfileUsedCount.{Category}" units="Profiles"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of stored Autofill address profiles of the given category, which
are not in the disused state. Measured once per Chrome user profile launch.
This metric is only recorded if the user has at least one profile of that
category.
</summary>
<token key="Category" variants="AutofillProfileCategory"/>
</histogram>
<histogram name="Autofill.StoredProfileUsedPercentage.{Category}"
units="Profiles" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The percentage of stored Autofill address profiles of the given category,
which are not in the disused state. Measured once per Chrome user profile
launch. This metric is only recorded if the user has at least one profile of
that category.
</summary>
<token key="Category" variants="AutofillProfileCategory"/>
</histogram>
<histogram
name="Autofill.StrikeDatabase.CreditCardSaveNotOfferedDueToMaxStrikes"
enum="AutofillSaveType" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when credit card save is not offered (either at all on mobile or by
simply not showing the bubble on desktop) due to the candidate card having
too many strikes.
</summary>
</histogram>
<histogram name="Autofill.StrikeDatabase.IbanSaveNotOfferedDueToMaxStrikes"
enum="AutofillSaveType" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when IBAN save prompt is not offered due to the candidate IBAN
having too many strikes. It is recorded when offering IBAN save to user and
detects the max strikes has been reached.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.LocalCardMigrationNotOfferedDueToMaxStrikes"
enum="AutofillSaveType" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records when local card migration is not offered due to the candidate's
LocalCardMigration strike count reaching maximum strikes.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.NthStrikeAdded{AutofillStrikeDatabaseProjectType}"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a particular feature has when a
new strike is added for that feature. {AutofillStrikeDatabaseProjectType}
</summary>
<token key="AutofillStrikeDatabaseProjectType"
variants="AutofillStrikeDatabaseProjectType">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.StrikeDatabase.StrikeDatabaseInitFailed"
units="attempts" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
When a StrikeDatabase fails to initialize, records the number of consecutive
failed initialization attempts.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.StrikesPresentWhenIbanSaved{IbanTypeToBeSaved}"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a given IBAN had when a user
decided to save it. It is recorded right after the user clicks the Accept
button.
</summary>
<token key="IbanTypeToBeSaved" variants="IbanTypeToBeSaved"/>
</histogram>
<histogram
name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardMigrationAccepted"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a user has when local card
migration is accepted.
</summary>
</histogram>
<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardSaved"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a given card had when a user opted
to save the card to Chrome.
</summary>
</histogram>
<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenServerCardSaved"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a given card had when a user
successfully uploaded the card to Google Payments.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.StrikesPresentWhenStrikeExpired{AutofillStrikeDatabaseProjectType}"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" present in a StrikeDatabase entry
when a strike expires. {AutofillStrikeDatabaseProjectType}
</summary>
<token key="AutofillStrikeDatabaseProjectType"
variants="AutofillStrikeDatabaseProjectType">
<variant name=""/>
</token>
</histogram>
<histogram name="Autofill.StrikeDatabase.StrikesPresentWhenVirtualCardEnrolled"
units="strikes" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of "strikes" a given card had when a user
successfully enrolled in a virtual card.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.VirtualCardEnrollmentNotOfferedDueToMaxStrikes"
enum="AutofillVirtualCardEnrollmentSource" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records and emits true when virtual card enrollment is not offered due to
the candidate's strike count reaching maximum strikes.
</summary>
</histogram>
<histogram
name="Autofill.StrikeDatabase.VirtualCardEnrollmentNotOfferedDueToRequiredDelay"
enum="AutofillVirtualCardEnrollmentSource" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records and emits true when virtual card enrollment is not offered due to
the required delay not yet passing since candidate's last strike.
</summary>
</histogram>
<histogram name="Autofill.SubmissionDetectionSource.{SubmissionComponent}"
enum="AutofillSubmissionSource2" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Metric to measure the source of each submission. Emitted once per inferred
submission by {SubmissionComponent}.
</summary>
<token key="SubmissionComponent">
<variant name="AutofillAgent"/>
<variant name="FormTracker"/>
</token>
</histogram>
<histogram name="Autofill.SubmittedCardState" enum="AutofillSubmittedCardState"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Metric to measure credit card state when form is submitted, specifically if
it had a valid card number and/or expiration date.
</summary>
</histogram>
<histogram name="Autofill.SubmittedServerCardExpirationStatus"
enum="AutofillSubmittedServerCardExpirationStatus"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Metric to measure if a submitted card's expiration date matches the same
server card's expiration date. Cards are considered to be the same if they
have the same network and last four digits.
</summary>
</histogram>
<histogram name="Autofill.SubmittedValuePatterns" enum="AutofillValuePatterns"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Metric to measure if a submitted form contains any recognizable value
patterns (e.g., Unified Payment Interface Virtual Payment address (UPI
VPA)). Reported for every submitted non-empty visible field observed by
Autofill.
</summary>
</histogram>
<histogram
name="Autofill.Suggestion.AcceptanceFieldValueLength.{SuggestionType}"
units="units" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records how long was the field's value before accepting an Autofill
{SuggestionType} suggestion. Emitted every time a suggestion is accepted.
Used to asses the quality of suggestion prefix matching.
</summary>
<token key="SuggestionType">
<variant name="Address"/>
<variant name="CreditCard"/>
</token>
</histogram>
<histogram name="Autofill.Suggestion.StrikeSuppression.Address" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether address suggestions were suppressed because of a field
reaching the strike limit due to the user consistently ignoring suggestions
on that field. Emitted only on desktop (where strike suppression exists)
every time regular (non-manual fallback) address suggestions are triggered.
</summary>
</histogram>
<histogram name="Autofill.SuggestionAccepted.OffTheRecord" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records acceptance of autofill suggestions in regular and off-the-record
modes.
</summary>
</histogram>
<histogram
name="Autofill.SuggestionAccepted.SuggestionRankingDifference.CreditCard"
enum="RelativePosition" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the ranking difference for a recently-selected Autofill suggestion,
recording if the suggestion was ranked higher or lower in the new ranking
algorithm compared to the legacy ranking algorithm.
</summary>
</histogram>
<histogram name="Autofill.SuggestionAcceptedIndex{SuggestionType}"
units="position" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The index of the accepted Autofill suggestion in the popup. {SuggestionType}
</summary>
<token key="SuggestionType">
<variant name=""/>
<variant name=".Autocomplete"/>
<variant name=".CreditCard"/>
<variant name=".Other" summary="Unspecified suggestions"/>
<variant name=".Profile"/>
</token>
</histogram>
<histogram name="Autofill.Suggestions.AcceptedType" enum="SuggestionType"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of an accepted Autofill suggestion. The metric is recorded
every time a user accepts an autofill suggestion (no submission needed).
</summary>
</histogram>
<histogram name="Autofill.SuggestionsCount{SuggestionType}" units="units"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of suggestions shown in the Autofill popup. Recorded whenever
suggestions are shown. {SuggestionType}
</summary>
<token key="SuggestionType">
<variant name=".Address"/>
<variant name=".CreditCard"/>
</token>
</histogram>
<histogram name="Autofill.SuggestionShown.OffTheRecord" units="units"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records showing of autofill suggestions in regular and off-the-record modes.
</summary>
</histogram>
<histogram name="Autofill.TestAddressesEvent"
enum="AutofillInDevtoolsTestAddressesEvents" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a test address suggestion is shown or selected. These
suggestions are displayed when devtools is open, therefore only in desktop.
A top level test address suggestion will be shown when the user clicks on an
address classified field while devtools is open. This suggestion has child
suggestions representing well-formatted addressses from different countries,
choosing one of them will fill the form and emit an selected event.
</summary>
</histogram>
<histogram name="Autofill.TestAddressSelected"
enum="AutofillInDevtoolsAvailableTestAddressesCountries"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when a test address suggestion is selected. Test address
suggestions are displayed when devtools is open, therefore only in desktop.
A top level test address suggestion will be shown when the user clicks on an
address classified field while devtools is open. This suggestion has child
suggestions representing well-formatted addressses from different countries,
choosing one of them will fill the form and emit this metric, representing
which country was chosen.
</summary>
</histogram>
<histogram name="Autofill.Timing.ParseFormUntilInteraction2" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of milliseconds passed between a form is parsed and the user has
interacted with a field in it. In the case of reparses the first parsing
time is used.
</summary>
</histogram>
<histogram name="Autofill.Timing.{AutofillTimedFunction}" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Number of milliseconds passed between the start and end of
{AutofillTimedFunction}.
</summary>
<token key="AutofillTimedFunction">
<variant name="DetermineHeuristicTypes"/>
<variant name="OnLanguageDetermined.RunHeuristics"/>
<variant name="OnLanguageDetermined.UpdateCache"/>
<variant name="ParseForm"/>
<variant name="ParseFormAsync"/>
<variant name="ParseFormAsync.RunHeuristics"/>
<variant name="ParseFormAsync.UpdateCache"/>
<variant name="ParseFormsAsync"/>
<variant name="ParseFormsAsync.RunHeuristics"/>
<variant name="ParseFormsAsync.UpdateCache"/>
</token>
</histogram>
<histogram name="Autofill.TimingInterval.{Caller}.{Callee}.{Event}"
units="microseconds" expires_after="2025-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of microseconds passed the last preceding {Event} event
and (the end of) {Callee}, which has been called by {Caller}. The metric is
recorded on all platforms except for iOS and is only recorded for clients
with high-resolution clocks.
</summary>
<token key="Callee" variants="Autofill.TimingPrecise.Callee"/>
<token key="Caller" variants="Autofill.TimingPrecise.Caller"/>
<token key="Event">
<variant name="AutofillAgentReset"/>
<variant name="DOMContentLoaded"/>
</token>
</histogram>
<histogram name="Autofill.TimingPrecise.{Callee}" units="microseconds"
expires_after="2025-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of microseconds passed between the start and end of
{Callee}. Where a more detailed breakdown exists, this metric is effectively
the aggregation of Autofill.TimingPrecise.{Callee}.*. The metric is recorded
on all platforms except for iOS and is only recorded for clients with
high-resolution clocks.
</summary>
<token key="Callee">
<variant name="ExtractFormData"/>
<variant name="InferLabelForElement"
summary="Time for all InferLabelForElement calls for the fields of a
form."/>
<variant name="UpdateFormCache"/>
</token>
</histogram>
<histogram name="Autofill.TimingPrecise.{Callee}.{Caller}" units="microseconds"
expires_after="2025-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of microseconds passed between the start and end of
{Callee} called by {Caller}. The metric is recorded on all platforms except
for iOS and is only recorded for clients with high-resolution clocks.
</summary>
<token key="Callee" variants="Autofill.TimingPrecise.Callee"/>
<token key="Caller" variants="Autofill.TimingPrecise.Caller"/>
</histogram>
<histogram
name="Autofill.TouchToFill.CreditCard.AutofillUsedAfterTouchToFillDismissal"
enum="Boolean" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a user has still used autofill after dismissing the payments
bottom sheet. There is a fallback to still allow the user to autofill the
form after dismissing the bottom sheet, that is to use the keyboard
accessory suggestion. This metric is recorded when submitting the form: true
- if there is at least one autofilled field in the submitted form and the
payments bottom sheet was shown and dismissed by user, false - otherwise.
The metrics is recorded only if the payments bottom sheet was displayed for
the form submitted.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.FillingCorrectness"
enum="BooleanAutofillFillingCorrectness" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For the Payments bottom sheet (Touch To Fill for credit cards), tracks
whether or not the user has edited at least one of the autofilled fields
before submitting the form. The metric is recorded on form submission.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.NumberOfCardsShown"
units="cards" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of credit cards shown in the Touch To Fill bottom sheet. Recorded
when showing the bottom sheet.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.Outcome2"
enum="TouchToFill.CreditCard.Outcome" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome with which the bottom sheet was closed: credit card
selected, virtual card selected, go to payment settings, scan new credit
card or dismissed with no action. The metric is recorded right after user
has done the action: the credit card selection or some other option (which
always leads to the bottom sheet being closed) or swiped the sheet to close
it. See the TouchToFillCreditCardMediator.java for details. Note that
"Go to payment settings" click is also considered as the outcome,
although it doesn't close the Touch To Fill. So in this case there will be a
double count for one bottom sheet showing.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.PerfectFilling" enum="Boolean"
expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For the Payments bottom sheet (Touch To Fill for credit cards), logs at
submission time if the filling experience was perfect or not. In a perfect
filling experience, all non-empty fields have been autofilled without
subsequent corrections. The metric is logged on form submission.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.SelectedIndex" units="index"
expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The index of the selected credit card in the Touch To Fill bottom sheet.
Recorded when user selects a credit card from the list.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.CreditCard.TriggerOutcome"
enum="TouchToFill.PaymentMethod.TriggerOutcome" expires_after="2025-05-19">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the attempt to trigger Touch To Fill for credit
cards. It is recorded only when the touch to fill feature is enabled and the
form is parsed as a credit card form by autofill.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.Iban.NumberOfIbansShown" units="ibans"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of IBANs shown in the Touch To Fill bottom sheet. Recorded when
showing the bottom sheet.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.Iban.SelectedIndex" units="index"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The index of the selected IBAN in the Touch To Fill bottom sheet. Recorded
when user selects an IBAN from the list.
</summary>
</histogram>
<histogram name="Autofill.TouchToFill.Iban.TriggerOutcome"
enum="TouchToFill.PaymentMethod.TriggerOutcome" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the outcome of the attempt to trigger Touch To Fill for IBANs. It is
recorded only when the form is parsed as an IBAN by autofill on Chrome
Android and the user clicks on the form field.
</summary>
</histogram>
<histogram name="Autofill.UndoAfterFill.{FormType}" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a user used Undo Autofill in his filling journey or not.
Emitted once per form submission, only if the user autofilled some
suggestion prior to submission.
</summary>
<token key="FormType" variants="AutofillFormType.Fillable"/>
</histogram>
<histogram
name="Autofill.UnmaskPrompt.Duration{AutofillUnmaskPromptCloseReasonEvents}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration of the interaction with the UnmaskPrompt since it was shown until
it was closed. This prompt is triggered when a user selects a masked card in
an autofill dropdown. {AutofillUnmaskPromptCloseReasonEvents}
</summary>
<token key="AutofillUnmaskPromptCloseReasonEvents">
<variant name=""/>
<variant name=".AbandonUnmasking" summary="Abandon unmasking"/>
<variant name=".Failure" summary="Failure"/>
<variant name=".NoAttempts" summary="No attempts"/>
<variant name=".Success" summary="Success"/>
</token>
</histogram>
<histogram name="Autofill.UnmaskPrompt.Events" enum="AutofillUnmaskPromptEvent"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events tracking the usage of the unmasking prompt. This prompt is triggered
when a user selects a masked card in a autofill dropdown.
</summary>
</histogram>
<histogram name="Autofill.UnmaskPrompt.GetRealPanDuration" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration of the GetRealPan API call. This API call is triggered by the
unmasking prompt when the user types information to verify their ownership
of the card being fetched.
</summary>
</histogram>
<histogram name="Autofill.UnmaskPrompt.GetRealPanDuration.{CardType}.{Result}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration of the GetRealPan API call. This API call is triggered by the
unmasking prompt when the user types information to verify their ownership
of the card being fetched. Broken down by the type of the card being fetched
and the result.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
<token key="Result" variants="Autofill.PaymentsRpcResult"/>
</histogram>
<histogram name="Autofill.UnmaskPrompt.GetRealPanResult"
enum="AutofillGetRealPanResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the result of the GetRealPan API call. This API call is triggered by
the unmasking prompt when the user types information to verify their
ownership of the card being fetched.
</summary>
</histogram>
<histogram name="Autofill.UnmaskPrompt.GetRealPanResult.{CardType}"
enum="AutofillGetRealPanResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the result of the GetRealPan API call. This API call is triggered by
the unmasking prompt when the user types information to verify their
ownership of the card being fetched. Broken down by type of the card being
fetched.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.UnmaskPrompt.TimeBeforeAbandonUnmasking" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time the user waited before abandoning an unmasking operation. In such a
scenario, the user is cancelling a pending unmasking operation (possibly
because it is taking too long). The time measured here corresponds to the
time between the user clicking the "Verify" button and then
clicking "Cancel".
</summary>
</histogram>
<histogram name="Autofill.UnmaskPrompt.UnmaskingDuration" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration between the user clicking the Verify button within the unmasking
prompt until we get a response back from the server. This prompt is
triggered when a user selects a masked card in an autofill dropdown.
</summary>
</histogram>
<histogram name="Autofill.UnmaskPrompt.UnmaskingDuration.{CardType}.{Result}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Duration between the user clicking the Verify button within the unmasking
prompt until we get a response back from the server. This prompt is
triggered when a user selects a masked card in an autofill dropdown. Broken
down by the type of the card being fetched and the result.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
<token key="Result" variants="Autofill.PaymentsRpcResult"/>
</histogram>
<histogram name="Autofill.UnmaskPrompt.{CardType}.Events"
enum="AutofillUnmaskPromptEvent" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Events tracking the usage of the unmasking prompt, recorded for {CardType}.
This prompt is triggered when a user selects a masked card in a autofill
dropdown.
</summary>
<token key="CardType" variants="Autofill.PaymentsRpcCardType"/>
</histogram>
<histogram name="Autofill.Upload.BackoffDelay" units="ms" expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay of a network request for an upload due to exponential backoff.
</summary>
</histogram>
<histogram name="Autofill.Upload.FailingPayloadSize" units="bytes"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of bytes that were sent in an upload that subsequently failed.
This is to help determine if there are certain upload sizes which are prone
to failure.
</summary>
</histogram>
<histogram name="Autofill.Upload.HttpResponseOrErrorCode"
enum="CombinedHttpResponseAndNetErrorCode" expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The http response code or net error code returned on an upload.
</summary>
</histogram>
<histogram name="Autofill.Upload.RequestDuration" units="ms"
expires_after="never">
<!-- expires-never: https://crbug.com/915888 -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>The duration of a network request for an upload.</summary>
</histogram>
<histogram name="Autofill.UploadAcceptedCardOrigin"
enum="UploadPaymentMethodOrigin" expires_after="never">
<!-- expires-never: https://crbug.com/975713 -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures if a card for which upload was accepted is already stored as a
local card on the device or if it has not yet been seen.
</summary>
</histogram>
<histogram name="Autofill.UploadEvent{AutofillUploadEvents}" enum="BooleanSent"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether or not an upload was sent after having been triggered by a form
submission or proxy-form-submission. {AutofillUploadEvents}
</summary>
<token key="AutofillUploadEvents">
<variant name=""/>
<variant name=".DomMutationAfterAutofill"
summary="DOM Mutation After Autofill"/>
<variant name=".FormSubmission" summary="Form Submission"/>
<variant name=".FrameDetached" summary="Frame Detached"/>
<variant name=".None" summary="None"/>
<variant name=".ProbablyFormSubmitted" summary="Probable Form Submission"/>
<variant name=".SameDocumentNavigation" summary="Same Document Navigation"/>
<variant name=".Unknown" summary="Unknown"/>
<variant name=".XhrSucceeded" summary="XHR Succeeded"/>
</token>
</histogram>
<histogram name="Autofill.UploadIban.{UploadIbanAction}"
enum="UploadPaymentMethodOrigin" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records every time the IBAN upload save is offered to the user, as well as
when there are actions made on the offer. The metric is broken down by IBAN
origins (new IBAN or an existing local IBAN).
</summary>
<token key="UploadIbanAction">
<variant name="Accepted" summary="The user has accepted the offer"/>
<variant name="Declined" summary="The user has declined the offer"/>
<variant name="Ignored" summary="The user has ignored the offer"/>
<variant name="Offered" summary="It is an IBAN upload save offer"/>
</token>
</histogram>
<histogram name="Autofill.UploadOfferedCardOrigin"
enum="UploadPaymentMethodOrigin" expires_after="never">
<!-- expires-never: https://crbug.com/975713 -->
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures if a card for which upload was offered is already stored as a local
on the device or if it has not yet been seen.
</summary>
</histogram>
<histogram name="Autofill.UsedCachedServerCard" units="uses"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of times that the cache for unmasked server cards has
been accessed for a given card. For example, if the cache is being accessed
and it has already been accessed for the card twice before, then
"3" is recorded.
</summary>
</histogram>
<histogram name="Autofill.UsedCachedVirtualCard" units="uses"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of times that the cache for virtual cards has been
accessed for a given card. For example, if the cache is being accessed and
it has already been accessed for the card twice before, then "3"
is recorded.
</summary>
</histogram>
<histogram
name="Autofill.UserAcceptedSuggestionAtIndex.{FillingProduct}.{Context}"
units="position" expires_after="2025-08-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The index of the accepted Autofill suggestion, split by context. Logged when
the user taps on a suggestion. iOS only. {FillingProduct} {Context}
</summary>
<token key="FillingProduct">
<variant name="Address"
summary="User chose to fill a form or field with an address profile."/>
<variant name="Autocomplete"
summary="User chose to fill a field with autocomplete."/>
<variant name="Compose"/>
<variant name="CreditCard"
summary="User chose to fill a form or field with a credit card
profile."/>
<variant name="Iban" summary="User chose to fill a field with an iban."/>
<variant name="MerchantPromoCode"
summary="User chose to fill a field with a merchant promo code."/>
<variant name="None" summary="No filling product matches."/>
<variant name="Password"
summary="User chose to fill a form or field with password
credentials."/>
<variant name="PlusAddresses"
summary="User chose to fill a field with a plus addresses suggestion."/>
<variant name="VirtualCard.StandaloneCvc"
summary="User chose to fill a form or field with a CVC for a virtual
card saved on file."/>
</token>
<token key="Context">
<variant name="BottomSheet"/>
<variant name="KeyboardAccessory"/>
<variant name="ManualFallback"/>
<variant name="ManualFallback.AllPasswords"/>
</token>
</histogram>
<histogram name="Autofill.Vcn3ds.FlowEvents" enum="Vcn3dsFlowEvents"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when a user starts and completes a VCN 3DS flow, as well as events
throughout the flow. The metrics for flow started log when we initiate a VCN
3DS auth flow and are about to either show the consent dialog or the pop-up
directly. The metrics for flow completion are logged when the full flow is
considered completed, and are broken down by completion result. Other events
are logged at the moment they occur. This histogram is an aggregated version
of the Autofill.Vcn3ds.FlowEvents.{ConsentAlreadyGiven} histogram.
</summary>
</histogram>
<histogram name="Autofill.Vcn3ds.FlowEvents.{ConsentAlreadyGiven}"
enum="Vcn3dsFlowEvents" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks when a user starts and completes a VCN 3DS flow, as well as events
throughout the flow. The metrics for flow started log when we initiate a VCN
3DS auth flow and are about to either show the consent dialog or the pop-up
directly. The metrics for flow completion are logged when the full flow is
considered completed, and are broken down by completion result. Other events
are logged at the moment they occur. The histogram is broken down into
sub-histograms by whether user consent was already given prior to the flow
starting. If consent was already given, the consent dialog is not shown and
the pop-up is immediately triggered, otherwise the consent dialog is shown
and must be accepted for the pop-up to be triggered.
</summary>
<token key="ConsentAlreadyGiven" variants="Vcn3ds.ConsentAlreadyGiven"/>
</histogram>
<histogram name="Autofill.Vcn3ds.Latency.{Result}" units="ms"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the latency of the VCN 3DS authentication, from the time the pop-up was
shown to the time the pop-up was closed. Logged when the pop-up closes due
to the user completing the authentication successfully or unsuccessfully.
Not logged when the user manually closes the pop-up.
</summary>
<token key="Result">
<variant name="Failure"/>
<variant name="Success"/>
</token>
</histogram>
<histogram name="Autofill.Vcn3ds.PaymentsWindowUserConsentDialogResult"
enum="PaymentsWindowUserConsentDialogResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the result of the payments window user consent dialog, broken down by
closed reason. Logged when the dialog is closing.
</summary>
</histogram>
<histogram name="Autofill.Vcn3ds.PaymentsWindowUserConsentDialogShown"
enum="BooleanShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks the number of shows for the payments window user consent dialog.
Logged every time a dialog is shown.
</summary>
</histogram>
<histogram name="Autofill.VirtualCard.Enroll.Attempt.{Source}"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true whenever a virtual card Enroll request is sent. It is broken down
by the source of the request (i.e., Upstream, Downstream, settings page).
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram name="Autofill.VirtualCard.Enroll.Result.{Source}"
enum="BooleanSuccess" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted whenever a virtual card Enroll response is received. It is broken
down by the source of the request (i.e., Upstream, Downstream, settings
page) and logged based on whether the request suceeded.
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram name="Autofill.VirtualCard.GetDetailsForEnrollment.Attempt.{Source}"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true whenever a virtual card GetDetailsForEnrollment request is sent.
It is broken down by the source of the request (i.e., Upstream, Downstream,
settings page).
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram
name="Autofill.VirtualCard.GetDetailsForEnrollment.Latency.{Source}.{Result}"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the latency for the GetDetailsForEnrollment roundtrip call. The
timer starts when a GetDetailsForEnrollment request is sent. It is recorded
(the timer stops) when a GetDetailsForEnrollment response is received.
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
<token key="Result" variants="Autofill.PaymentsRpcResult"/>
</histogram>
<histogram name="Autofill.VirtualCard.GetDetailsForEnrollment.Result.{Source}"
enum="BooleanSuccess" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits whenever a virtual card GetDetailsForEnrollment response is received.
It is broken down by the source of the request (i.e., Upstream, Downstream,
settings page) and logged based on whether the request suceeded.
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram name="Autofill.VirtualCard.MetadataSynced" enum="BooleanExists"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times that virtual card metadata is propagated via Chrome
Sync. It is logged based on whether the metadata is for an existing card or
a new card.
</summary>
</histogram>
<histogram name="Autofill.VirtualCard.StandaloneCvc.FormEvents"
enum="VirtualCardStandaloneCvcSuggestionFormEvent"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
These metrics log the autofill form events for virtual card standalone CVC
fields, such as when suggestion(s) is/are shown, selected, or filled for a
virtual card standalone CVC field, or the form is about to be submitted or
submitted after a virtual card standalone CVC field is autofilled.
</summary>
</histogram>
<histogram name="Autofill.VirtualCard.Unenroll.Attempt.{Source}"
enum="BooleanAttempted" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true whenever a virtual card Unenroll request is sent. It is broken
down by the source of the request (i.e., Upstream, Downstream, settings
page).
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram name="Autofill.VirtualCard.Unenroll.Result.{Source}"
enum="BooleanSuccess" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted whenever a virtual card Unenroll response is received. It is broken
down by the source of the request (i.e., Upstream, Downstream, settings
page) and logged based on whether the request suceeded.
</summary>
<token key="Source" variants="Autofill.VirtualCard.RequestSource"/>
</histogram>
<histogram name="Autofill.VirtualCard.{Dialog}" enum="BooleanAccepted"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits true when a user accepts {Dialog} in the mobile virtual card edit
page. Emits false if the user declines.
</summary>
<token key="Dialog" variants="Autofill.SettingsPage.VirtualCardDialogType"/>
</histogram>
<histogram name="Autofill.VirtualCard.{Dialog}.LinkClicked"
enum="AutofillVirtualCardDialogLinkClicked" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records which link is clicked whenever a user clicks on links in {Dialog} in
the mobile virtual card edit page. The links are the education text link,
Google legal message link, and issuer legal message link.
</summary>
<token key="Dialog" variants="Autofill.SettingsPage.VirtualCardDialogType"/>
</histogram>
<histogram
name="Autofill.VirtualCardEnroll.CardArtImageAvailable.{EnrollmentSource}"
enum="BooleanAvailable" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric emits true if the card art image is available for use in the
virtual card enroll bubble for the {EnrollmentSource} and false if it is not
available. Recorded when bubble is shown.
</summary>
<token key="EnrollmentSource"
variants="Autofill.VirtualCardEnrollmentSource"/>
</histogram>
<histogram
name="Autofill.VirtualCardEnroll.LinkClicked.{EnrollmentSource}.{LinkType}"
enum="BooleanClicked" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric emits true when a user clicks on virtual card enrollment link
from flows that start from the {EnrollmentSource}.
</summary>
<token key="EnrollmentSource"
variants="Autofill.VirtualCardEnrollmentSource"/>
<token key="LinkType" variants="Autofill.VirtualCardEnrollmentLinkType"/>
</histogram>
<histogram
name="Autofill.VirtualCardEnrollBubble.ConfirmationResult.{IsCardEnrolled}"
enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the virtual card confirmation bubble.
IsCardEnrolled ({IsCardEnrolled}) indicates whether the bubble shown was for
a successful VCN enrollment or not. Recorded when the confirmation bubble is
closed.
</summary>
<token key="IsCardEnrolled">
<variant name="CardEnrolled"
summary="Credit card was successfully enrolled."/>
<variant name="CardNotEnrolled"
summary="Credit card failed to be enrolled."/>
</token>
</histogram>
<histogram
name="Autofill.VirtualCardEnrollBubble.ConfirmationShown.{IsCardEnrolled}"
enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the virtual card confirmation bubble is shown after credit card
enrollment is completed. IsCardEnrolled ({IsCardEnrolled}) indicates whether
the confirmation bubble is for a successful VCN enrollment or not. Recorded
after the confirmation bubble is shown or after the decision to not show the
confirmation bubble.
</summary>
<token key="IsCardEnrolled">
<variant name="CardEnrolled"
summary="Credit card was successfully enrolled."/>
<variant name="CardNotEnrolled"
summary="Credit card failed to be enrolled."/>
</token>
</histogram>
<histogram name="Autofill.VirtualCardEnrollBubble.LatencySinceUpstream"
units="ms" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the latency between Save Card Bubble accepted and the timestamp for
when the Virtual Card Enroll Bubble is shown. This metric is logged right
before the Virtual Card Enroll Bubble is shown, but if web contents are
unavailable it will be logged before waiting for web contents to become
available.
</summary>
</histogram>
<histogram name="Autofill.VirtualCardEnrollBubble.LoadingResult"
enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the virtual card loading bubble. Recorded
when the loading bubble is closed.
</summary>
</histogram>
<histogram name="Autofill.VirtualCardEnrollBubble.LoadingShown"
enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records if the virtual card loading bubble is shown during credit card
enrollment. Recorded after the loading bubble is shown or after the decision
to not show the loading bubble.
</summary>
</histogram>
<histogram name="Autofill.VirtualCardEnrollBubble.MaxStrikesLimitReached"
enum="AutofillVirtualCardEnrollmentSource" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is recorded every time the virtual card enrollment bubble would
have been offered but is not offered due to the maximum number of strikes
being reached. It logs the source for the flow where the bubble would have
been shown, if the strike limit did not block it (for example, upstream i.e.
the save card flow).
</summary>
</histogram>
<histogram
name="Autofill.VirtualCardEnrollBubble.Result.{EnrollmentSource}{ShowType}{PreviousStrikes}"
enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the virtual card enroll bubble for flows that
start from the {EnrollmentSource}. ShowType ({ShowType}) indicates whether
the bubble is a first time show or a reshow triggered by the user. A
subcategory indicating ({PreviousStrikes}) is also logged. Recorded when the
bubble is closed.
</summary>
<token key="EnrollmentSource"
variants="Autofill.VirtualCardEnrollmentSource"/>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
<token key="PreviousStrikes" variants="Autofill.FeaturePreviousStrikes"/>
</histogram>
<histogram name="Autofill.VirtualCardEnrollBubble.Shown.{EnrollmentSource}"
enum="BooleanPreviouslyShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for starting the virtual card enroll bubble for flows
that start from {EnrollmentSource}. Recorded when the bubble is shown.
Records false the first time the bubble is shown, true for subsequent bubble
shows.
</summary>
<token key="EnrollmentSource"
variants="Autofill.VirtualCardEnrollmentSource"/>
</histogram>
<histogram
name="Autofill.VirtualCardEnrollmentStrikeDatabase.{EnrollmentSource}"
enum="AutofillVirtualCardEnrollmentStrikeDatabaseEvent"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logged when a strike is registered in the virtual card enrollment strike
database because a user rejects the bubble, or when strikes are cleared
because the user accepted enrollment.
</summary>
<token key="EnrollmentSource"
variants="Autofill.VirtualCardEnrollmentSource"/>
</histogram>
<histogram name="Autofill.VirtualCardManualFallbackBubble.FieldClicked"
enum="AutofillVirtualCardManualFallbackBubbleFieldClicked"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records which field in the virtual card manual fallback bubble was selected
by the user and had its contents copied to the clipboard. Recorded on every
click of a field in the bubble.
</summary>
</histogram>
<histogram name="Autofill.VirtualCardManualFallbackBubble.Result{ShowType}"
enum="AutofillVirtualCardManualFallbackBubbleResult"
expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the reason for closing the virtual card manual fallback bubble.
Recorded when the bubble is closed.
</summary>
<token key="ShowType" variants="Autofill.PaymentBubble.Show"/>
</histogram>
<histogram name="Autofill.VirtualCardManualFallbackBubble.Shown"
enum="BooleanPreviouslyShown" expires_after="2025-07-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
This metric is recorded whenever the virtual card manual fallback bubble is
shown, after the user has just unmasked and autofilled a virtual card. It
records whether the bubble has just appeared for the first time (false) or
if it is being reshown due to user actions (true).
</summary>
</histogram>
<histogram name="Autofill.WebOTP.OneTimeCode.FillDuration.FromInteraction"
units="ms" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between the user's first interaction with a form and the form's
submission, for form with autocomplete="one-time-code". An
interaction requires changing a form control's value manually or via
autofill. The interaction can happen on a different form than the one which
is submitted. This is recorded once per form submission.
</summary>
</histogram>
<histogram name="Autofill.WebOTP.OneTimeCode.FillDuration.FromLoad" units="ms"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time elapsed between form load and form submission, for forms with
autocomplete="one-time-code". This is recorded once per form
submission.
</summary>
</histogram>
<histogram name="Autofill.WebOTP.OneTimeCode.FromAutocomplete" enum="Boolean"
expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a frame has ever used autocomplete="one-time-code"
during its lifecycle. i.e. it's only recorded once per frame. In addition,
we only record it if the frame has parsed forms.
</summary>
</histogram>
<histogram name="Autofill.WebOTP.PhoneNumberCollection.ParseResult"
enum="Boolean" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a frame collects phone number based on the field
classification. It records once per frame only if it has parsed forms.
Note that the field types may not be calculated if there are less than 3
fields in the form unless an autocomplete attribute is provided. e.g. if the
form has only a single field regarding phone number without specifiying
autocomplete="phone", a sample with "false" will be
reported.
</summary>
</histogram>
<histogram name="Autofill.WebOTP.PhonePlusWebOTPPlusOTC"
enum="PhoneCollectionState" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a document collected phone number, and/or used WebOTP,
and/or used OneTimeCode (OTC) during its lifecycle. i.e. it's recorded in
the browser process when a document is destroyed.
</summary>
</histogram>
<histogram name="Autofill.WebView.AutofillSession" enum="AutofillSessionStates"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>Records the state of an autofill session.</summary>
</histogram>
<histogram name="Autofill.WebView.AutofillSessionWithBottomSheet"
enum="AutofillSessionStates" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records the state of an autofill session in the presence of a bottom sheet.
Emitted at the end of a session (i.e. on submit, on start of a new session,
or on destruction of the WebContents).
</summary>
</histogram>
<histogram name="Autofill.WebView.BottomsheetNoViewStructureDelay" units="ms"
expires_after="2024-12-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time it took between sending a prefill request to the Android
Autofill framework and the bottom sheet failing to show because no Autofill
ViewStructure was ever requested by the framework. Emitted whenever a user
focuses a field for which a prefill request was sent and the missing
ViewStructure is the reason that we record for not having shown the bottom
sheet.
</summary>
</histogram>
<histogram name="Autofill.WebView.CreatedByActivityContext"
enum="BooleanEnabled" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>Whether the autofill is created by activity context.</summary>
</histogram>
<histogram name="Autofill.WebView.Enabled" enum="BooleanEnabled"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Whether the autofill service is enabled in Android platform.
</summary>
</histogram>
<histogram
name="Autofill.WebView.Funnel.FillAfterInteraction{AutofillFormType}"
enum="BooleanAutofillFillAfterInteraction" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users filled the form, given that they have already
interacted with the form.
This metric is recorded on Android WebView, only for forms that users
interacted with. It is recorded only once per form, meaning that it does not
matter if the user fills the form multiple times. If a form changes
dynamically, then Autofill treats the different versions of the form as
different forms. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.WebView.Funnel.InteractionAfterParsedAsType{AutofillFormType}"
enum="BooleanAutofillParsedAsType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users interacted with a form of a certain type.
Focusing a field is sufficient to consider a form as being interacted with.
The user does not need to type anything. Note that some forms may get
focused on page load.
This metric is recorded once per form observed by Autofill on Android
WebView, but only for forms that Autofill classifies to be of the type
indicated by the histogram name. If a form changes dynamically, Autofill
interprets the forms before and after the change as two different forms and
records two values. If a form did not have features that classify it as a
form of a certain type (e.g. an address form or payment form), then nothing
is recorded. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.WebView.Funnel.ParsedAsType{AutofillFormType}"
enum="BooleanAutofillParsedAsType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether a form was parsed/interpreted to be of the type indicated in
the histogram name.
This metric is recorded once for each form observed by Autofill on Android
WebView. If a form changes dynamically, then Autofill treats the different
versions of the form as different forms. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.WebView.Funnel.SubmissionAfterFill{AutofillFormType}"
enum="BooleanAutofillSubmissionAfterFill" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts whether users submitted a form that was filled via autofill.
This metric is recorded once for each form observed by Autofill on Android
WebView but only for forms that the user filled via Autofill.
{AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.WebView.KeyMetrics.FillingAssistance{AutofillFormType}"
enum="BooleanAutofillFillingAssistance" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted forms whether the user filled any fields via Autofill.
If the user reverts the filling, the form is still counted as filled.
This metric is different from Autofill.WebView.KeyMetrics.FillingAcceptance
in the sense that the latter is only recorded if the user has actually seen
a prompt to fill data. {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.WebView.KeyMetrics.FillingCorrectness{AutofillFormType}"
enum="BooleanAutofillFillingCorrectness" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for submitted and autofilled forms on Android WebView whether users
edited at least one filled value before submitting the form.
{AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.WebView.KeyMetrics.FormSubmission.Autofilled{AutofillFormType}"
enum="BooleanAutofillSubmission" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for filled (by Autofill) forms whether users submitted those forms.
This is only recorded for forms that the user filled via Autofill on Android
WebView. It does not matter if the user reverted the filling afterwards.
This is recorded once Autofill stops tracking the form (e.g. due to a
navigation or due to removal from the DOM). {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram
name="Autofill.WebView.KeyMetrics.FormSubmission.NotAutofilled{AutofillFormType}"
enum="BooleanAutofillSubmission" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts for not filled (by Autofill) forms whether users submitted those
forms.
This is only recorded for Android WebView. It is only recorded for forms for
which the user typed anything but did not fill anything. It does not matter
if the user reverted what they typed.
This is recorded once Autofill stops tracking the form (e.g. due to a
navigation or due to removal from the DOM). {AutofillFormType}
</summary>
<token key="AutofillFormType" variants="AutofillFormType"/>
</histogram>
<histogram name="Autofill.WebView.PrefillRequestState"
enum="AndroidAutofillPrefillRequestState" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the state of a prefill request (was a request sent, was it answered,
was a bottom sheet shown) for a form that was deemed cacheable. Emitted
whenever OnAskForValuesToFill is triggered on a cacheable form.
</summary>
</histogram>
<histogram name="Autofill.WebView.Provider.PackageName"
enum="AutofillProviderPackageName" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records the Autofill provider on the device if it matches a fixed list of
package names or unknown otherwise. This is recorded once for a given
AwContents. It is recorded on AutofillProvider initialization. Only recorded
in Android P and beyond.
</summary>
</histogram>
<histogram name="Autofill.WebView.ServerPrediction.AwGSuggestionAvailability"
enum="AutofillAwGSuggestionAvailability" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records whether Autofill with Google has suggestions and if the user selects
any suggestion. It is recorded when the form is submitted. Only recorded in
Android P and beyond.
</summary>
</histogram>
<histogram name="Autofill.WebView.ServerPredicton.HasValidServerPrediction"
enum="BooleanYesNo" expires_after="2024-12-12">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records whether the server prediction of any field isn't NO_SERVER_DATA.
This histogram is recorded when the server prediction is available for the
current form.
</summary>
</histogram>
<histogram name="Autofill.WebView.ServerPredicton.PredictionAvailability"
enum="AutofillServerPredictionAvailability" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>
Records whether and when the server prediction response of current autofill
session is available even if query failed or there is no server data. This
histogram is recorded when the prediction becomes available or the new
session starts.
</summary>
</histogram>
<histogram name="Autofill.WebView.SubmissionSource"
enum="AutofillSubmissionSource" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>Records the source of form submission.</summary>
</histogram>
<histogram name="Autofill.WebView.SuggestionTime" units="ms"
expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>src/android_webview/OWNERS</owner>
<summary>The time taken to display suggestion.</summary>
</histogram>
</histograms>
</histogram-configuration>