chromium/components/autofill/core/common/autofill_payments_features.cc

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

#include "components/autofill/core/common/autofill_payments_features.h"

#include "build/chromeos_buildflags.h"

namespace autofill::features {

#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \
    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
// When enabled, Chrome will extract the checkout amount from the checkout page
// of the allowlisted merchant websites.
BASE_FEATURE();
#endif

// When enabled, Android N+ devices will be supported for FIDO authentication.
BASE_FEATURE();

// When enabled, card art images (instead of network icons) will be shown in
// Payments Autofill UI.
BASE_FEATURE();

// When enabled, server will return card art images of the exact required
// dimension.
BASE_FEATURE();

// When enabled, card benefits offered by American Express will be shown in
// Payments Autofill UI.
BASE_FEATURE();

// When enabled, card benefits offered by Capital One will be shown in Payments
// Autofill UI.
BASE_FEATURE();

// When enabled, Chrome will show metadata along with other card information
// when the virtual card is presented to users.
BASE_FEATURE();
#endif

// When enabled, card product name (instead of issuer network) will be shown in
// Payments Autofill UI.
BASE_FEATURE();

// When enabled, we will store CVC for both local and server credit cards. This
// will also allow the users to autofill their CVCs on checkout pages.
BASE_FEATURE();

// When enabled, will enhance CVV storage project. Provide better suggestion,
// resolve conflict with COF project and add logging.
BASE_FEATURE();

// When enabled, user's will see network card art images and network icons which
// are larger, having a white border, and don't have the standard grey overlay
// applied to them.
BASE_FEATURE();

// When enabled, server card retrieval will begin with a risk-based check
// instead of jumping straight to CVC or biometric auth.
BASE_FEATURE();

#if BUILDFLAG(IS_ANDROID)
// When enabled, saving and autofilling local IBANs (International Bank Account
// Numbers) will be offered.
BASE_FEATURE(kAutofillEnableLocalIban,
             "AutofillEnableLocalIban",
             base::FEATURE_DISABLED_BY_DEFAULT);
#endif

// When enabled, the merchant_domain field is included in requests to unmask a
// card.
BASE_FEATURE();

// When enabled, the GPay logo will be moved to the right side in payments
// autofill dialogs and bubbles on desktop.
BASE_FEATURE();

// When enabled, the GPay logo will be moved to the right side in payments
// autofill dialogs and bubbles on clank.
BASE_FEATURE();

// When enabled, offers will be displayed in the Clank keyboard accessory during
// downstream.
BASE_FEATURE();

// When enabled, risk data is prefetched during payments autofill flows to
// reduce user-perceived latency.
BASE_FEATURE();

// When enabled, the save card screen will present a loading spinner when
// uploading the card to the server and present a confirmation screen with the
// result when completed.
BASE_FEATURE();
#endif

// When enabled, save card will fallback to a local save if the server upload of
// a card encounters a failure.
BASE_FEATURE();
#endif

// When enabled, Autofill will attempt to offer upload save for IBANs
// (International Bank Account Numbers) and autofill server-based IBANs.
BASE_FEATURE();

#if BUILDFLAG(IS_ANDROID)
// When enabled, Pix bank accounts are synced from Chrome Sync backend and
// stored in the local db.
BASE_FEATURE(kAutofillEnableSyncingOfPixBankAccounts,
             "AutofillEnableSyncingOfPixBankAccounts",
             base::FEATURE_DISABLED_BY_DEFAULT);
#endif  // BUILDFLAG(IS_ANDROID)

// When enabled, Chrome will trigger 3DS authentication during a virtual card
// retrieval if a challenge is required, 3DS authentication is available for
// the card, and FIDO is not.
BASE_FEATURE();

// When enabled, the vcn enroll screen will present a loading spinner while
// enrolling the card to the server and present a confirmation screen with the
// result when completed.
BASE_FEATURE();
#endif

// When enabled, Chrome will display grayed out virtual card suggestions on
// merchant websites where the merchant has opted-out of virtual cards.
BASE_FEATURE();

// When enabled, uses the refactored VirtualCardEnrollMetricsLogger in
// VirtualCardEnrollBubbleController on all platforms.
BASE_FEATURE();

// When enabled, Verve-branded card art will be shown for Verve cards.
BASE_FEATURE();

// When enabled, Chrome will show metadata along with other card information
// when the virtual card is presented to users.
BASE_FEATURE();
#endif

// When enabled, Autofill will attempt to find standalone CVC fields for VCN
// card on file when parsing forms.
BASE_FEATURE();

// When enabled, the "Show cards from your Google Account" Autofill suggestion
// will not be displayed, and Autofill will work as if it had been selected.
BASE_FEATURE();

// When enabled, the add/edit local card dialog in chrome://settings on Desktop
// requires that the card number be valid before saving is allowed.
BASE_FEATURE();

#if BUILDFLAG(IS_IOS)
// When enabled, manual fill view will be shown directly from form focusing
// events, if a virtual card has been retrieved previously.
BASE_FEATURE(kAutofillShowManualFillForVirtualCards,
             "AutofillShowManualFillForVirtualCards",
             base::FEATURE_ENABLED_BY_DEFAULT);
#endif

#if BUILDFLAG(IS_ANDROID)
// When enabled, IBAN Autofill suggestions are shown via the keyboard accessory
// instead of the bottom sheet.
BASE_FEATURE(kAutofillSkipAndroidBottomSheetForIban,
             "AutofillSkipAndroidBottomSheetForIban",
             base::FEATURE_DISABLED_BY_DEFAULT);
#endif

// When enabled, adds a timeout on the network request for Unmask requests.
BASE_FEATURE();

// When enabled, adds a timeout on the network request for UploadCard requests.
BASE_FEATURE();
const base::FeatureParam<int> kAutofillUploadCardRequestTimeoutMilliseconds{};

// Controls offering credit card upload to Google Payments. Cannot ever be
// ENABLED_BY_DEFAULT because the feature state depends on the user's country.
// The set of launched countries is listed in autofill_experiments.cc, and this
// flag remains as a way to easily enable upload credit card save for testers,
// as well as enable non-fully-launched countries on a trial basis.
BASE_FEATURE();

// When enabled, shows different text and images in the UI of the credit card
// upload save bubble.
BASE_FEATURE();
const base::FeatureParam<int> kAutofillUpstreamUpdatedUiTreatment{};

#if BUILDFLAG(IS_IOS)
// When this is enabled, virtual card enrollment and retrieval will be enabled
// on Bling.
BASE_FEATURE(kAutofillEnableVirtualCards,
             "AutofillEnableVirtualCards",
             base::FEATURE_ENABLED_BY_DEFAULT);
#endif

// When enabled, adds a timeout on the network request for VcnEnroll requests.
BASE_FEATURE();
const base::FeatureParam<int> kAutofillVcnEnrollRequestTimeoutMilliseconds{};

#if BUILDFLAG(IS_ANDROID)
// When enabled, eWallet accounts are synced from the Google Payments servers
// and displayed on the payment methods settings page.
BASE_FEATURE(kAutofillSyncEwalletAccounts,
             "AutofillSyncEwalletAccounts",
             base::FEATURE_DISABLED_BY_DEFAULT);
#endif  // BUILDFLAG(IS_ANDROID)

bool ShouldShowImprovedUserConsentForCreditCardSave() {}

}  // namespace autofill::features