blob: bcef999e418bf7f6bf63a8d9036fa4e223a075f9 [file]
// 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