blob: 84ffe95f0399df5928f9e32fff49c3d18757eede [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_PREFS_H_
#define COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_PREFS_H_
#include <string>
#include "build/build_config.h"
#include "google_apis/gaia/core_account_id.h"
class PrefService;
namespace user_prefs {
class PrefRegistrySyncable;
} // namespace user_prefs
namespace autofill {
namespace prefs {
// Alphabetical list of preference names specific to the Autofill
// component. Keep alphabetized, and document each in the .cc file.
// Do not get/set the value of this pref directly. Use provided getter/setter.
extern const char kAutofillCreditCardEnabled[];
extern const char kAutofillCreditCardFidoAuthEnabled[];
#if BUILDFLAG(IS_ANDROID)
extern const char kAutofillCreditCardFidoAuthOfferCheckboxState[];
#endif
// Please use kAutofillCreditCardEnabled, kAutofillIBANEnabled and
// kAutofillProfileEnabled instead.
extern const char kAutofillEnabledDeprecated[];
extern const char kAutofillHasSeenIban[];
extern const char kAutofillIBANEnabled[];
extern const char kAutofillLastVersionDeduped[];
extern const char kAutofillLastVersionDisusedAddressesDeleted[];
extern const char kAutofillLastVersionDisusedCreditCardsDeleted[];
extern const char kAutofillOrphanRowsRemoved[];
// Do not get/set the value of this pref directly. Use provided getter/setter.
extern const char kAutofillProfileEnabled[];
extern const char kAutofillSyncTransportOptIn[];
extern const char kAutofillStatesDataDir[];
extern const char kAutofillUploadEncodingSeed[];
extern const char kAutofillUploadEvents[];
extern const char kAutofillUploadEventsLastResetTimestamp[];
extern const char kAutofillWalletImportEnabled[];
extern const char kAutocompleteLastVersionRetentionPolicy[];
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
extern const char kAutofillPaymentMethodsMandatoryReauth[];
extern const char kAutofillPaymentMethodsMandatoryReauthPromoShownCounter[];
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
// The maximum value for the
// `kAutofillPaymentMethodsMandatoryReauthPromoShownCounter` pref. If this
// value is reached, we should not show a mandatory re-auth promo.
const int kMaxValueForMandatoryReauthPromoShownCounter = 3;
namespace sync_transport_opt_in {
enum Flags {
kWallet = 1 << 0,
};
} // namespace sync_transport_opt_in
// Registers Autofill prefs.
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
// Migrates deprecated Autofill prefs values.
void MigrateDeprecatedAutofillPrefs(PrefService* prefs);
bool IsAutocompleteEnabled(const PrefService* prefs);
bool IsCreditCardFIDOAuthEnabled(PrefService* prefs);
void SetCreditCardFIDOAuthEnabled(PrefService* prefs, bool enabled);
bool IsAutofillCreditCardEnabled(const PrefService* prefs);
void SetAutofillCreditCardEnabled(PrefService* prefs, bool enabled);
bool HasSeenIban(const PrefService* prefs);
void SetAutofillHasSeenIban(PrefService* prefs);
bool IsAutofillIBANEnabled(const PrefService* prefs);
void SetAutofillIBANEnabled(PrefService* prefs, bool enabled);
bool IsAutofillManaged(const PrefService* prefs);
bool IsAutofillProfileManaged(const PrefService* prefs);
bool IsAutofillCreditCardManaged(const PrefService* prefs);
bool IsAutofillProfileEnabled(const PrefService* prefs);
void SetAutofillProfileEnabled(PrefService* prefs, bool enabled);
bool IsPaymentsIntegrationEnabled(const PrefService* prefs);
void SetPaymentsIntegrationEnabled(PrefService* prefs, bool enabled);
bool IsPaymentMethodsMandatoryReauthEnabled(const PrefService* prefs);
void SetPaymentMethodsMandatoryReauthEnabled(PrefService* prefs, bool enabled);
bool ShouldShowPaymentMethodsMandatoryReauthPromo(const PrefService* prefs);
void IncrementPaymentMethodsMandatoryReauthPromoShownCounter(
PrefService* prefs);
void SetUserOptedInWalletSyncTransport(PrefService* prefs,
const CoreAccountId& account_id,
bool opted_in);
bool IsUserOptedInWalletSyncTransport(const PrefService* prefs,
const CoreAccountId& account_id);
void ClearSyncTransportOptIns(PrefService* prefs);
} // namespace prefs
} // namespace autofill
#endif // COMPONENTS_AUTOFILL_CORE_COMMON_AUTOFILL_PREFS_H_