123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_SYNC_BASE_FEATURES_H_
- #define COMPONENTS_SYNC_BASE_FEATURES_H_
- #include "base/feature_list.h"
- #include "base/metrics/field_trial_params.h"
- namespace syncer {
- // Allows device registration within trusted vault server without having trusted
- // vault key. Effectively disabled if kSyncTrustedVaultPassphraseRecovery
- // is disabled.
- inline constexpr base::Feature kAllowSilentTrustedVaultDeviceRegistration{
- "AllowSilentTrustedVaultDeviceRegistration",
- base::FEATURE_ENABLED_BY_DEFAULT};
- // If enabled, EntitySpecifics will be cached in EntityMetadata in order to
- // prevent data loss caused by older clients dealing with unknown proto fields
- // (introduced later).
- inline constexpr base::Feature kCacheBaseEntitySpecificsInMetadata{
- "CacheBaseEntitySpecificsInMetadata", base::FEATURE_DISABLED_BY_DEFAULT};
- inline constexpr base::Feature kEnableSyncImmediatelyInFRE{
- "EnableSyncImmediatelyInFRE", base::FEATURE_ENABLED_BY_DEFAULT};
- // Causes Sync to ignore updates encrypted with keys that have been missing for
- // too long from this client; Sync will proceed normally as if those updates
- // didn't exist.
- inline constexpr base::Feature kIgnoreSyncEncryptionKeysLongMissing{
- "IgnoreSyncEncryptionKeysLongMissing", base::FEATURE_DISABLED_BY_DEFAULT};
- // The threshold for kIgnoreSyncEncryptionKeysLongMissing to start ignoring keys
- // (measured in number of GetUpdatesResponses messages).
- inline constexpr base::FeatureParam<int> kMinGuResponsesToIgnoreKey{
- &kIgnoreSyncEncryptionKeysLongMissing, "MinGuResponsesToIgnoreKey", 3};
- // When enabled, Sync machinery will read and writes password notes to the
- // `encrypted_notes_backup` field inside the PasswordSpecifics proto. Together
- // with the logic on the server. this protects against notes being overwritten
- // by legacy clients not supporting password notes.
- inline constexpr base::Feature kReadWritePasswordNotesBackupField{
- "ReadWritePasswordNotesBackupField", base::FEATURE_DISABLED_BY_DEFAULT};
- // Allows custom passphrase users to receive Wallet data for secondary accounts
- // while in transport-only mode.
- inline constexpr base::Feature
- kSyncAllowWalletDataInTransportModeWithCustomPassphrase{
- "SyncAllowAutofillWalletDataInTransportModeWithCustomPassphrase",
- base::FEATURE_DISABLED_BY_DEFAULT};
- #if BUILDFLAG(IS_ANDROID)
- inline constexpr base::Feature kSyncAndroidPromosWithAlternativeTitle{
- "SyncAndroidPromosWithAlternativeTitle", base::FEATURE_DISABLED_BY_DEFAULT};
- inline constexpr base::Feature kSyncAndroidPromosWithIllustration{
- "SyncAndroidPromosWithIllustration", base::FEATURE_DISABLED_BY_DEFAULT};
- inline constexpr base::Feature kSyncAndroidPromosWithSingleButton{
- "SyncAndroidPromosWithSingleButton", base::FEATURE_DISABLED_BY_DEFAULT};
- inline constexpr base::Feature kSyncAndroidPromosWithTitle{
- "SyncAndroidPromosWithTitle", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif // BUILDFLAG(IS_ANDROID)
- // Controls whether to enable syncing of Autofill Wallet Usage Data.
- inline constexpr base::Feature kSyncAutofillWalletUsageData{
- "SyncAutofillWalletUsageData", base::FEATURE_DISABLED_BY_DEFAULT};
- // Causes the sync engine to count a quota for commits of data types that can
- // be committed by extension JS API. If the quota is depleted, an extra long
- // nudge delay is applied to that data type. As a result, more changes are
- // likely to get combined into one commit message.
- inline constexpr base::Feature kSyncExtensionTypesThrottling{
- "SyncExtensionTypesThrottling", base::FEATURE_ENABLED_BY_DEFAULT};
- // Sync requires policies to be loaded before starting.
- inline constexpr base::Feature kSyncRequiresPoliciesLoaded{
- "SyncRequiresPoliciesLoaded", base::FEATURE_DISABLED_BY_DEFAULT};
- // Max time to delay the sync startup while waiting for policies to load.
- inline constexpr base::FeatureParam<base::TimeDelta> kSyncPolicyLoadTimeout{
- &kSyncRequiresPoliciesLoaded, "SyncPolicyLoadTimeout", base::Seconds(10)};
- inline constexpr base::Feature kSyncResetPollIntervalOnStart{
- "SyncResetPollIntervalOnStart", base::FEATURE_DISABLED_BY_DEFAULT};
- // If enabled, interested data types, excluding Wallet and Offer, will be sent
- // to the Sync Server as part of DeviceInfo.
- inline constexpr base::Feature kSyncSendInterestedDataTypes = {
- "SyncSendInterestedDataTypes", base::FEATURE_ENABLED_BY_DEFAULT};
- #if BUILDFLAG(IS_CHROMEOS)
- // Whether warning should be shown in sync settings page when lacros
- // side-by-side mode is enabled.
- inline constexpr base::Feature kSyncSettingsShowLacrosSideBySideWarning{
- "SyncSettingsShowLacrosSideBySideWarning",
- base::FEATURE_ENABLED_BY_DEFAULT};
- // Whether explicit passphrase sharing between Ash and Lacros is enabled.
- inline constexpr base::Feature kSyncChromeOSExplicitPassphraseSharing{
- "SyncChromeOSExplicitPassphraseSharing", base::FEATURE_ENABLED_BY_DEFAULT};
- // Whether Apps toggle value is exposed by Ash to Lacros.
- inline constexpr base::Feature kSyncChromeOSAppsToggleSharing{
- "SyncChromeOSAppsToggleSharing", base::FEATURE_DISABLED_BY_DEFAULT};
- #endif // BUILDFLAG(IS_CHROMEOS)
- #if BUILDFLAG(IS_IOS)
- // Whether RPC is enabled.
- inline constexpr base::Feature kSyncTrustedVaultPassphraseiOSRPC{
- "SyncTrustedVaultPassphraseiOSRPC", base::FEATURE_ENABLED_BY_DEFAULT};
- #endif // BUILDFLAG(IS_IOS)
- // Whether the entry point to opt in to trusted vault in settings should be
- // shown.
- inline constexpr base::Feature kSyncTrustedVaultPassphrasePromo{
- "SyncTrustedVaultPassphrasePromo", base::FEATURE_DISABLED_BY_DEFAULT};
- // Keep this entry in sync with the equivalent name in
- // ChromeFeatureList.java.
- inline constexpr base::Feature kSyncTrustedVaultPassphraseRecovery{
- "SyncTrustedVaultPassphraseRecovery", base::FEATURE_ENABLED_BY_DEFAULT};
- // Specifies how long requests to vault service shouldn't be retried after
- // encountering transient error.
- inline constexpr base::FeatureParam<base::TimeDelta>
- kTrustedVaultServiceThrottlingDuration{
- &kSyncTrustedVaultPassphraseRecovery,
- "TrustedVaultServiceThrottlingDuration", base::Days(1)};
- // Enables logging a UMA metric that requires first communicating with the
- // trusted vault server, in order to verify that the local notion of the device
- // being registered is consistent with the server-side state.
- inline constexpr base::Feature kSyncTrustedVaultVerifyDeviceRegistration{
- "SyncTrustedVaultVerifyDeviceRegistration",
- base::FEATURE_DISABLED_BY_DEFAULT};
- // Triggers another device registration attempt if the device was registered
- // before this feature was introduced.
- inline constexpr base::Feature kSyncTrustedVaultRedoDeviceRegistration{
- "SyncTrustedVaultRedoDeviceRegistration",
- base::FEATURE_DISABLED_BY_DEFAULT};
- // If enabled, the device will register with FCM and listen to new
- // invalidations. Also, FCM token will be set in DeviceInfo, which signals to
- // the server that device listens to new invalidations.
- // The device will not subscribe to old invalidations for any data types except
- // Wallet and Offer, since that will be covered by the new system.
- // SyncSendInterestedDataTypes must be enabled for this to take effect.
- inline constexpr base::Feature kUseSyncInvalidations = {
- "UseSyncInvalidations", base::FEATURE_DISABLED_BY_DEFAULT};
- // If enabled, types related to Wallet and Offer will be included in interested
- // data types, and the device will listen to new invalidations for those types
- // (if they are enabled).
- // The device will not register for old invalidations at all.
- // UseSyncInvalidations must be enabled for this to take effect.
- inline constexpr base::Feature kUseSyncInvalidationsForWalletAndOffer = {
- "UseSyncInvalidationsForWalletAndOffer", base::FEATURE_DISABLED_BY_DEFAULT};
- // When enabled, optimization flags (single client and a list of FCM
- // registration tokens) will be disabled if during the current sync cycle
- // DeviceInfo has been updated.
- inline constexpr base::Feature
- kSkipInvalidationOptimizationsWhenDeviceInfoUpdated = {
- "SkipInvalidationOptimizationsWhenDeviceInfoUpdated",
- base::FEATURE_DISABLED_BY_DEFAULT};
- #if BUILDFLAG(IS_IOS)
- // Returns whether RPC is enabled.
- bool IsSyncTrustedVaultPassphraseiOSRPCEnabled();
- #endif // BUILDFLAG(IS_IOS)
- inline constexpr base::Feature kSyncEnableHistoryDataType = {
- "SyncEnableHistoryDataType", base::FEATURE_DISABLED_BY_DEFAULT};
- } // namespace syncer
- #endif // COMPONENTS_SYNC_BASE_FEATURES_H_
|