blob: e215fbc65b1e7273f94f42f59a3e95ebaab85816 [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.
#import "ios/chrome/browser/shared/public/features/features.h"
#import "ui/base/device_form_factor.h"
BASE_FEATURE(kDefaultBrowserBlueDotPromo,
"DefaultBrowserBlueDotPromo",
base::FEATURE_ENABLED_BY_DEFAULT);
constexpr base::FeatureParam<BlueDotPromoUserGroup>::Option
kBlueDotPromoUserGroupOptions[] = {
{BlueDotPromoUserGroup::kAllDBPromosDisabled, "all-db-promos-disabled"},
{BlueDotPromoUserGroup::kAllDBPromosEnabled, "all-db-promos-enabled"},
{BlueDotPromoUserGroup::kOnlyBlueDotPromoEnabled,
"only-blue-dot-promo-enabled"}};
constexpr base::FeatureParam<BlueDotPromoUserGroup> kBlueDotPromoUserGroupParam{
&kDefaultBrowserBlueDotPromo, "user-group",
BlueDotPromoUserGroup::kAllDBPromosEnabled, &kBlueDotPromoUserGroupOptions};
BASE_FEATURE(kIOSPaymentsBottomSheet,
"IOSPaymentsBottomSheet",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTestFeature, "TestFeature", base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSafetyCheckMagicStack,
"SafetyCheckMagicStack",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSharedHighlightingIOS,
"SharedHighlightingIOS",
base::FEATURE_ENABLED_BY_DEFAULT);
// TODO(crbug.com/1128242): Remove this flag after the refactoring work is
// finished.
BASE_FEATURE(kModernTabStrip,
"ModernTabStrip",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kIncognitoNtpRevamp,
"IncognitoNtpRevamp",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kDefaultBrowserIntentsShowSettings,
"DefaultBrowserIntentsShowSettings",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kIOSBrowserEditMenuMetrics,
"IOSBrowserEditMenuMetrics",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kNonModalDefaultBrowserPromoCooldownRefactor,
"NonModalDefaultBrowserPromoCooldownRefactor",
base::FEATURE_DISABLED_BY_DEFAULT);
constexpr base::FeatureParam<int>
kNonModalDefaultBrowserPromoCooldownRefactorParam{
&kNonModalDefaultBrowserPromoCooldownRefactor,
/*name=*/"cooldown-days", /*default_value=*/14};
BASE_FEATURE(kDefaultBrowserGenericTailoredPromoTrain,
"DefaultBrowserGenericTailoredPromoTrain",
base::FEATURE_DISABLED_BY_DEFAULT);
constexpr base::FeatureParam<DefaultBrowserPromoGenericTailoredArm>::Option
kDefaultBrowserPromoGenericTailoredArmOptions[] = {
{DefaultBrowserPromoGenericTailoredArm::kOnlyGeneric, "only-generic"},
{DefaultBrowserPromoGenericTailoredArm::kOnlyTailored,
"only-tailored"}};
const base::FeatureParam<DefaultBrowserPromoGenericTailoredArm>
kDefaultBrowserPromoGenericTailoredParam{
&kDefaultBrowserGenericTailoredPromoTrain, "experiment-arm",
DefaultBrowserPromoGenericTailoredArm::kOnlyGeneric,
&kDefaultBrowserPromoGenericTailoredArmOptions};
BASE_FEATURE(kDefaultBrowserRefactoringPromoManager,
"DefaultBrowserRefactoringPromoManager",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kDefaultBrowserVideoPromo,
"DefaultBrowserVideoPromo",
base::FEATURE_DISABLED_BY_DEFAULT);
const char kIOSEditMenuPartialTranslateNoIncognitoParam[] =
"IOSEditMenuPartialTranslateNoIncognitoParam";
BASE_FEATURE(kIOSEditMenuPartialTranslate,
"IOSEditMenuPartialTranslate",
base::FEATURE_ENABLED_BY_DEFAULT);
bool IsPartialTranslateEnabled() {
if (@available(iOS 16, *)) {
return base::FeatureList::IsEnabled(kIOSEditMenuPartialTranslate);
}
return false;
}
bool ShouldShowPartialTranslateInIncognito() {
if (!IsPartialTranslateEnabled()) {
return false;
}
return !base::GetFieldTrialParamByFeatureAsBool(
kIOSEditMenuPartialTranslate,
kIOSEditMenuPartialTranslateNoIncognitoParam, false);
}
const char kIOSEditMenuSearchWithTitleParamTitle[] =
"IOSEditMenuSearchWithTitleParam";
const char kIOSEditMenuSearchWithTitleSearchParam[] = "Search";
const char kIOSEditMenuSearchWithTitleSearchWithParam[] = "SearchWith";
const char kIOSEditMenuSearchWithTitleWebSearchParam[] = "WebSearch";
BASE_FEATURE(kIOSEditMenuSearchWith,
"IOSEditMenuSearchWith",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsSearchWithEnabled() {
if (@available(iOS 16, *)) {
return base::FeatureList::IsEnabled(kIOSEditMenuSearchWith);
}
return false;
}
BASE_FEATURE(kIOSEditMenuHideSearchWeb,
"IOSEditMenuHideSearchWeb",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kIOSNewOmniboxImplementation,
"kIOSNewOmniboxImplementation",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kIOSLensUseDirectUpload,
"IOSLensUseDirectUpload",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensInHomeScreenWidget,
"EnableLensInHomeScreenWidget",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensInKeyboard,
"EnableLensInKeyboard",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensInNTP,
"EnableLensInNTP",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensContextMenuAltText,
"EnableLensContextMenuAltText",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEnableLensInOmniboxCopiedImage,
"EnableLensInOmniboxCopiedImage",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEnableTraitCollectionWorkAround,
"EnableTraitCollectionWorkAround",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableUIButtonConfiguration,
"EnableUIButtonConfiguration",
base::FEATURE_ENABLED_BY_DEFAULT);
bool IsUIButtonConfigurationEnabled() {
return base::FeatureList::IsEnabled(kEnableUIButtonConfiguration);
}
BASE_FEATURE(kRemoveExcessNTPs,
"RemoveExcessNTPs",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableShortenedPasswordAutoFillInstruction,
"EnableShortenedPasswordAutoFillInstruction",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableExpKitAppleCalendar,
"EnableExpKitAppleCalendar",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kTabGridNewTransitions,
"TabGridNewTransitions",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsNewTabGridTransitionsEnabled() {
return base::FeatureList::IsEnabled(kTabGridNewTransitions);
}
BASE_FEATURE(kNonModalDefaultBrowserPromoImpressionLimit,
"NonModalDefaultBrowserPromoImpressionLimit",
base::FEATURE_ENABLED_BY_DEFAULT);
constexpr base::FeatureParam<int>
kNonModalDefaultBrowserPromoImpressionLimitParam{
&kNonModalDefaultBrowserPromoImpressionLimit,
/*name=*/"impression-limit", /*default_value=*/3};
BASE_FEATURE(kNotificationSettingsMenuItem,
"NotificationSettingsMenuItem",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kSpotlightOpenTabsSource,
"SpotlightOpenTabsSource",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSpotlightReadingListSource,
"SpotlightReadingListSource",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSpotlightDonateNewIntents,
"SpotlightDonateNewIntents",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kConsistencyNewAccountInterface,
"ConsistencyNewAccountInterface",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsConsistencyNewAccountInterfaceEnabled() {
return base::FeatureList::IsEnabled(kConsistencyNewAccountInterface);
}
BASE_FEATURE(kNewNTPOmniboxLayout,
"kNewNTPOmniboxLayout",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kBottomOmniboxSteadyState,
"BottomOmniboxSteadyState",
base::FEATURE_DISABLED_BY_DEFAULT);
const char kBottomOmniboxDefaultSettingParam[] =
"BottomOmniboxDefaultSettingParam";
const char kBottomOmniboxDefaultSettingParamTop[] = "Top";
const char kBottomOmniboxDefaultSettingParamBottom[] = "Bottom";
const char kBottomOmniboxDefaultSettingParamSafariSwitcher[] =
"BottomSafariSwitcher";
BASE_FEATURE(kBottomOmniboxDefaultSetting,
"BottomOmniboxDefaultSetting",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsBottomOmniboxSteadyStateEnabled() {
// Bottom omnibox is only available on phones.
if (ui::GetDeviceFormFactor() != ui::DEVICE_FORM_FACTOR_PHONE) {
return false;
}
return base::FeatureList::IsEnabled(kBottomOmniboxSteadyState);
}
BASE_FEATURE(kOnlyAccessClipboardAsync,
"OnlyAccessClipboardAsync",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kDefaultBrowserVideoInSettings,
"DefaultBrowserVideoInSettings",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kDefaultBrowserTriggerCriteriaExperiment,
"DefaultBrowserTriggerCriteriaExperiment",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFullScreenPromoOnOmniboxCopyPaste,
"FullScreenPromoOnOmniboxCopyPaste",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kThemeColorInTopToolbar,
"ThemeColorInTopToolbar",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTabGridRefactoring,
"TabGridRefactoring",
base::FEATURE_DISABLED_BY_DEFAULT);
bool IsSafetyCheckMagicStackEnabled() {
return base::FeatureList::IsEnabled(kSafetyCheckMagicStack);
}
BASE_FEATURE(kBlockSimultaneousCellSelectionKillSwitch,
"BlockSimultaneousCellSelectionKillSwitch",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kIOSSaveToPhotos,
"IOSSaveToPhotos",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSettingsWillBeDismissedBugFixKillSwitch,
"SettingsWillBeDismissedBugFixKillSwitch",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableUIEditMenuInteraction,
"EnableUIEditMenuInteraction",
base::FEATURE_DISABLED_BY_DEFAULT);