// on NTP Customize Chrome background change.
BASE_FEATURE(kCustomizeChromeColorExtraction,
"CustomizeChromeColorExtraction",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+// If enabled, shows an extension card within the Customize Chrome Side
+// Panel for access to the Chrome Web Store extensions.
+BASE_FEATURE(kCustomizeChromeSidePanelExtensionsCard,
+ "CustomizeChromeSidePanelExtensionsCard",
base::FEATURE_DISABLED_BY_DEFAULT);
-// If enabled, Customize Chrome will be an option in the Unified Side Panel
-// when on the New Tab Page.
-BASE_FEATURE(kCustomizeChromeSidePanel,
- "CustomizeChromeSidePanel",
+// If enabled, shows wallpaper search within the Cusotmize Chrome Side Panel.
+BASE_FEATURE(kCustomizeChromeWallpaperSearch,
+ "CustomizeChromeWallpaperSearch",
base::FEATURE_DISABLED_BY_DEFAULT);
-// Enables the removal of the NTP background scrim and forced dark foreground
-// colors for a specific subset of Chrome Web Store themes (see
-// crbug.com/1329552). This is enabled by default to allow finch to disable this
-// NTP treatment in the case of unexpected regressions.
-BASE_FEATURE(kCwsScrimRemoval,
- "CwsScrimRemoval",
- base::FEATURE_ENABLED_BY_DEFAULT);
+// Forces a dark Google logo for a specific subset of Chrome Web Store themes
+// (see crbug.com/1329552). This is enabled by default to allow finch to disable
+// this NTP treatment in the case of unexpected regressions.
+BASE_FEATURE(kCwsDarkLogo, "CwsDarkLogo", base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, "middle slot" promos on the bottom of the NTP will show a dismiss
// UI that allows users to close them and not see them again.
"DismissNtpPromos",
base::FEATURE_DISABLED_BY_DEFAULT);
+// If enabled, all NTP "realbox" Chrome Refresh features will be enabled
+BASE_FEATURE(kRealboxCr23All,
+ "NtpRealboxCr23All",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
// If enabled, the NTP "realbox" will have same border/drop shadow in hover
// state as searchbox.
BASE_FEATURE(kRealboxMatchSearchboxTheme,
"NtpRealboxMatchSearchboxTheme",
base::FEATURE_DISABLED_BY_DEFAULT);
-// If enabled, the NTP "realbox" will have the same rounded corners as
-// searchbox.
-BASE_FEATURE(kRealboxRoundedCorners,
- "NtpRealboxRoundedCorners",
+// Determines the behavior of the width of the realbox in relation to the width
+// for secondary column.
+BASE_FEATURE(kRealboxWidthBehavior,
+ "NtpRealboxWidthBehavior",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If enabled, the realbox will be taller.
+BASE_FEATURE(kRealboxIsTall,
+ "NtpRealboxIsTall",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, the real search box ("realbox") on the New Tab page will show a
"NtpAlphaBackgroundCollections",
base::FEATURE_DISABLED_BY_DEFAULT);
+// If enabled, NTP background image links will be checked for HTTP status
+// errors."
+BASE_FEATURE(kNtpBackgroundImageErrorDetection,
+ "NtpBackgroundImageErrorDetection",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
// If enabled, chrome cart module will be shown.
BASE_FEATURE(kNtpChromeCartModule,
"NtpChromeCartModule",
base::FEATURE_ENABLED_BY_DEFAULT);
-// If enabled, Comprehensive Theming color changes will be applied to elements
-// on the New Tab Page, excluding the Realbox.
-BASE_FEATURE(kNtpComprehensiveTheming,
- "NtpComprehensiveTheming",
- base::FEATURE_ENABLED_BY_DEFAULT);
-
// If enabled, Comprehensive Theming color changes will be applied to the
// Realbox on the New Tab Page.
BASE_FEATURE(kNtpComprehensiveThemeRealbox,
"NtpDriveModule",
base::FEATURE_ENABLED_BY_DEFAULT);
+// If enabled, segmentation data will be collected to decide whether or not to
+// show the Drive module.
+BASE_FEATURE(kNtpDriveModuleSegmentation,
+ "NtpDriveModuleSegmentation",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If enabled, six files show in the NTP Drive module, instead of three.
+BASE_FEATURE(kNtpDriveModuleShowSixFiles,
+ "NtpDriveModuleShowSixFiles",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
// If enabled, handles navigations from the Most Visited tiles explicitly and
// overrides the navigation's transition type to bookmark navigation before the
// navigation is issued.
// If enabled, logo will fill up less vertical space.
BASE_FEATURE(kNtpReducedLogoSpace,
"NtpReducedLogoSpace",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, middle slot promo will be shown.
BASE_FEATURE(kNtpMiddleSlotPromo,
// If true, extends width of modules if space allows.
BASE_FEATURE(kNtpWideModules,
"NtpWideModules",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// Dummy feature to set param "NtpModulesOrderParam".
BASE_FEATURE(kNtpModulesOrder,
"NtpModulesOrder",
base::FEATURE_DISABLED_BY_DEFAULT);
+// Dummy feature to set param "NtpModulesMaxColumnCountParam".
+BASE_FEATURE(kNtpModulesMaxColumnCount,
+ "NtpModulesMaxColumnCount",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+// Dummy feature to set param "NtpModulesLoadedWithOtherModulesMaxInstanceCount"
+BASE_FEATURE(kNtpModulesLoadedWithOtherModulesMaxInstanceCount,
+ "NtpModulesLoadedWithOtherModulesMaxInstanceCount",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If true, displays a horizontal scrollbar on overflowing modules.
+BASE_FEATURE(kNtpModulesOverflowScrollbar,
+ "NtpModulesOverflowScrollbar",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// If enabled, modules will be able to be reordered via dragging and dropping
BASE_FEATURE(kNtpModulesDragAndDrop,
"NtpModulesDragAndDrop",
// If enabled, the first run experience for Modular NTP Desktop v1 will show.
BASE_FEATURE(kNtpModulesFirstRunExperience,
"NtpModulesFirstRunExperience",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, modules will be loaded but not shown. This is useful to determine
// if a user would have seen modules in order to counterfactually log or
"NtpModulesRedesigned",
base::FEATURE_DISABLED_BY_DEFAULT);
-// If enabled, a different module layout where modules are organized in rows and
-// columns will be shown.
-BASE_FEATURE(kNtpModulesRedesignedLayout,
- "NtpModulesRedesignedLayout",
- base::FEATURE_DISABLED_BY_DEFAULT);
+// If enabled, MostVisited tiles will reflow when overflowing.
+BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
+ "NtpMostVisitedReflowOnOverflow",
+ base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, OneGoogleBar will be shown.
BASE_FEATURE(kNtpOneGoogleBar,
// If enabled, Google Lens image search will be shown in the NTP Realbox.
BASE_FEATURE(kNtpRealboxLensSearch,
"NtpRealboxLensSearch",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+// If enabled, Google Lens image search will call Lens v3 direct upload
+// endpoint instead of uploading to Scotty.
+BASE_FEATURE(kNtpLensDirectUpload,
+ "NtpLensDirectUpload",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, recipe tasks module will be shown.
BASE_FEATURE(kNtpRecipeTasksModule,
"NtpRecipeTasksModule",
- base::FEATURE_ENABLED_BY_DEFAULT);
-
-// Controls whether the scrim is removed.
-BASE_FEATURE(kNtpRemoveScrim,
- "NtpRemoveScrim",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, SafeBrowsing module will be shown to a target user.
// If enabled, shortcuts will be shown in a wide single row.
BASE_FEATURE(kNtpSingleRowShortcuts,
"NtpSingleRowShortcuts",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, the History clusters module will be shown.
BASE_FEATURE(kNtpHistoryClustersModule,
"NtpHistoryClustersModule",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// Dummy feature to set kNtpHistoryClustersModuleBeginTimeDurationHoursParam.
BASE_FEATURE(kNtpHistoryClustersModuleBeginTimeDuration,
// If enabled, module headers will display an associated icon.
BASE_FEATURE(kNtpModulesHeaderIcon,
"NtpModulesHeaderIcon",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+// If enabled a suggestion chip will show in the header for Quests V2.
+BASE_FEATURE(kNtpHistoryClustersModuleSuggestionChipHeader,
+ "NtpHistoryClustersModuleSuggestionChipHeader",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+// If enabled, Discounts badge will show on the visit tile in the History
+// clusters module when available.
+BASE_FEATURE(kNtpHistoryClustersModuleDiscounts,
+ "NtpHistoryClustersModuleDiscounts",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, ChromeCart tile will show in the History clusters module when
// available.
BASE_FEATURE(kNtpChromeCartInHistoryClusterModule,
"NtpChromeCartInHistoryClusterModule",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kNtpHistoryClustersModuleUseModelRanking,
"NtpHistoryClustersModuleUseModelRanking",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+BASE_FEATURE(kNtpHistoryClustersModuleTextOnly,
+ "NtpHistoryClustersModuleTextOnly",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, ChromeCart module will show together with ChromeCart+History
"NtpChromeCartHistoryClusterCoexist",
base::FEATURE_DISABLED_BY_DEFAULT);
-const base::FeatureParam<double>
- kNtpElementLuminosityChangeForLightBackgroundParam{
- &kNtpComprehensiveTheming,
- "NtpElementLuminosityChangeForLightBackgroundParam", 0.1};
+// If enabled, the History Clusters module will attempt to fetch clusters until
+// it has enough clusters for the module or the History Clusters service says
+// that all visits have been exhausted.
+BASE_FEATURE(kNtpHistoryClustersModuleFetchClustersUntilExhausted,
+ "NtpHistoryClustersModuleFetchClustersUntilExhausted",
+ base::FEATURE_ENABLED_BY_DEFAULT);
-const base::FeatureParam<double>
- kNtpElementLuminosityChangeForDarkBackgroundParam{
- &kNtpComprehensiveTheming,
- "NtpElementLuminosityChangeForDarkBackgroundParam", 0.2};
+// If enabled, the History clusters module will contain visits from other
+// devices.
+BASE_FEATURE(kNtpHistoryClustersModuleIncludeSyncedVisits,
+ "NtpHistoryClustersModuleIncludeSyncedVisits",
+ base::FEATURE_DISABLED_BY_DEFAULT);
-const base::FeatureParam<std::string> kNtpOgbButtonSelectorParam{
- &kNtpRemoveScrim, "NtpOgbButtonSelectorParam", ".gb_A"};
+// If enabled, the History clsuters module will enable content clustering for
+// the displayed clusters.
+BASE_FEATURE(kNtpHistoryClustersModuleEnableContentClustering,
+ "HistoryClustersModuleEnableContentClustering",
+ base::FEATURE_DISABLED_BY_DEFAULT);
-const base::FeatureParam<std::string> kNtpOgbUnprotectedTextSelectorParam{
- &kNtpRemoveScrim, "NtpOgbUnprotectedTextSelectorParam", ".gb_d"};
+BASE_FEATURE(kNtpTabResumptionModule,
+ "NtpTabResumptionModule",
+ base::FEATURE_DISABLED_BY_DEFAULT);
const char kNtpModulesEligibleForHappinessTrackingSurveyParam[] =
"NtpModulesEligibleForHappinessTrackingSurveyParam";
const char kNtpModulesLoadTimeoutMillisecondsParam[] =
"NtpModulesLoadTimeoutMillisecondsParam";
+const char kNtpModulesLoadedWithOtherModulesMaxInstanceCountParam[] =
+ "NtpModulesLoadedWithOtherModulesMaxInstanceCountParam";
+const char kNtpModulesMaxColumnCountParam[] = "NtpModulesMaxColumnCountParam";
const char kNtpModulesOrderParam[] = "NtpModulesOrderParam";
const char kNtpChromeCartModuleDataParam[] = "NtpChromeCartModuleDataParam";
const char kNtpChromeCartModuleAbandonedCartDiscountParam[] =
"NtpHistoryClustersModuleCategoriesBoostlistParam";
const char kNtpHistoryClustersModuleMaxClustersParam[] =
"NtpHistoryClustersModuleMaxClustersParam";
+const char kNtpRealboxWidthBehaviorParam[] = "NtpRealboxWidthBehaviorParam";
base::TimeDelta GetModulesLoadTimeout() {
std::string param_value = base::GetFieldTrialParamValueByFeature(
return base::Milliseconds(param_value_as_int);
}
+int GetModulesMaxColumnCount() {
+ return base::GetFieldTrialParamByFeatureAsInt(
+ kNtpModulesMaxColumnCount, kNtpModulesMaxColumnCountParam, 3);
+}
+
+int GetMultipleLoadedModulesMaxModuleInstanceCount() {
+ return base::GetFieldTrialParamByFeatureAsInt(
+ kNtpModulesLoadedWithOtherModulesMaxInstanceCount,
+ kNtpModulesLoadedWithOtherModulesMaxInstanceCountParam, 2);
+}
+
std::vector<std::string> GetModulesOrder() {
return base::SplitString(base::GetFieldTrialParamValueByFeature(
kNtpModulesOrder, kNtpModulesOrderParam),