| // Copyright 2022 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/sync/base/features.h" |
| |
| #include "base/feature_list.h" |
| |
| namespace syncer { |
| |
| namespace { |
| constexpr bool IS_AUTOFILL_AI_PLATFORM = BUILDFLAG(IS_CHROMEOS) || |
| BUILDFLAG(IS_LINUX) || |
| BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN); |
| } // namespace |
| |
| BASE_FEATURE(kDeferredSyncStartupCustomDelay, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncAccountSettings, |
| IS_AUTOFILL_AI_PLATFORM ? base::FEATURE_ENABLED_BY_DEFAULT |
| : base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| #if BUILDFLAG(IS_IOS) |
| BASE_FEATURE(kSyncAutofillValuable, base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif |
| |
| BASE_FEATURE(kSyncAutofillValuableMetadata, |
| IS_AUTOFILL_AI_PLATFORM ? base::FEATURE_ENABLED_BY_DEFAULT |
| : base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncSharedTabGroupAccountData, base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncSharedComment, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncAIThread, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncContextualTask, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncGeminiThread, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncThemesIos, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kNewTabPageCustomizationThemeSync, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncLoyaltyCardMetadata, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| #if !BUILDFLAG(IS_CHROMEOS) |
| BASE_FEATURE(kUnoPhase2FollowUp, |
| #if BUILDFLAG(IS_ANDROID) |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #else |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #endif |
| ); |
| #endif // !BUILDFLAG(IS_CHROMEOS) |
| |
| |
| BASE_FEATURE(kSyncEnableContactInfoDataTypeForCustomPassphraseUsers, |
| #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #else |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #endif |
| ); |
| |
| bool IsContactInfoDataTypeForCustomPassphraseUsersEnabled() { |
| return base::FeatureList::IsEnabled( |
| kSyncEnableContactInfoDataTypeForCustomPassphraseUsers) || |
| base::FeatureList::IsEnabled( |
| kReplaceSyncPromosWithSigninPromosNewSignin); |
| } |
| |
| BASE_FEATURE(kSyncEnableContactInfoDataTypeForDasherUsers, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSeparateLocalAndAccountSearchEngines, |
| #if BUILDFLAG(IS_CHROMEOS) |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #else |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| ); |
| |
| BASE_FEATURE(kReplaceSyncPromosWithSignInPromos, |
| #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #else |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #endif |
| ); |
| |
| BASE_FEATURE(kReplaceSyncPromosWithSigninPromosNewSignin, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| bool IsReplaceSyncPromosWithSignInPromosEnabled() { |
| return base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) || |
| base::FeatureList::IsEnabled( |
| kReplaceSyncPromosWithSigninPromosNewSignin); |
| } |
| |
| BASE_FEATURE(kSyncSupportAlwaysSyncingPriorityPreferences, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncWalletFlightReservations, |
| IS_AUTOFILL_AI_PLATFORM ? base::FEATURE_ENABLED_BY_DEFAULT |
| : base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncWalletVehicleRegistrations, |
| IS_AUTOFILL_AI_PLATFORM ? base::FEATURE_ENABLED_BY_DEFAULT |
| : base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSpellcheckSeparateLocalAndAccountDictionaries, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kEnableBookmarksSelectedTypeOnSigninForTesting, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSearchEngineAvoidFaviconOnlyCommits, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) |
| BASE_FEATURE(kReadingListEnableSyncTransportModeUponSignIn, |
| #if BUILDFLAG(IS_CHROMEOS) |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #else |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #endif |
| ); |
| |
| bool IsReadingListAccountStorageEnabled() { |
| return base::FeatureList::IsEnabled( |
| syncer::kReadingListEnableSyncTransportModeUponSignIn); |
| } |
| #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) |
| |
| #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) |
| #endif // BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) |
| |
| // Enabled by default, intended as a kill switch. |
| BASE_FEATURE(kSyncReadingListBatchUploadSelectedItems, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSeparateLocalAndAccountThemes, |
| #if BUILDFLAG(IS_CHROMEOS) |
| base::FEATURE_DISABLED_BY_DEFAULT |
| #else |
| base::FEATURE_ENABLED_BY_DEFAULT |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| ); |
| |
| BASE_FEATURE(kThemesBatchUpload, base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncIncreaseNudgeDelayForSingleClient, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| #if BUILDFLAG(IS_ANDROID) |
| BASE_FEATURE(kWebApkBackupAndRestoreBackend, base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| BASE_FEATURE(kSyncEnablePasswordsSyncErrorMessageAlternative, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncTrustedVaultErrorMessageDuration, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_IOS) |
| BASE_FEATURE(kSyncTrustedVaultInfobarMessageImprovements, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif // BUILDFLAG(IS_IOS) |
| |
| BASE_FEATURE(kSyncPreferencesUseSelectedTypes, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncDetermineAccountManagedStatus, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| BASE_FEATURE_PARAM(base::TimeDelta, |
| kSyncDetermineAccountManagedStatusTimeout, |
| &kSyncDetermineAccountManagedStatus, |
| "account_managed_status_timeout", |
| base::Seconds(5)); |
| |
| BASE_FEATURE(kSyncEnableNewSyncDashboardUrl, base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncRecordDeviceStatisticsMetrics, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| BASE_FEATURE_PARAM(base::TimeDelta, |
| kSyncRecordDeviceStatisticsMetricsDelay, |
| &kSyncRecordDeviceStatisticsMetrics, |
| "SyncRecordDeviceStatisticsMetricsDelay", |
| base::Seconds(30)); |
| BASE_FEATURE_PARAM(int, |
| kSyncRecordDeviceStatisticsMetricsPeriodDays, |
| &kSyncRecordDeviceStatisticsMetrics, |
| "SyncRecordDeviceStatisticsMetricsPeriodDays", |
| 1); |
| |
| BASE_FEATURE(kSyncDeviceInfoUseWallClockTimer, |
| base::FEATURE_ENABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncValidateAccessToken, base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| BASE_FEATURE(kSyncInvalidationsBypassScheduler, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| #if BUILDFLAG(IS_ANDROID) |
| BASE_FEATURE(kSyncSearchEnginesAndroidLFF, base::FEATURE_DISABLED_BY_DEFAULT); |
| BASE_FEATURE(kAlwaysRegisterSessionsInvalidationsAndroid, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| BASE_FEATURE(kSyncUploadAndroidBuildFingerprintPrefix, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| BASE_FEATURE(kEstimateNewSignInUsersWithFinchAvailablePopulation, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| BASE_FEATURE(kSyncFixWebSigninSessionDurationForShortLivedSessions, |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| |
| } // namespace syncer |