blob: d87a652fd83284e6ba97e856515c6494fd40298d [file] [log] [blame]
Avi Drissmanea1be232022-09-14 23:29:061// Copyright 2012 The Chromium Authors
sdefresne14900ee2015-11-27 14:43:212// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Implementation of about_flags for iOS that sets flags based on experimental
6// settings.
7
Gauthier Ambard999088c2022-09-13 08:36:578#import "ios/chrome/browser/flags/about_flags.h"
sdefresne14900ee2015-11-27 14:43:219
Nazerke9c259052019-06-26 15:30:1010#import <UIKit/UIKit.h>
Gauthier Ambard999088c2022-09-13 08:36:5711#import <stddef.h>
12#import <stdint.h>
sdefresne14900ee2015-11-27 14:43:2113
Avi Drissmaneac566b02023-08-18 02:56:2114#import "base/apple/foundation_util.h"
Gauthier Ambard999088c2022-09-13 08:36:5715#import "base/base_switches.h"
Gauthier Ambard999088c2022-09-13 08:36:5716#import "base/check_op.h"
Peter Boström3f798572022-07-26 23:44:3617#import "base/debug/debugging_buildflags.h"
Avi Drissmancac43f22023-01-12 00:58:4118#import "base/functional/bind.h"
19#import "base/functional/callback_helpers.h"
Gauthier Ambard999088c2022-09-13 08:36:5720#import "base/no_destructor.h"
21#import "base/strings/stringprintf.h"
22#import "base/strings/sys_string_conversions.h"
23#import "base/system/sys_info.h"
24#import "components/autofill/core/common/autofill_features.h"
25#import "components/autofill/core/common/autofill_payments_features.h"
26#import "components/autofill/core/common/autofill_switches.h"
Vidhan Jain1199e202024-03-15 14:42:5927#import "components/autofill/ios/common/features.h"
Menghan YANGf3fe2de52023-02-27 16:38:5028#import "components/bookmarks/common/bookmark_features.h"
Marc Treib1f6c5db992024-01-04 20:25:1429#import "components/browser_sync/browser_sync_switches.h"
Tommy Nyquiste1447512024-12-17 17:46:2430#import "components/collaboration/public/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5731#import "components/commerce/core/commerce_feature_list.h"
32#import "components/commerce/core/flag_descriptions.h"
33#import "components/content_settings/core/common/features.h"
Asami Doi93db79e2024-09-06 18:16:5534#import "components/data_sharing/public/features.h"
Gauthier Ambard5b124d302025-03-12 13:38:4035#import "components/data_sharing/public/switches.h"
Gauthier Ambard999088c2022-09-13 08:36:5736#import "components/dom_distiller/core/dom_distiller_switches.h"
Raj Tb95d813542022-11-16 21:27:5237#import "components/download/public/background_service/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5738#import "components/enterprise/browser/enterprise_switches.h"
Xu Lica2b56e2025-04-07 20:57:3139#import "components/enterprise/connectors/core/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5740#import "components/feature_engagement/public/feature_constants.h"
41#import "components/feature_engagement/public/feature_list.h"
42#import "components/feed/feed_feature_list.h"
Ron Saileraaf7d87d2025-06-30 15:09:5543#import "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
Benjamin Williams11f39912023-04-13 19:00:2544#import "components/history/core/browser/features.h"
Benjamin Williamsaa8da8142022-11-14 19:51:0345#import "components/ntp_tiles/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5746#import "components/ntp_tiles/switches.h"
47#import "components/omnibox/browser/omnibox_field_trial.h"
Fabio Tirelo7d1f1ba2024-12-18 23:01:1248#import "components/omnibox/common/omnibox_feature_configs.h"
Gauthier Ambard999088c2022-09-13 08:36:5749#import "components/omnibox/common/omnibox_features.h"
50#import "components/optimization_guide/core/optimization_guide_features.h"
Raj Ta921ffc2022-08-25 19:00:2051#import "components/optimization_guide/core/optimization_guide_switches.h"
Raj Tc66dd122024-04-01 18:48:3952#import "components/page_content_annotations/core/page_content_annotations_features.h"
Olivier ROBINcb76f4fe2024-06-05 16:11:4253#import "components/page_image_service/features.h"
Vasilii Sukhanov32b14452023-10-12 17:31:2754#import "components/password_manager/core/browser/features/password_features.h"
Gauthier Ambard999088c2022-09-13 08:36:5755#import "components/password_manager/core/common/password_manager_features.h"
56#import "components/payments/core/features.h"
Guillaume Jenkinseeb7007c2020-06-25 22:55:4057#import "components/policy/core/common/policy_loader_ios_constants.h"
Gauthier Ambard999088c2022-09-13 08:36:5758#import "components/policy/policy_constants.h"
Jérôme Lebelc6f88d62025-06-26 13:56:3559#import "components/regional_capabilities/regional_capabilities_switches.h"
Gauthier Ambard999088c2022-09-13 08:36:5760#import "components/safe_browsing/core/common/features.h"
Daniel White89d57342025-04-01 14:16:1861#import "components/safe_browsing/ios/browser/web_ui/features.h"
Cheick Cisse2aa08b92025-04-30 23:33:3762#import "components/search/ntp_features.cc"
Jérôme Lebele5718112025-03-28 14:51:0063#import "components/search_engines/search_engines_switches.h"
Benjamin Williamsbd411e892024-10-25 15:59:3164#import "components/segmentation_platform/embedder/home_modules/constants.h"
Chris Lu6fd4eaf2023-08-08 18:29:3065#import "components/segmentation_platform/public/constants.h"
Chris Lub0bad572023-08-07 18:13:2966#import "components/segmentation_platform/public/features.h"
Victor Hugo Vianna Silva0399402f2021-09-07 21:41:2567#import "components/send_tab_to_self/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5768#import "components/shared_highlighting/core/common/shared_highlighting_features.h"
69#import "components/signin/core/browser/account_reconcilor.h"
70#import "components/signin/ios/browser/features.h"
71#import "components/signin/public/base/signin_switches.h"
72#import "components/strings/grit/components_strings.h"
Nohemi Fernandez64acf982023-08-04 09:27:1573#import "components/supervised_user/core/common/features.h"
Gauthier Ambard999088c2022-09-13 08:36:5774#import "components/sync/base/command_line_switches.h"
75#import "components/sync/base/features.h"
76#import "components/sync/base/pref_names.h"
77#import "components/translate/core/browser/translate_prefs.h"
78#import "components/translate/core/common/translate_util.h"
Sven Zheng0631fc82025-03-28 01:22:5579#import "components/variations/net/variations_command_line.h"
rbpotter422d5eb2025-02-05 16:42:4880#import "components/webui/flags/feature_entry.h"
81#import "components/webui/flags/feature_entry_macros.h"
82#import "components/webui/flags/flags_storage.h"
83#import "components/webui/flags/flags_ui_switches.h"
Ed Chin91e44992022-07-27 13:42:3484#import "ios/chrome/app/background_mode_buildflags.h"
Gauthier Ambard5b7f3c22023-09-13 12:03:3085#import "ios/chrome/browser/browsing_data/model/browsing_data_features.h"
Aman Vermab6f55572023-09-28 11:40:5386#import "ios/chrome/browser/crash_report/model/features.h"
Sebsgfcd5b0b2024-04-09 08:18:3287#import "ios/chrome/browser/credential_provider/model/features.h"
Aman Vermaf8a157f62023-10-03 15:32:1188#import "ios/chrome/browser/default_browser/model/utils.h"
Daniel White37c85a22025-03-03 16:37:3689#import "ios/chrome/browser/download/ui/features.h"
Ernesto Izquierdo Clua4ff435d2025-04-11 15:46:0490#import "ios/chrome/browser/enterprise/connectors/features.h"
mmrashadbc0ca942023-10-06 13:12:1491#import "ios/chrome/browser/find_in_page/model/util.h"
Hira Mahmoodf6906a82025-01-02 17:55:0992#import "ios/chrome/browser/first_run/ui_bundled/features.h"
Gauthier Ambard92605132022-08-26 13:25:1793#import "ios/chrome/browser/flags/chrome_switches.h"
Gauthier Ambard999088c2022-09-13 08:36:5794#import "ios/chrome/browser/flags/ios_chrome_flag_descriptions.h"
Rubin Deliallisib66a77a2024-10-02 18:09:4895#import "ios/chrome/browser/incognito_reauth/ui_bundled/features.h"
Nicolas MacBeth12449f72025-03-11 21:19:4896#import "ios/chrome/browser/intelligence/features/features.h"
Christian Xuff884802024-11-25 23:36:1897#import "ios/chrome/browser/lens/ui_bundled/features.h"
Hira Mahmood664449872024-11-18 23:55:2298#import "ios/chrome/browser/ntp/model/features.h"
Chris Lu09019af2024-08-28 08:38:4499#import "ios/chrome/browser/ntp/ui_bundled/new_tab_page_feature.h"
Christian Xua224fbd2025-01-30 14:55:27100#import "ios/chrome/browser/omnibox/public/omnibox_ui_features.h"
Stepan Khapugin34e459742024-12-06 09:39:59101#import "ios/chrome/browser/page_info/ui_bundled/features.h"
Sourav5b33e412025-04-28 13:55:55102#import "ios/chrome/browser/passwords/model/features.h"
mmrashadd0c7f952023-12-14 13:36:38103#import "ios/chrome/browser/policy/model/policy_util.h"
Ameur Hosni51b5aaf2025-03-25 16:33:26104#import "ios/chrome/browser/popup_menu/ui_bundled/overflow_menu/feature_flags.h"
Cheick Cisse85457f22024-05-23 22:37:59105#import "ios/chrome/browser/price_insights/model/price_insights_feature.h"
Stepan Khapugin5694d702024-01-31 13:23:08106#import "ios/chrome/browser/promos_manager/model/features.h"
Nohemi Fernandez11751ec2025-03-26 18:24:37107#import "ios/chrome/browser/reader_mode/model/features.h"
mmrashadf158cad942023-10-03 09:15:48108#import "ios/chrome/browser/screen_time/model/screen_time_buildflags.h"
Christian Xu51be15a2024-11-26 17:42:19109#import "ios/chrome/browser/settings/ui_bundled/clear_browsing_data/features.h"
Christian Xub0c68ff2024-11-28 11:50:47110#import "ios/chrome/browser/settings/ui_bundled/google_services/features.h"
Xu Li9854c992024-12-19 20:53:08111#import "ios/chrome/browser/settings/ui_bundled/password/password_manager_ui_features.h"
Christian Xu585a04512024-11-27 16:29:49112#import "ios/chrome/browser/settings/ui_bundled/privacy/privacy_guide/features.h"
Gauthier Ambard7aa0fb922023-03-09 15:10:46113#import "ios/chrome/browser/shared/public/features/features.h"
Gauthier Ambard818938c2023-06-16 14:48:35114#import "ios/chrome/browser/shared/public/features/system_flags.h"
Tina Wang75f21e872024-07-01 18:00:35115#import "ios/chrome/browser/start_surface/ui_bundled/start_surface_features.h"
Ewann Pelled2eaeba2023-09-19 09:15:28116#import "ios/chrome/browser/text_selection/model/text_selection_util.h"
Ewann Pelle1f48f922025-01-13 11:43:34117#import "ios/chrome/browser/toolbar/ui_bundled/tab_groups/tab_group_indicator_features_utils.h"
Weizhong Xia8b908bda2023-12-05 16:00:22118#import "ios/chrome/browser/web/model/features.h"
Gauthier Ambard8c115362025-03-19 13:45:24119#import "ios/chrome/browser/whats_new/coordinator/whats_new_util.h"
Gauthier Ambard999088c2022-09-13 08:36:57120#import "ios/chrome/grit/ios_strings.h"
121#import "ios/components/security_interstitials/https_only_mode/feature.h"
122#import "ios/public/provider/chrome/browser/app_utils/app_utils_api.h"
123#import "ios/web/common/features.h"
124#import "ios/web/common/user_agent.h"
125#import "ios/web/common/web_view_creation_util.h"
sdefresne14900ee2015-11-27 14:43:21126
Sylvain Defresne9c107082020-10-27 16:39:13127#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED)
mmrashadf158cad942023-10-03 09:15:48128#import "ios/chrome/browser/screen_time/model/features.h"
Sylvain Defresne9c107082020-10-27 16:39:13129#endif
130
sdefresne14900ee2015-11-27 14:43:21131#if !defined(OFFICIAL_BUILD)
Gauthier Ambard999088c2022-09-13 08:36:57132#import "components/variations/variations_switches.h"
vitaliii489217aa2017-01-30 14:50:22133#endif
stkhapuginc1be1792016-12-13 14:30:53134
elawrence816f6790e2017-06-16 18:19:28135using flags_ui::FeatureEntry;
136
sdefresne14900ee2015-11-27 14:43:21137namespace {
Emily Starkbafa9062017-12-27 15:22:46138
Nohemi Fernandezc00842a2021-07-26 11:47:34139const FeatureEntry::Choice
140 kWaitThresholdMillisecondsForCapabilitiesApiChoices[] = {
141 {flags_ui::kGenericExperimentChoiceDefault, "", ""},
142 {"200", signin::kWaitThresholdMillisecondsForCapabilitiesApi, "200"},
143 {"500", signin::kWaitThresholdMillisecondsForCapabilitiesApi, "500"},
144 {"5000", signin::kWaitThresholdMillisecondsForCapabilitiesApi, "5000"},
145};
146
Radu Nitescu4c324072025-06-16 15:00:10147const FeatureEntry::FeatureParam
148 kNTPMIAEntrypointOmniboxContainedSingleButton[] = {
149 {kNTPMIAEntrypointParam,
150 kNTPMIAEntrypointParamOmniboxContainedSingleButton}};
151const FeatureEntry::FeatureParam kNTPMIAEntrypointOmniboxContainedInline[] = {
152 {kNTPMIAEntrypointParam, kNTPMIAEntrypointParamOmniboxContainedInline}};
153const FeatureEntry::FeatureParam
154 kNTPMIAEntrypointOmniboxContainedEnlargedFakebox[] = {
155 {kNTPMIAEntrypointParam,
156 kNTPMIAEntrypointParamOmniboxContainedEnlargedFakebox}};
Radu Nitescubd982832025-06-24 14:06:03157const FeatureEntry::FeatureParam kNTPMIAEntrypointEnlargedFakeboxNoIncognito[] =
158 {{kNTPMIAEntrypointParam,
159 kNTPMIAEntrypointParamEnlargedFakeboxNoIncognito}};
Radu Nitescu4c324072025-06-16 15:00:10160
161const FeatureEntry::FeatureVariation kNTPMIAEntrypointVariations[] = {
162 {"A: Contained in Omnibox, single button",
163 kNTPMIAEntrypointOmniboxContainedSingleButton,
164 std::size(kNTPMIAEntrypointOmniboxContainedSingleButton), nullptr},
165 {"B: Contained in Omnibox, inline with Voice and Lens",
166 kNTPMIAEntrypointOmniboxContainedInline,
167 std::size(kNTPMIAEntrypointOmniboxContainedInline), nullptr},
168 {"C: Contained in Omnibox, enlarged fakebox",
169 kNTPMIAEntrypointOmniboxContainedEnlargedFakebox,
170 std::size(kNTPMIAEntrypointOmniboxContainedEnlargedFakebox), nullptr},
Radu Nitescubd982832025-06-24 14:06:03171 {"D: Contained in enlarged fakebox, without incognito shortcut",
172 kNTPMIAEntrypointEnlargedFakeboxNoIncognito,
173 std::size(kNTPMIAEntrypointEnlargedFakeboxNoIncognito), nullptr},
Radu Nitescu4c324072025-06-16 15:00:10174};
175
Stepan Khapugincc4e9842019-01-23 13:38:13176const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches3[] = {
177 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "3"}};
178const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches4[] = {
179 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "4"}};
180const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches5[] = {
181 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "5"}};
182const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches6[] = {
183 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "6"}};
184const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches8[] = {
185 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "8"}};
186const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches10[] = {
187 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "10"}};
188const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches12[] = {
189 {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "12"}};
190
191const FeatureEntry::FeatureVariation
192 kOmniboxUIMaxAutocompleteMatchesVariations[] = {
193 {"3 matches", kOmniboxUIMaxAutocompleteMatches3,
Daniel Cheng1f047a82022-02-26 10:04:53194 std::size(kOmniboxUIMaxAutocompleteMatches3), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13195 {"4 matches", kOmniboxUIMaxAutocompleteMatches4,
Daniel Cheng1f047a82022-02-26 10:04:53196 std::size(kOmniboxUIMaxAutocompleteMatches4), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13197 {"5 matches", kOmniboxUIMaxAutocompleteMatches5,
Daniel Cheng1f047a82022-02-26 10:04:53198 std::size(kOmniboxUIMaxAutocompleteMatches5), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13199 {"6 matches", kOmniboxUIMaxAutocompleteMatches6,
Daniel Cheng1f047a82022-02-26 10:04:53200 std::size(kOmniboxUIMaxAutocompleteMatches6), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13201 {"8 matches", kOmniboxUIMaxAutocompleteMatches8,
Daniel Cheng1f047a82022-02-26 10:04:53202 std::size(kOmniboxUIMaxAutocompleteMatches8), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13203 {"10 matches", kOmniboxUIMaxAutocompleteMatches10,
Daniel Cheng1f047a82022-02-26 10:04:53204 std::size(kOmniboxUIMaxAutocompleteMatches10), nullptr},
Stepan Khapugincc4e9842019-01-23 13:38:13205 {"12 matches", kOmniboxUIMaxAutocompleteMatches12,
Daniel Cheng1f047a82022-02-26 10:04:53206 std::size(kOmniboxUIMaxAutocompleteMatches12), nullptr}};
Stepan Khapugincc4e9842019-01-23 13:38:13207
Stepan Khapuginbac467e2022-05-06 21:11:54208const FeatureEntry::FeatureParam kOmniboxMaxZPSMatches6[] = {
209 {OmniboxFieldTrial::kMaxZeroSuggestMatchesParam, "6"}};
210const FeatureEntry::FeatureParam kOmniboxMaxZPSMatches15[] = {
211 {OmniboxFieldTrial::kMaxZeroSuggestMatchesParam, "15"}};
212const FeatureEntry::FeatureParam kOmniboxMaxZPSMatches20[] = {
213 {OmniboxFieldTrial::kMaxZeroSuggestMatchesParam, "20"}};
214
215const FeatureEntry::FeatureVariation kOmniboxMaxZPSMatchesVariations[] = {
216 {"6 matches", kOmniboxMaxZPSMatches6, std::size(kOmniboxMaxZPSMatches6),
217 nullptr},
218 {"15 matches", kOmniboxMaxZPSMatches15, std::size(kOmniboxMaxZPSMatches15),
219 nullptr},
220 {"20 matches", kOmniboxMaxZPSMatches20, std::size(kOmniboxMaxZPSMatches20),
221 nullptr},
222};
223
Christian Xucf26d562022-07-06 09:28:36224const FeatureEntry::FeatureParam kOmniboxMaxURLMatches5[] = {
225 {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "5"}};
226const FeatureEntry::FeatureParam kOmniboxMaxURLMatches6[] = {
227 {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "6"}};
228const FeatureEntry::FeatureParam kOmniboxMaxURLMatches7[] = {
229 {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "7"}};
230
231const FeatureEntry::FeatureVariation kOmniboxMaxURLMatchesVariations[] = {
232 {"5 matches", kOmniboxMaxURLMatches5, std::size(kOmniboxMaxURLMatches5),
233 nullptr},
234 {"6 matches", kOmniboxMaxURLMatches6, std::size(kOmniboxMaxURLMatches6),
235 nullptr},
236 {"7 matches", kOmniboxMaxURLMatches7, std::size(kOmniboxMaxURLMatches7),
237 nullptr},
238};
239
Guillem Perez40086ef2023-11-20 20:03:52240const FeatureEntry::FeatureParam kContentPushNotificationsEnabledPromo[] = {
241 {kContentPushNotificationsExperimentType, "1"}};
242const FeatureEntry::FeatureParam kContentPushNotificationsEnabledSetupLists[] =
243 {{kContentPushNotificationsExperimentType, "2"}};
Guillem Perez222b5b22024-01-20 02:16:27244const FeatureEntry::FeatureParam kContentPushNotificationsEnabledProvisional[] =
245 {{kContentPushNotificationsExperimentType, "3"}};
Tina Wangb7f5b3f2024-05-07 06:24:26246const FeatureEntry::FeatureParam
247 kContentPushNotificationsPromoRegistrationOnly[] = {
248 {kContentPushNotificationsExperimentType, "5"}};
249const FeatureEntry::FeatureParam
250 kContentPushNotificationsProvisionalRegistrationOnly[] = {
251 {kContentPushNotificationsExperimentType, "6"}};
252const FeatureEntry::FeatureParam
253 kContentPushNotificationsSetUpListRegistrationOnly[] = {
254 {kContentPushNotificationsExperimentType, "7"}};
Guillem Perez40086ef2023-11-20 20:03:52255
256const FeatureEntry::FeatureVariation kContentPushNotificationsVariations[] = {
257 {"Promo", kContentPushNotificationsEnabledPromo,
258 std::size(kContentPushNotificationsEnabledPromo), nullptr},
259 {"Set up list", kContentPushNotificationsEnabledSetupLists,
Guillem Perez222b5b22024-01-20 02:16:27260 std::size(kContentPushNotificationsEnabledSetupLists), nullptr},
261 {"Provisional Notification", kContentPushNotificationsEnabledProvisional,
Guillem Perez749b3fc2024-02-13 19:29:49262 std::size(kContentPushNotificationsEnabledProvisional), nullptr},
Tina Wangb7f5b3f2024-05-07 06:24:26263 {"Promo Registeration Only", kContentPushNotificationsPromoRegistrationOnly,
264 std::size(kContentPushNotificationsPromoRegistrationOnly), nullptr},
265 {"Provisional Notification Registeration Only",
266 kContentPushNotificationsProvisionalRegistrationOnly,
267 std::size(kContentPushNotificationsProvisionalRegistrationOnly), nullptr},
268 {"Set up list Registeration Only",
269 kContentPushNotificationsSetUpListRegistrationOnly,
270 std::size(kContentPushNotificationsSetUpListRegistrationOnly), nullptr}};
Guillem Perez40086ef2023-11-20 20:03:52271
Chris Ludca9ce32023-09-20 16:53:50272const FeatureEntry::FeatureParam kStartSurfaceTenSeconds[] = {
gogerald53c6e7a2021-04-15 22:07:35273 {kReturnToStartSurfaceInactiveDurationInSeconds, "10"}};
Chris Ludca9ce32023-09-20 16:53:50274const FeatureEntry::FeatureParam kStartSurfaceOneHour[] = {
gogerald53c6e7a2021-04-15 22:07:35275 {kReturnToStartSurfaceInactiveDurationInSeconds, "3600"}};
Chris Lu5470417c2021-03-03 18:43:08276
gogerald0e39e3aa2021-02-10 18:41:23277const FeatureEntry::FeatureVariation kStartSurfaceVariations[] = {
Chris Ludca9ce32023-09-20 16:53:50278 {"10s:Show Home Surface", kStartSurfaceTenSeconds,
279 std::size(kStartSurfaceTenSeconds), nullptr},
280 {"1h:Show Home Surface", kStartSurfaceOneHour,
281 std::size(kStartSurfaceOneHour), nullptr},
Chris Lu5470417c2021-03-03 18:43:08282};
gogerald0e39e3aa2021-02-10 18:41:23283
Chris Lu6fd4eaf2023-08-08 18:29:30284const FeatureEntry::FeatureParam kEnableDefaultModel[] = {
285 {segmentation_platform::kDefaultModelEnabledParam, "true"}};
286
287const FeatureEntry::FeatureVariation
288 kSegmentationPlatformIosModuleRankerVariations[]{
289 {"Enabled With Default Model Parameter (Must Set this!)",
290 kEnableDefaultModel, std::size(kEnableDefaultModel), nullptr},
291 };
292
Scott Yoderef1a0542024-11-04 17:23:07293const FeatureEntry::FeatureParam
294 kIOSReactivationNotifications10SecondTrigger[] = {
295 {kIOSReactivationNotificationsTriggerTimeParam, "10s"},
296};
297const FeatureEntry::FeatureParam
298 kIOSReactivationNotifications30SecondTrigger[] = {
299 {kIOSReactivationNotificationsTriggerTimeParam, "30s"},
300};
301const FeatureEntry::FeatureVariation kIOSReactivationNotificationsVariations[] =
302 {
303 {"(10s trigger)", kIOSReactivationNotifications10SecondTrigger,
304 std::size(kIOSReactivationNotifications10SecondTrigger), nullptr},
305 {"(30s trigger)", kIOSReactivationNotifications30SecondTrigger,
306 std::size(kIOSReactivationNotifications30SecondTrigger), nullptr},
Scott Yoderaf2bdf32024-01-30 20:26:15307};
308
Ed Chin91e44992022-07-27 13:42:34309#if BUILDFLAG(IOS_BACKGROUND_MODE_ENABLED)
Ed Chin178ec2a2023-02-10 22:21:26310// Feed Background Refresh Feature Params.
Ed Chin321b8fe2022-08-16 07:02:01311const FeatureEntry::FeatureParam kOneHourIntervalOneHourMaxAgeOnce[] = {
Ed Chin59f617b2022-07-19 22:12:04312 {kEnableServerDrivenBackgroundRefreshSchedule, "false"},
313 {kEnableRecurringBackgroundRefreshSchedule, "false"},
Ed Chin321b8fe2022-08-16 07:02:01314 {kMaxCacheAgeInSeconds, /*60*60*/ "3600"},
Ed Chin59f617b2022-07-19 22:12:04315 {kBackgroundRefreshIntervalInSeconds, /* 60*60= */ "3600"}};
Ed Chin321b8fe2022-08-16 07:02:01316const FeatureEntry::FeatureParam kFourHourIntervalSixHourMaxAgeOnce[] = {
Ed Chin59f617b2022-07-19 22:12:04317 {kEnableServerDrivenBackgroundRefreshSchedule, "false"},
318 {kEnableRecurringBackgroundRefreshSchedule, "false"},
Ed Chin321b8fe2022-08-16 07:02:01319 {kMaxCacheAgeInSeconds, /*6*60*60*/ "21600"},
Ed Chin59f617b2022-07-19 22:12:04320 {kBackgroundRefreshIntervalInSeconds, /* 4*60*60= */ "14400"}};
Ed Chin321b8fe2022-08-16 07:02:01321const FeatureEntry::FeatureParam kOneHourIntervalOneHourMaxAgeRecurring[] = {
Ed Chin59f617b2022-07-19 22:12:04322 {kEnableServerDrivenBackgroundRefreshSchedule, "false"},
323 {kEnableRecurringBackgroundRefreshSchedule, "true"},
Ed Chin321b8fe2022-08-16 07:02:01324 {kMaxCacheAgeInSeconds, /*60*60*/ "3600"},
Ed Chin59f617b2022-07-19 22:12:04325 {kBackgroundRefreshIntervalInSeconds, /* 60*60= */ "3600"}};
Ed Chin321b8fe2022-08-16 07:02:01326const FeatureEntry::FeatureParam kFourHourIntervalSixHourMaxAgeRecurring[] = {
Ed Chin59f617b2022-07-19 22:12:04327 {kEnableServerDrivenBackgroundRefreshSchedule, "false"},
328 {kEnableRecurringBackgroundRefreshSchedule, "true"},
Ed Chin321b8fe2022-08-16 07:02:01329 {kMaxCacheAgeInSeconds, /*6*60*60*/ "21600"},
Ed Chin59f617b2022-07-19 22:12:04330 {kBackgroundRefreshIntervalInSeconds, /* 4*60*60= */ "14400"}};
Ed Chin321b8fe2022-08-16 07:02:01331const FeatureEntry::FeatureParam kServerDrivenOneHourMaxAgeOnce[] = {
Ed Chin59f617b2022-07-19 22:12:04332 {kEnableServerDrivenBackgroundRefreshSchedule, "true"},
333 {kEnableRecurringBackgroundRefreshSchedule, "false"},
Ed Chin321b8fe2022-08-16 07:02:01334 {kMaxCacheAgeInSeconds, /*60*60*/ "3600"},
335 {kBackgroundRefreshIntervalInSeconds, "0"}};
336const FeatureEntry::FeatureParam kServerDrivenOneHourMaxAgeRecurring[] = {
Ed Chin59f617b2022-07-19 22:12:04337 {kEnableServerDrivenBackgroundRefreshSchedule, "true"},
338 {kEnableRecurringBackgroundRefreshSchedule, "true"},
Ed Chin321b8fe2022-08-16 07:02:01339 {kMaxCacheAgeInSeconds, /*60*60*/ "3600"},
340 {kBackgroundRefreshIntervalInSeconds, "0"}};
341const FeatureEntry::FeatureParam kServerDrivenSixHourMaxAgeOnce[] = {
342 {kEnableServerDrivenBackgroundRefreshSchedule, "true"},
343 {kEnableRecurringBackgroundRefreshSchedule, "false"},
344 {kMaxCacheAgeInSeconds, /*6*60*60*/ "21600"},
345 {kBackgroundRefreshIntervalInSeconds, "0"}};
346const FeatureEntry::FeatureParam kServerDrivenSixHourMaxAgeRecurring[] = {
347 {kEnableServerDrivenBackgroundRefreshSchedule, "true"},
348 {kEnableRecurringBackgroundRefreshSchedule, "true"},
349 {kMaxCacheAgeInSeconds, /*6*60*60*/ "21600"},
350 {kBackgroundRefreshIntervalInSeconds, "0"}};
Ed Chin59f617b2022-07-19 22:12:04351
Ed Chin178ec2a2023-02-10 22:21:26352// Feed Background Refresh Feature Variations.
Ed Chin59f617b2022-07-19 22:12:04353const FeatureEntry::FeatureVariation kFeedBackgroundRefreshVariations[] = {
Ed Chin321b8fe2022-08-16 07:02:01354 {"1hr Interval 1hr Max Age Once", kOneHourIntervalOneHourMaxAgeOnce,
355 std::size(kOneHourIntervalOneHourMaxAgeOnce), nullptr},
356 {"4hr Interval 6hr Max Age Once", kFourHourIntervalSixHourMaxAgeOnce,
357 std::size(kFourHourIntervalSixHourMaxAgeOnce), nullptr},
358 {"1hr Interval 1hr Max Age Recurring",
359 kOneHourIntervalOneHourMaxAgeRecurring,
360 std::size(kOneHourIntervalOneHourMaxAgeRecurring), nullptr},
361 {"4hr Interval 6hr Max Age Recurring",
362 kFourHourIntervalSixHourMaxAgeRecurring,
363 std::size(kFourHourIntervalSixHourMaxAgeRecurring), nullptr},
364 {"Server Driven 1hr Max Age Once", kServerDrivenOneHourMaxAgeOnce,
365 std::size(kServerDrivenOneHourMaxAgeOnce), nullptr},
366 {"Server Driven 1hr Max Age Recurring", kServerDrivenOneHourMaxAgeRecurring,
367 std::size(kServerDrivenOneHourMaxAgeRecurring), nullptr},
368 {"Server Driven 6hr Max Age Once", kServerDrivenSixHourMaxAgeOnce,
369 std::size(kServerDrivenSixHourMaxAgeOnce), nullptr},
370 {"Server Driven 6hr Max Age Recurring", kServerDrivenSixHourMaxAgeRecurring,
371 std::size(kServerDrivenSixHourMaxAgeRecurring), nullptr},
Ed Chin59f617b2022-07-19 22:12:04372};
Ed Chin91e44992022-07-27 13:42:34373#endif // BUILDFLAG(IOS_BACKGROUND_MODE_ENABLED)
Ed Chin59f617b2022-07-19 22:12:04374
David Jeanf361ae9d2024-04-09 08:19:47375const FeatureEntry::FeatureParam kEnableExpKitTextClassifierAddressOneTap[] = {
376 {kTextClassifierAddressParameterName, "true"}};
377const FeatureEntry::FeatureVariation
378 kEnableExpKitTextClassifierAddressVariations[] = {
379 {"Long-Press and One-Tap", kEnableExpKitTextClassifierAddressOneTap,
380 std::size(kEnableExpKitTextClassifierAddressOneTap), nullptr}};
381
382const FeatureEntry::FeatureParam
383 kEnableExpKitTextClassifierPhoneNumberOneTap[] = {
384 {kTextClassifierPhoneNumberParameterName, "true"}};
385const FeatureEntry::FeatureVariation
386 kEnableExpKitTextClassifierPhoneNumberVariations[] = {
387 {"Long-Press and One-Tap", kEnableExpKitTextClassifierPhoneNumberOneTap,
388 std::size(kEnableExpKitTextClassifierPhoneNumberOneTap), nullptr}};
389
390const FeatureEntry::FeatureParam kEnableExpKitTextClassifierEmailOneTap[] = {
391 {kTextClassifierEmailParameterName, "true"}};
392const FeatureEntry::FeatureVariation
393 kEnableExpKitTextClassifierEmailVariations[] = {
394 {"Long-Press and One-Tap", kEnableExpKitTextClassifierEmailOneTap,
395 std::size(kEnableExpKitTextClassifierEmailOneTap), nullptr}};
Raj T18a2c8c2023-03-15 17:20:15396
Christian Xu07d600192023-07-24 12:29:52397const FeatureEntry::FeatureParam kBottomOmniboxDefaultSettingTop[] = {
398 {kBottomOmniboxDefaultSettingParam, kBottomOmniboxDefaultSettingParamTop}};
399const FeatureEntry::FeatureParam kBottomOmniboxDefaultSettingBottom[] = {
400 {kBottomOmniboxDefaultSettingParam,
401 kBottomOmniboxDefaultSettingParamBottom}};
402const FeatureEntry::FeatureParam kBottomOmniboxDefaultSettingSafariSwitcher[] =
403 {{kBottomOmniboxDefaultSettingParam,
404 kBottomOmniboxDefaultSettingParamSafariSwitcher}};
405const FeatureEntry::FeatureVariation kBottomOmniboxDefaultSettingVariations[] =
406 {
407 {"Top", kBottomOmniboxDefaultSettingTop,
408 std::size(kBottomOmniboxDefaultSettingTop), nullptr},
409 {"Bottom", kBottomOmniboxDefaultSettingBottom,
410 std::size(kBottomOmniboxDefaultSettingBottom), nullptr},
411 {"Bottom for Safari Switcher",
412 kBottomOmniboxDefaultSettingSafariSwitcher,
413 std::size(kBottomOmniboxDefaultSettingSafariSwitcher), nullptr},
414};
415
Cheick Cisse85457f22024-05-23 22:37:59416constexpr flags_ui::FeatureEntry::FeatureParam kPriceInsightsPriceIsLowParam[] =
417 {{kLowPriceParam, kLowPriceParamPriceIsLow}};
418constexpr flags_ui::FeatureEntry::FeatureParam
419 kPriceInsightsGoodDealNowParam[] = {
420 {kLowPriceParam, kLowPriceParamGoodDealNow}};
421constexpr flags_ui::FeatureEntry::FeatureParam
422 kPriceInsightsSeePriceHistoryParam[] = {
423 {kLowPriceParam, kLowPriceParamSeePriceHistory}};
424constexpr flags_ui::FeatureEntry::FeatureVariation kPriceInsightsVariations[] =
425 {{"Price is low", kPriceInsightsPriceIsLowParam,
426 std::size(kPriceInsightsPriceIsLowParam), nullptr},
427 {"Good deal now", kPriceInsightsGoodDealNowParam,
428 std::size(kPriceInsightsGoodDealNowParam), nullptr},
429 {"See price history", kPriceInsightsSeePriceHistoryParam,
430 std::size(kPriceInsightsSeePriceHistoryParam), nullptr}};
431
Benjamin Williams1dc8f2342024-01-04 21:25:55432const FeatureEntry::FeatureParam kIOSDockingPromoDisplayedAfterFRE[] = {
433 {kIOSDockingPromoExperimentType, "0"}};
434const FeatureEntry::FeatureParam kIOSDockingPromoDisplayedAtAppLaunch[] = {
435 {kIOSDockingPromoExperimentType, "1"}};
436const FeatureEntry::FeatureParam kIOSDockingPromoDisplayedDuringFRE[] = {
437 {kIOSDockingPromoExperimentType, "2"}};
438
439const FeatureEntry::FeatureVariation kIOSDockingPromoVariations[] = {
440 {"Display promo after FRE", kIOSDockingPromoDisplayedAfterFRE,
441 std::size(kIOSDockingPromoDisplayedAfterFRE), nullptr},
442 {"Display promo at app launch", kIOSDockingPromoDisplayedAtAppLaunch,
443 std::size(kIOSDockingPromoDisplayedAtAppLaunch), nullptr},
444 {"Display promo during FRE", kIOSDockingPromoDisplayedDuringFRE,
445 std::size(kIOSDockingPromoDisplayedDuringFRE), nullptr}};
446
Olivier ROBINcb76f4fe2024-06-05 16:11:42447const FeatureEntry::FeatureVariation
448 kImageServiceOptimizationGuideSalientImagesVariations[] = {
449 {"High Performance Canonicalization", nullptr, 0, "3362133"},
450};
451
Olivier ROBINb17c14b92024-10-09 13:49:13452const FeatureEntry::FeatureParam kTabResumptionImagesOnlyThumbnail[] = {
453 {kTabResumptionImagesTypes, kTabResumptionImagesTypesThumbnails}};
454const FeatureEntry::FeatureParam kTabResumptionImagesOnlySalient[] = {
455 {kTabResumptionImagesTypes, kTabResumptionImagesTypesSalient}};
456
457const FeatureEntry::FeatureVariation kTabResumptionImagesVariations[] = {
458 {"Only thumbnails", kTabResumptionImagesOnlyThumbnail,
459 std::size(kTabResumptionImagesOnlyThumbnail), nullptr},
460 {"Only salient", kTabResumptionImagesOnlySalient,
461 std::size(kTabResumptionImagesOnlySalient), nullptr},
462};
463
Charles Yangf8e7adf2024-06-11 00:17:00464// Uses int values from Lens filters ablation mode enum.
465const FeatureEntry::FeatureParam kLensFiltersAblationModeDisabled[] = {
466 {kLensFiltersAblationMode, "0"}};
467const FeatureEntry::FeatureParam kLensFiltersAblationModePostCapture[] = {
468 {kLensFiltersAblationMode, "1"}};
469const FeatureEntry::FeatureParam kLensFiltersAblationModeLVF[] = {
470 {kLensFiltersAblationMode, "2"}};
471const FeatureEntry::FeatureParam kLensFiltersAblationModeAlways[] = {
472 {kLensFiltersAblationMode, "3"}};
473
474const FeatureEntry::FeatureVariation kLensFiltersAblationModeVariations[] = {
475 {"(Disabled)", kLensFiltersAblationModeDisabled,
476 std::size(kLensFiltersAblationModeDisabled), nullptr},
477 {"(Post Capture)", kLensFiltersAblationModePostCapture,
478 std::size(kLensFiltersAblationModePostCapture), nullptr},
479 {"(LVF)", kLensFiltersAblationModeLVF,
480 std::size(kLensFiltersAblationModeLVF), nullptr},
481 {"(Always)", kLensFiltersAblationModeAlways,
482 std::size(kLensFiltersAblationModeAlways), nullptr}};
483
484// Uses int values from Lens translate toggle mode enum.
485const FeatureEntry::FeatureParam kLensTranslateToggleModeDisabled[] = {
486 {kLensTranslateToggleMode, "0"}};
487const FeatureEntry::FeatureParam kLensTranslateToggleModePostCapture[] = {
488 {kLensTranslateToggleMode, "1"}};
489const FeatureEntry::FeatureParam kLensTranslateToggleModeLVF[] = {
490 {kLensTranslateToggleMode, "2"}};
491const FeatureEntry::FeatureParam kLensTranslateToggleModeAlways[] = {
492 {kLensTranslateToggleMode, "3"}};
493
494const FeatureEntry::FeatureVariation kLensTranslateToggleModeVariations[] = {
495 {"(Disabled)", kLensTranslateToggleModeDisabled,
496 std::size(kLensTranslateToggleModeDisabled), nullptr},
497 {"(Post Capture)", kLensTranslateToggleModePostCapture,
498 std::size(kLensTranslateToggleModePostCapture), nullptr},
499 {"(LVF)", kLensTranslateToggleModeLVF,
500 std::size(kLensTranslateToggleModeLVF), nullptr},
501 {"(Always)", kLensTranslateToggleModeAlways,
502 std::size(kLensTranslateToggleModeAlways), nullptr}};
Olivier Robinf8374f12024-06-05 19:00:04503
Khalid Peer7cf75a22024-06-13 17:25:49504const FeatureEntry::FeatureParam
505 kMlUrlPiecewiseMappedSearchBlendingAdjustedBy0[] = {
506 {"MlUrlPiecewiseMappedSearchBlending", "true"},
507 {"MlUrlPiecewiseMappedSearchBlending_BreakPoints",
508 "0,550;0.018,1300;0.14,1398;1,1422"},
509 {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1400"},
510 {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}};
511const FeatureEntry::FeatureParam
Khalid Peer9c07798f2024-07-15 22:39:41512 kMlUrlPiecewiseMappedSearchBlendingDemotedBy50[] = {
Khalid Peer7cf75a22024-06-13 17:25:49513 {"MlUrlPiecewiseMappedSearchBlending", "true"},
514 {"MlUrlPiecewiseMappedSearchBlending_BreakPoints",
515 "0,550;0.018,1250;0.14,1348;1,1422"},
516 {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1350"},
517 {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}};
518const FeatureEntry::FeatureParam
Khalid Peer9c07798f2024-07-15 22:39:41519 kMlUrlPiecewiseMappedSearchBlendingPromotedBy50[] = {
Khalid Peer7cf75a22024-06-13 17:25:49520 {"MlUrlPiecewiseMappedSearchBlending", "true"},
521 {"MlUrlPiecewiseMappedSearchBlending_BreakPoints",
Khalid Peer9c07798f2024-07-15 22:39:41522 "0,550;0.018,1350;0.14,1448;1,1472"},
523 {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1450"},
Khalid Peer7cf75a22024-06-13 17:25:49524 {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}};
525const FeatureEntry::FeatureParam
Khalid Peer9c07798f2024-07-15 22:39:41526 kMlUrlPiecewiseMappedSearchBlendingPromotedBy100[] = {
Khalid Peer7cf75a22024-06-13 17:25:49527 {"MlUrlPiecewiseMappedSearchBlending", "true"},
528 {"MlUrlPiecewiseMappedSearchBlending_BreakPoints",
Khalid Peer9c07798f2024-07-15 22:39:41529 "0,550;0.018,1400;0.14,1498;1,1522"},
530 {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1500"},
Khalid Peer7cf75a22024-06-13 17:25:49531 {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}};
Khalid Peer4501c1f2024-06-27 16:12:04532const FeatureEntry::FeatureParam
533 kMlUrlPiecewiseMappedSearchBlendingMobileMapping[] = {
534 {"MlUrlPiecewiseMappedSearchBlending", "true"},
535 {"MlUrlPiecewiseMappedSearchBlending_BreakPoints",
Khalid Peer5c9bd9e2024-07-17 17:16:42536 "0,590;0.006,790;0.082,1290;0.443,1360;0.464,1400;0.987,1425;1,1530"},
Khalid Peer4501c1f2024-06-27 16:12:04537 {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1340"},
538 {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}};
Khalid Peer7cf75a22024-06-13 17:25:49539
540const FeatureEntry::FeatureVariation
541 kMlUrlPiecewiseMappedSearchBlendingVariations[] = {
542 {"adjusted by 0", kMlUrlPiecewiseMappedSearchBlendingAdjustedBy0,
543 std::size(kMlUrlPiecewiseMappedSearchBlendingAdjustedBy0), nullptr},
Khalid Peer9c07798f2024-07-15 22:39:41544 {"demoted by 50", kMlUrlPiecewiseMappedSearchBlendingDemotedBy50,
545 std::size(kMlUrlPiecewiseMappedSearchBlendingDemotedBy50), nullptr},
546 {"promoted by 50", kMlUrlPiecewiseMappedSearchBlendingPromotedBy50,
547 std::size(kMlUrlPiecewiseMappedSearchBlendingPromotedBy50), nullptr},
548 {"promoted by 100", kMlUrlPiecewiseMappedSearchBlendingPromotedBy100,
549 std::size(kMlUrlPiecewiseMappedSearchBlendingPromotedBy100), nullptr},
Khalid Peer4501c1f2024-06-27 16:12:04550 {"mobile mapping", kMlUrlPiecewiseMappedSearchBlendingMobileMapping,
551 std::size(kMlUrlPiecewiseMappedSearchBlendingMobileMapping), nullptr},
Khalid Peer7cf75a22024-06-13 17:25:49552};
553
Jian Li0e8f7d252025-06-09 22:05:42554const FeatureEntry::FeatureParam kOmniboxMiaZpsEnabledWithHistoryAblation[] = {
555 {OmniboxFieldTrial::kSuppressPsuggestBackfillWithMIAParam, "true"}};
556const FeatureEntry::FeatureVariation kOmniboxMiaZpsVariations[] = {
557 {"with History Ablation", kOmniboxMiaZpsEnabledWithHistoryAblation,
558 std::size(kOmniboxMiaZpsEnabledWithHistoryAblation), nullptr}};
559
Khalid Peer7cf75a22024-06-13 17:25:49560const FeatureEntry::FeatureParam kOmniboxMlUrlScoringEnabledWithFixes[] = {
561 {"enable_scoring_signals_annotators_for_ml_scoring", "true"},
562 {"MlUrlScoringShortcutDocumentSignals", "true"},
563};
564const FeatureEntry::FeatureParam kOmniboxMlUrlScoringUnlimitedNumCandidates[] =
565 {
566 {"MlUrlScoringUnlimitedNumCandidates", "true"},
567 {"enable_scoring_signals_annotators_for_ml_scoring", "true"},
568 {"MlUrlScoringShortcutDocumentSignals", "true"},
569};
570// Sets Bookmark(1), History Quick(4), History URL(8), Shortcuts(64),
571// Document(512), and History Fuzzy(65536) providers max matches to 10.
572const FeatureEntry::FeatureParam kOmniboxMlUrlScoringMaxMatchesByProvider10[] =
573 {
574 {"MlUrlScoringMaxMatchesByProvider",
575 "1:10,4:10,8:10,64:10,512:10,65536:10"},
576 {"enable_scoring_signals_annotators_for_ml_scoring", "true"},
577 {"MlUrlScoringShortcutDocumentSignals", "true"},
578};
579
580const FeatureEntry::FeatureVariation kOmniboxMlUrlScoringVariations[] = {
581 {"Enabled with fixes", kOmniboxMlUrlScoringEnabledWithFixes,
582 std::size(kOmniboxMlUrlScoringEnabledWithFixes), nullptr},
583 {"unlimited suggestion candidates",
584 kOmniboxMlUrlScoringUnlimitedNumCandidates,
585 std::size(kOmniboxMlUrlScoringUnlimitedNumCandidates), nullptr},
586 {"Increase provider max limit to 10",
587 kOmniboxMlUrlScoringMaxMatchesByProvider10,
588 std::size(kOmniboxMlUrlScoringMaxMatchesByProvider10), nullptr},
589};
590
591const FeatureEntry::FeatureParam kMlUrlSearchBlendingStable[] = {
592 {"MlUrlSearchBlending_StableSearchBlending", "true"},
593 {"MlUrlSearchBlending_MappedSearchBlending", "false"},
594};
595const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedConservativeUrls[] =
596 {
597 {"MlUrlSearchBlending_StableSearchBlending", "false"},
598 {"MlUrlSearchBlending_MappedSearchBlending", "true"},
599 {"MlUrlSearchBlending_MappedSearchBlendingMin", "0"},
600 {"MlUrlSearchBlending_MappedSearchBlendingMax", "2000"},
601 {"MlUrlSearchBlending_MappedSearchBlendingGroupingThreshold", "1000"},
602};
603const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedModerateUrls[] = {
604 {"MlUrlSearchBlending_StableSearchBlending", "false"},
605 {"MlUrlSearchBlending_MappedSearchBlending", "true"},
606};
607const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedAggressiveUrls[] = {
608 {"MlUrlSearchBlending_StableSearchBlending", "false"},
609 {"MlUrlSearchBlending_MappedSearchBlending", "true"},
610 {"MlUrlSearchBlending_MappedSearchBlendingMin", "1000"},
611 {"MlUrlSearchBlending_MappedSearchBlendingMax", "4000"},
612 {"MlUrlSearchBlending_MappedSearchBlendingGroupingThreshold", "1500"},
613};
614
615const FeatureEntry::FeatureVariation kMlUrlSearchBlendingVariations[] = {
616 {"Stable", kMlUrlSearchBlendingStable,
617 std::size(kMlUrlSearchBlendingStable), nullptr},
618 {"Mapped conservative urls", kMlUrlSearchBlendingMappedConservativeUrls,
619 std::size(kMlUrlSearchBlendingMappedConservativeUrls), nullptr},
620 {"Mapped moderate urls", kMlUrlSearchBlendingMappedModerateUrls,
621 std::size(kMlUrlSearchBlendingMappedModerateUrls), nullptr},
622 {"Mapped aggressive urls", kMlUrlSearchBlendingMappedAggressiveUrls,
623 std::size(kMlUrlSearchBlendingMappedAggressiveUrls), nullptr},
624};
625
Khalid Peer4501c1f2024-06-27 16:12:04626const FeatureEntry::FeatureVariation kUrlScoringModelVariations[] = {
627 {"Small model", nullptr, 0, "3379590"},
628 {"Full model", nullptr, 0, "3380197"},
629};
630
Benjamin Williams0594caf2024-07-09 17:51:38631const FeatureEntry::FeatureParam kSafetyCheckNotificationsVerbose[] = {
632 {kSafetyCheckNotificationsExperimentType, "0"}};
633const FeatureEntry::FeatureParam kSafetyCheckNotificationsSuccinct[] = {
634 {kSafetyCheckNotificationsExperimentType, "1"}};
635
636const FeatureEntry::FeatureVariation kSafetyCheckNotificationsVariations[] = {
637 {"Display multiple notifications at once", kSafetyCheckNotificationsVerbose,
638 std::size(kSafetyCheckNotificationsVerbose), nullptr},
639 {"Display one notification at a time", kSafetyCheckNotificationsSuccinct,
640 std::size(kSafetyCheckNotificationsSuccinct), nullptr}};
641
Elmehdi Rahmaouif5b76462024-06-24 10:44:46642const FeatureEntry::FeatureParam kSaveToPhotosContextMenuImprovement[] = {
643 {kSaveToPhotosContextMenuImprovementParam, "true"},
644 {kSaveToPhotosTitleImprovementParam, "false"},
645 {kSaveToPhotosAccountDefaultChoiceImprovementParam, "false"},
646};
647const FeatureEntry::FeatureParam kSaveToPhotosTitleImprovement[] = {
648 {kSaveToPhotosContextMenuImprovementParam, "false"},
649 {kSaveToPhotosTitleImprovementParam, "true"},
650 {kSaveToPhotosAccountDefaultChoiceImprovementParam, "false"},
651};
652const FeatureEntry::FeatureParam
653 kSaveToPhotosAccountDefaultChoiceImprovement[] = {
654 {kSaveToPhotosContextMenuImprovementParam, "false"},
655 {kSaveToPhotosTitleImprovementParam, "false"},
656 {kSaveToPhotosAccountDefaultChoiceImprovementParam, "true"},
657};
658
659const FeatureEntry::FeatureVariation kSaveToPhotosImprovementsVariations[] = {
660 {"With Context Menu improvement Only", kSaveToPhotosContextMenuImprovement,
661 std::size(kSaveToPhotosContextMenuImprovement), nullptr},
662 {"With Title improvement Only", kSaveToPhotosTitleImprovement,
663 std::size(kSaveToPhotosTitleImprovement), nullptr},
664 {"With Account Default choice improvement Only",
665 kSaveToPhotosAccountDefaultChoiceImprovement,
666 std::size(kSaveToPhotosAccountDefaultChoiceImprovement), nullptr},
667};
668
Stephen McGruer8fe98b62024-07-16 13:10:13669// LINT.IfChange(AutofillUploadCardRequestTimeouts)
670const FeatureEntry::FeatureParam
671 kAutofillUploadCardRequestTimeout_6Point5Seconds[] = {
672 {"autofill_upload_card_request_timeout_milliseconds", "6500"}};
673const FeatureEntry::FeatureParam kAutofillUploadCardRequestTimeout_7Seconds[] =
674 {{"autofill_upload_card_request_timeout_milliseconds", "7000"}};
675const FeatureEntry::FeatureParam kAutofillUploadCardRequestTimeout_9Seconds[] =
676 {{"autofill_upload_card_request_timeout_milliseconds", "9000"}};
677const FeatureEntry::FeatureVariation
678 kAutofillUploadCardRequestTimeoutOptions[] = {
679 {"6.5 seconds", kAutofillUploadCardRequestTimeout_6Point5Seconds,
680 std::size(kAutofillUploadCardRequestTimeout_6Point5Seconds), nullptr},
681 {"7 seconds", kAutofillUploadCardRequestTimeout_7Seconds,
682 std::size(kAutofillUploadCardRequestTimeout_7Seconds), nullptr},
683 {"9 seconds", kAutofillUploadCardRequestTimeout_9Seconds,
684 std::size(kAutofillUploadCardRequestTimeout_9Seconds), nullptr}};
Benjamin Williamse589c382024-07-30 12:11:03685// LINT.ThenChange(/chrome/browser/about_flags.cc:AutofillUploadCardRequestTimeouts)
Stephen McGruer8fe98b62024-07-16 13:10:13686
Stephen McGruer0904cae2024-07-17 19:54:46687// LINT.IfChange(AutofillVcnEnrollRequestTimeouts)
688const FeatureEntry::FeatureParam kAutofillVcnEnrollRequestTimeout_5Seconds[] = {
689 {"autofill_vcn_enroll_request_timeout_milliseconds", "5000"}};
690const FeatureEntry::FeatureParam
691 kAutofillVcnEnrollRequestTimeout_7Point5Seconds[] = {
692 {"autofill_vcn_enroll_request_timeout_milliseconds", "7500"}};
693const FeatureEntry::FeatureParam kAutofillVcnEnrollRequestTimeout_10Seconds[] =
694 {{"autofill_vcn_enroll_request_timeout_milliseconds", "10000"}};
695const FeatureEntry::FeatureVariation kAutofillVcnEnrollRequestTimeoutOptions[] =
696 {{"5 seconds", kAutofillVcnEnrollRequestTimeout_5Seconds,
697 std::size(kAutofillVcnEnrollRequestTimeout_5Seconds), nullptr},
698 {"7.5 seconds", kAutofillVcnEnrollRequestTimeout_7Point5Seconds,
699 std::size(kAutofillVcnEnrollRequestTimeout_7Point5Seconds), nullptr},
700 {"10 seconds", kAutofillVcnEnrollRequestTimeout_10Seconds,
701 std::size(kAutofillVcnEnrollRequestTimeout_10Seconds), nullptr}};
Benjamin Williamse589c382024-07-30 12:11:03702// LINT.ThenChange(/chrome/browser/about_flags.cc:AutofillVcnEnrollRequestTimeouts)
Stephen McGruer0904cae2024-07-17 19:54:46703
Nicolas MacBethc738c4e2024-07-19 21:14:19704// Contextual Panel flag variations.
705const FeatureEntry::FeatureParam kContextualPanelRichIPHArms[] = {
706 {"entrypoint-highlight-iph", "true"},
707 {"entrypoint-rich-iph", "true"},
708};
709const FeatureEntry::FeatureParam kContextualPanelSmallIPHArm[] = {
710 {"entrypoint-highlight-iph", "false"},
711 {"entrypoint-rich-iph", "false"},
712};
713const FeatureEntry::FeatureParam
714 kContextualPanelSmallIPHWithBlueHighlightArm[] = {
715 {"entrypoint-highlight-iph", "true"},
716 {"entrypoint-rich-iph", "false"},
717};
718
719const FeatureEntry::FeatureVariation kContextualPanelEntrypointArmVariations[] =
720 {
721 {"- Rich IPH", kContextualPanelRichIPHArms,
722 std::size(kContextualPanelRichIPHArms), nullptr},
723 {"- Small IPH, no blue highlight", kContextualPanelSmallIPHArm,
724 std::size(kContextualPanelSmallIPHArm), nullptr},
725 {"- Small IPH with blue highlight",
726 kContextualPanelSmallIPHWithBlueHighlightArm,
727 std::size(kContextualPanelSmallIPHWithBlueHighlightArm), nullptr},
728};
729
Jood Hajeer3867886d2024-07-29 16:15:35730const FeatureEntry::FeatureParam kIdentityConfirmationSnackbarTestingConfig[] =
Jood562c885f2024-09-05 17:06:55731 {{"IdentityConfirmationMinDisplayInterval1", "0"},
732 {"IdentityConfirmationMinDisplayInterval2", "0"},
733 {"IdentityConfirmationMinDisplayInterval3", "0"}};
Jood Hajeer3867886d2024-07-29 16:15:35734const FeatureEntry::FeatureVariation
735 kIdentityConfirmationSnackbarTestingVariations[] = {
736 {" - for testing", kIdentityConfirmationSnackbarTestingConfig,
737 std::size(kIdentityConfirmationSnackbarTestingConfig), nullptr}};
738
Chris Lu4c688e02024-09-07 00:48:08739const FeatureEntry::FeatureParam kPriceTrackingPromoForceShowArm[] = {
740 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamseecd4552024-10-28 19:04:05741 segmentation_platform::kPriceTrackingNotificationPromo},
Chris Lu4c688e02024-09-07 00:48:08742};
743const FeatureEntry::FeatureParam kPriceTrackingPromoForceHideArm[] = {
744 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamseecd4552024-10-28 19:04:05745 segmentation_platform::kPriceTrackingNotificationPromo},
Chris Lu4c688e02024-09-07 00:48:08746};
747
Gloria Fang02964a442025-02-06 19:21:18748// ShopCard variants
749const FeatureEntry::FeatureParam kPriceDropForTrackedProductsArm[] = {
750 {"ShopCardVariant", "arm_1"},
751};
752const FeatureEntry::FeatureParam kReviewsArm[] = {
753 {"ShopCardVariant", "arm_2"},
754};
755const FeatureEntry::FeatureParam kPriceDropOnTabArm[] = {
756 {"ShopCardVariant", "arm_3"},
757};
758const FeatureEntry::FeatureParam kPriceTrackableProductOnTabArm[] = {
759 {"ShopCardVariant", "arm_4"},
760};
David Maunder13d03fd12025-04-14 15:39:19761const FeatureEntry::FeatureParam kTabResumptionWithImpressionLimitsArm[] = {
762 {"ShopCardVariant", "arm_5"},
763};
David Maunder5588a222025-04-08 15:33:20764const FeatureEntry::FeatureParam kPriceDropForTrackedProductsFront[] = {
765 {"ShopCardVariant", "arm_1"},
766 {"ShopCardPosition", "shop_card_front"},
767};
David Maunder110189f2025-04-09 15:25:02768const FeatureEntry::FeatureParam kReviewsFrontt[] = {
769 {"ShopCardVariant", "arm_2"},
770 {"ShopCardPosition", "shop_card_front"},
771};
772const FeatureEntry::FeatureParam kPriceDropOnTabFront[] = {
773 {"ShopCardVariant", "arm_3"},
774 {"ShopCardPosition", "shop_card_front"},
775};
776const FeatureEntry::FeatureParam kPriceTrackableProductOnTabFront[] = {
777 {"ShopCardVariant", "arm_4"},
778 {"ShopCardPosition", "shop_card_front"},
779};
David Maunder13d03fd12025-04-14 15:39:19780const FeatureEntry::FeatureParam kTabResumptionWithImpressionLimitsFront[] = {
781 {"ShopCardVariant", "arm_5"},
782 {"ShopCardPosition", "shop_card_front"},
783};
Gloria Fang02964a442025-02-06 19:21:18784
Benjamin Williamsd7f854b2024-10-09 17:12:27785// Address Bar Position
786const FeatureEntry::FeatureParam kTipsAddressBarPositionForceShowArm[] = {
787 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31788 segmentation_platform::kAddressBarPositionEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27789};
790const FeatureEntry::FeatureParam kTipsAddressBarPositionForceHideArm[] = {
791 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31792 segmentation_platform::kAddressBarPositionEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27793};
794
795// Autofill Passwords
796const FeatureEntry::FeatureParam kTipsAutofillPasswordsForceShowArm[] = {
797 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31798 segmentation_platform::kAutofillPasswordsEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27799};
800const FeatureEntry::FeatureParam kTipsAutofillPasswordsForceHideArm[] = {
801 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31802 segmentation_platform::kAutofillPasswordsEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27803};
804
805// Enhanced Safe Browsing
806const FeatureEntry::FeatureParam kTipsEnhancedSafeBrowsingForceShowArm[] = {
807 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31808 segmentation_platform::kEnhancedSafeBrowsingEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27809};
810const FeatureEntry::FeatureParam kTipsEnhancedSafeBrowsingForceHideArm[] = {
811 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31812 segmentation_platform::kEnhancedSafeBrowsingEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27813};
814
815// Lens Search
816const FeatureEntry::FeatureParam kTipsLensSearchForceShowArm[] = {
817 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31818 segmentation_platform::kLensEphemeralModuleSearchVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27819};
820const FeatureEntry::FeatureParam kTipsLensSearchForceHideArm[] = {
821 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31822 segmentation_platform::kLensEphemeralModuleSearchVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27823};
824
825// Lens Shop
826const FeatureEntry::FeatureParam kTipsLensShopForceShowArm[] = {
827 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31828 segmentation_platform::kLensEphemeralModuleShopVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27829};
830const FeatureEntry::FeatureParam kTipsLensShopForceHideArm[] = {
831 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31832 segmentation_platform::kLensEphemeralModuleShopVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27833};
834
835// Lens Translate
836const FeatureEntry::FeatureParam kTipsLensTranslateForceShowArm[] = {
837 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31838 segmentation_platform::kLensEphemeralModuleTranslateVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27839};
840const FeatureEntry::FeatureParam kTipsLensTranslateForceHideArm[] = {
841 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31842 segmentation_platform::kLensEphemeralModuleTranslateVariation},
Benjamin Williamsd7f854b2024-10-09 17:12:27843};
844
845// Save Passwords
846const FeatureEntry::FeatureParam kTipsSavePasswordsForceShowArm[] = {
847 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31848 segmentation_platform::kSavePasswordsEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27849};
850const FeatureEntry::FeatureParam kTipsSavePasswordsForceHideArm[] = {
851 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamsbd411e892024-10-25 15:59:31852 segmentation_platform::kSavePasswordsEphemeralModule},
Benjamin Williamsd7f854b2024-10-09 17:12:27853};
854
Hira Mahmood2ff5b5cb2024-10-25 19:24:31855const FeatureEntry::FeatureParam kSendTabPromoForceShowArm[] = {
856 {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
Benjamin Williamseecd4552024-10-28 19:04:05857 segmentation_platform::kSendTabNotificationPromo},
Hira Mahmood2ff5b5cb2024-10-25 19:24:31858};
859const FeatureEntry::FeatureParam kSendTabPromoForceHideArm[] = {
860 {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
Benjamin Williamseecd4552024-10-28 19:04:05861 segmentation_platform::kSendTabNotificationPromo},
Hira Mahmood2ff5b5cb2024-10-25 19:24:31862};
863
Gloria Fang02964a442025-02-06 19:21:18864// ShopCard experiment arms
865const FeatureEntry::FeatureVariation kShopCardOverrideOptions[] = {
866 {"Card 1 Price Drop", kPriceDropForTrackedProductsArm,
867 std::size(kPriceDropForTrackedProductsArm), nullptr},
868 {"Card 2 Reviews", kReviewsArm, std::size(kReviewsArm), nullptr},
869 {"Card 3 Price Drop on Tab Resumption", kPriceDropOnTabArm,
870 std::size(kPriceDropOnTabArm), nullptr},
871 {"Card 4 Price Trackable on Tab Resumption", kPriceTrackableProductOnTabArm,
872 std::size(kPriceTrackableProductOnTabArm), nullptr},
David Maunder13d03fd12025-04-14 15:39:19873 {"Card 5 Tab Resumption with Impression Limits",
874 kTabResumptionWithImpressionLimitsArm,
875 std::size(kTabResumptionWithImpressionLimitsArm), nullptr},
David Maunder5588a222025-04-08 15:33:20876 {"Card 1 Price Drop at front of magic stack",
877 kPriceDropForTrackedProductsFront,
878 std::size(kPriceDropForTrackedProductsFront), nullptr},
David Maunder110189f2025-04-09 15:25:02879 {"Card 2 Reviews at front of magic stack", kReviewsFrontt,
880 std::size(kReviewsFrontt), nullptr},
881 {"Card 3 Price Drop on Tab Resumption at front of magic stack",
882 kPriceDropOnTabFront, std::size(kPriceDropOnTabFront), nullptr},
883 {"Card 4 Price Trackable on Tab Resumption at front of magic stack",
884 kPriceTrackableProductOnTabFront,
885 std::size(kPriceTrackableProductOnTabFront), nullptr},
David Maunder13d03fd12025-04-14 15:39:19886 {"Card 5 Tab Resumption with Impression Limits at front of magic stack",
887 kTabResumptionWithImpressionLimitsFront,
888 std::size(kTabResumptionWithImpressionLimitsFront), nullptr},
Gloria Fang02964a442025-02-06 19:21:18889};
890
Chris Lu4c688e02024-09-07 00:48:08891const FeatureEntry::FeatureVariation kEphemeralCardRankerCardOverrideOptions[] =
892 {
893 {"- Force Show Price Tracking Notification",
894 kPriceTrackingPromoForceShowArm,
895 std::size(kPriceTrackingPromoForceShowArm), nullptr},
896 {"- Force Hide Price Tracking Notification",
897 kPriceTrackingPromoForceHideArm,
898 std::size(kPriceTrackingPromoForceHideArm), nullptr},
Benjamin Williamsd7f854b2024-10-09 17:12:27899
900 // Address Bar Position
901 {"- Force Show Address Bar Position Tip",
902 kTipsAddressBarPositionForceShowArm,
903 std::size(kTipsAddressBarPositionForceShowArm), nullptr},
904 {"- Force Hide Address Bar Position Tip",
905 kTipsAddressBarPositionForceHideArm,
906 std::size(kTipsAddressBarPositionForceHideArm), nullptr},
907
908 // Autofill Passwords
909 {"- Force Show Autofill Passwords Tip",
910 kTipsAutofillPasswordsForceShowArm,
911 std::size(kTipsAutofillPasswordsForceShowArm), nullptr},
912 {"- Force Hide Autofill Passwords Tip",
913 kTipsAutofillPasswordsForceHideArm,
914 std::size(kTipsAutofillPasswordsForceHideArm), nullptr},
915
916 // Enhanced Safe Browsing
917 {"- Force Show Enhanced Safe Browsing Tip",
918 kTipsEnhancedSafeBrowsingForceShowArm,
919 std::size(kTipsEnhancedSafeBrowsingForceShowArm), nullptr},
920 {"- Force Hide Enhanced Safe Browsing Tip",
921 kTipsEnhancedSafeBrowsingForceHideArm,
922 std::size(kTipsEnhancedSafeBrowsingForceHideArm), nullptr},
923
924 // Lens Search
925 {"- Force Show Lens Search Tip", kTipsLensSearchForceShowArm,
926 std::size(kTipsLensSearchForceShowArm), nullptr},
927 {"- Force Hide Lens Search Tip", kTipsLensSearchForceHideArm,
928 std::size(kTipsLensSearchForceHideArm), nullptr},
929
930 // Lens Shop
931 {"- Force Show Lens Shop Tip", kTipsLensShopForceShowArm,
932 std::size(kTipsLensShopForceShowArm), nullptr},
933 {"- Force Hide Lens Shop Tip", kTipsLensShopForceHideArm,
934 std::size(kTipsLensShopForceHideArm), nullptr},
935
936 // Lens Translate
937 {"- Force Show Lens Translate Tip", kTipsLensTranslateForceShowArm,
938 std::size(kTipsLensTranslateForceShowArm), nullptr},
939 {"- Force Hide Lens Translate Tip", kTipsLensTranslateForceHideArm,
940 std::size(kTipsLensTranslateForceHideArm), nullptr},
941
942 // Save Passwords
943 {"- Force Show Save Passwords Tip", kTipsSavePasswordsForceShowArm,
944 std::size(kTipsSavePasswordsForceShowArm), nullptr},
945 {"- Force Hide Save Passwords Tip", kTipsSavePasswordsForceHideArm,
946 std::size(kTipsSavePasswordsForceHideArm), nullptr},
Hira Mahmood2ff5b5cb2024-10-25 19:24:31947
948 // Send Tab Promo.
949 {"- Force Show Send Tab Promo", kSendTabPromoForceShowArm,
950 std::size(kSendTabPromoForceShowArm), nullptr},
951 {"- Force Hide Send Tab Promo", kSendTabPromoForceHideArm,
952 std::size(kSendTabPromoForceHideArm), nullptr},
Chris Lu4c688e02024-09-07 00:48:08953};
954
Hira Mahmood00c17e52024-10-09 14:30:48955const FeatureEntry::FeatureParam
956 kSendTabIOSPushNotificationsWithMagicStackCard[] = {
957 {send_tab_to_self::kSendTabIOSPushNotificationsWithMagicStackCardParam,
958 "true"}};
Hira Mahmood3db58ac2024-11-06 18:39:03959const FeatureEntry::FeatureParam kSendTabIOSPushNotificationsWithURLImage[] = {
960 {send_tab_to_self::kSendTabIOSPushNotificationsURLImageParam, "true"}};
Benjamin Williams3dcd13102025-01-15 18:01:14961const FeatureEntry::FeatureParam
962 kSendTabIOSPushNotificationsWithTabReminders[] = {
963 {send_tab_to_self::kSendTabIOSPushNotificationsWithTabRemindersParam,
964 "true"}};
965
Hira Mahmood00c17e52024-10-09 14:30:48966const FeatureEntry::FeatureVariation kSendTabIOSPushNotificationsVariations[] =
967 {
968 {"With Magic Stack Card",
969 kSendTabIOSPushNotificationsWithMagicStackCard,
970 std::size(kSendTabIOSPushNotificationsWithMagicStackCard), nullptr},
Hira Mahmood3db58ac2024-11-06 18:39:03971 {"With URL Image", kSendTabIOSPushNotificationsWithURLImage,
972 std::size(kSendTabIOSPushNotificationsWithURLImage), nullptr},
Benjamin Williams3dcd13102025-01-15 18:01:14973 {"With Tab Reminders", kSendTabIOSPushNotificationsWithTabReminders,
974 std::size(kSendTabIOSPushNotificationsWithTabReminders), nullptr},
Hira Mahmood00c17e52024-10-09 14:30:48975};
976
Briana McClurec2b62f92024-10-29 15:35:06977const FeatureEntry::FeatureParam kSegmentedDefaultBrowserStatic[] = {
978 {kSegmentedDefaultBrowserExperimentType, "0"}};
979const FeatureEntry::FeatureParam kSegmentedDefaultBrowserAnimated[] = {
980 {kSegmentedDefaultBrowserExperimentType, "1"}};
981
982const FeatureEntry::FeatureVariation kSegmentedDefaultBrowserPromoVariations[] =
983 {{" - Static Default Browser Promo", kSegmentedDefaultBrowserStatic,
984 std::size(kSegmentedDefaultBrowserStatic), nullptr},
985 {" - Animated Default Browser Promo", kSegmentedDefaultBrowserAnimated,
986 std::size(kSegmentedDefaultBrowserAnimated), nullptr}};
987
Rubin Deliallisi1d0b3ba2024-11-04 14:33:04988// Soft Lock
989const FeatureEntry::FeatureParam kIOSSoftLockNoDelay[] = {
990 {kIOSSoftLockBackgroundThresholdParam, "0m"},
991};
992
993const FeatureEntry::FeatureVariation kIOSSoftLockVariations[] = {
994 {" - No delay", kIOSSoftLockNoDelay, std::size(kIOSSoftLockNoDelay),
995 nullptr}};
996
Hira Mahmood431c8ab2024-11-05 17:16:29997const FeatureEntry::FeatureParam
998 kIOSStartTimeStartupRemediationsSaveNTPWebStateArm[] = {
999 {kIOSStartTimeStartupRemediationsSaveNTPWebState, "true"},
1000};
1001const FeatureEntry::FeatureVariation
1002 kIOSStartTimeStartupRemediationsVariations[] = {
1003 {" - Save NTP Web State",
1004 kIOSStartTimeStartupRemediationsSaveNTPWebStateArm,
1005 std::size(kIOSStartTimeStartupRemediationsSaveNTPWebStateArm),
1006 nullptr}};
1007
vincb7867dc042024-11-06 14:25:051008constexpr flags_ui::FeatureEntry::FeatureParam
1009 kAutofillThrottleDocFormScanShortPeriodParam[] = {{"period-ms", "250"}};
1010constexpr flags_ui::FeatureEntry::FeatureParam
1011 kAutofillThrottleDocFormScanMediumPeriodParam[] = {{"period-ms", "500"}};
1012constexpr flags_ui::FeatureEntry::FeatureParam
1013 kAutofillThrottleDocFormScanLongPeriodParam[] = {{"period-ms", "1000"}};
1014constexpr flags_ui::FeatureEntry::FeatureVariation
1015 kAutofillThrottleDocFormScanVariations[] = {
1016 {"Short period", kAutofillThrottleDocFormScanShortPeriodParam,
1017 std::size(kAutofillThrottleDocFormScanShortPeriodParam), nullptr},
1018 {"Medium period", kAutofillThrottleDocFormScanMediumPeriodParam,
1019 std::size(kAutofillThrottleDocFormScanMediumPeriodParam), nullptr},
1020 {"Long period", kAutofillThrottleDocFormScanLongPeriodParam,
1021 std::size(kAutofillThrottleDocFormScanLongPeriodParam), nullptr}};
1022
vincb2bf7f5c2024-11-06 17:18:091023constexpr flags_ui::FeatureEntry::FeatureParam
1024 kAutofillThrottleFilteredDocFormScanShortPeriodParam[] = {
1025 {"period-ms", "100"}};
1026constexpr flags_ui::FeatureEntry::FeatureParam
1027 kAutofillThrottleFilteredDocFormScanMediumPeriodParam[] = {
1028 {"period-ms", "250"}};
1029constexpr flags_ui::FeatureEntry::FeatureParam
1030 kAutofillThrottleFilteredDocFormScanLongPeriodParam[] = {
1031 {"period-ms", "500"}};
1032constexpr flags_ui::FeatureEntry::FeatureVariation
1033 kAutofillThrottleFilteredDocFormScanVariations[] = {
1034 {"Short period", kAutofillThrottleFilteredDocFormScanShortPeriodParam,
1035 std::size(kAutofillThrottleFilteredDocFormScanShortPeriodParam),
1036 nullptr},
1037 {"Medium period", kAutofillThrottleFilteredDocFormScanMediumPeriodParam,
1038 std::size(kAutofillThrottleFilteredDocFormScanMediumPeriodParam),
1039 nullptr},
1040 {"Long period", kAutofillThrottleFilteredDocFormScanLongPeriodParam,
1041 std::size(kAutofillThrottleFilteredDocFormScanLongPeriodParam),
1042 nullptr}};
1043
Hira Mahmoodf8533dc2024-11-12 16:24:251044const FeatureEntry::FeatureParam
1045 kIOSStartTimeBackgroundRemediationsAvoidNTPCleanupArm[] = {
1046 {kIOSStartTimeBackgroundRemediationsAvoidNTPCleanup, "true"},
1047 {kIOSStartTimeBrowserBackgroundRemediationsUpdateFeedRefresh, "false"}};
1048const FeatureEntry::FeatureParam
1049 kIOSStartTimeBrowserBackgroundRemediationsUpdateFeedRefreshArm[] = {
1050 {kIOSStartTimeBrowserBackgroundRemediationsUpdateFeedRefresh, "true"},
1051 {kIOSStartTimeBackgroundRemediationsAvoidNTPCleanup, "false"}};
1052const FeatureEntry::FeatureVariation
1053 kIOSStartTimeBrowserBackgroundRemediationsVariations[] = {
1054 {" - Avoid NTP Cleanup",
1055 kIOSStartTimeBackgroundRemediationsAvoidNTPCleanupArm,
1056 std::size(kIOSStartTimeBackgroundRemediationsAvoidNTPCleanupArm),
1057 nullptr},
1058 {" - Update Feed Refresh",
1059 kIOSStartTimeBrowserBackgroundRemediationsUpdateFeedRefreshArm,
1060 std::size(
1061 kIOSStartTimeBrowserBackgroundRemediationsUpdateFeedRefreshArm),
1062 nullptr}};
1063
Hira Mahmood7577c9b672024-12-12 20:29:121064const FeatureEntry::FeatureParam kSetUpListDuration3Days[] = {
Hira Mahmoodea14d202024-12-17 20:30:531065 {set_up_list::kSetUpListDurationParam, "2"}};
Hira Mahmood7577c9b672024-12-12 20:29:121066const FeatureEntry::FeatureParam kSetUpListDuration5Days[] = {
Hira Mahmoodea14d202024-12-17 20:30:531067 {set_up_list::kSetUpListDurationParam, "4"}};
Hira Mahmood7577c9b672024-12-12 20:29:121068const FeatureEntry::FeatureParam kSetUpListDuration7Days[] = {
Hira Mahmoodea14d202024-12-17 20:30:531069 {set_up_list::kSetUpListDurationParam, "6"}};
Hira Mahmood7577c9b672024-12-12 20:29:121070
1071const FeatureEntry::FeatureVariation kSetUpListDurationVariations[] = {
1072 {" - 3 Days", kSetUpListDuration3Days, std::size(kSetUpListDuration3Days),
1073 nullptr},
1074 {" - 5 Days", kSetUpListDuration5Days, std::size(kSetUpListDuration5Days),
1075 nullptr},
1076 {" - 7 Days", kSetUpListDuration7Days, std::size(kSetUpListDuration7Days),
1077 nullptr}};
1078
Hira Mahmoodf6906a82025-01-02 17:55:091079const FeatureEntry::FeatureParam kUpdatedFirstRunSequenceArm1[] = {
1080 {first_run::kUpdatedFirstRunSequenceParam, "1"}};
1081const FeatureEntry::FeatureParam kUpdatedFirstRunSequenceArm2[] = {
1082 {first_run::kUpdatedFirstRunSequenceParam, "2"}};
1083const FeatureEntry::FeatureParam kUpdatedFirstRunSequenceArm3[] = {
1084 {first_run::kUpdatedFirstRunSequenceParam, "3"}};
1085
1086const FeatureEntry::FeatureVariation kUpdatedFirstRunSequenceVariations[] = {
1087 {" - Default browser promo first", kUpdatedFirstRunSequenceArm1,
1088 std::size(kUpdatedFirstRunSequenceArm1), nullptr},
1089 {" - Remove sign in & sync conditionally", kUpdatedFirstRunSequenceArm2,
1090 std::size(kUpdatedFirstRunSequenceArm2), nullptr},
1091 {" - DB promo first and remove sign in & sync",
1092 kUpdatedFirstRunSequenceArm3, std::size(kUpdatedFirstRunSequenceArm3),
1093 nullptr}};
Elmehdi Rahmaoui2fc19782025-01-28 15:36:481094
Elmehdi Rahmaoui543d35f2025-01-16 10:09:421095const FeatureEntry::FeatureParam
1096 kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial[] = {
1097 {kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam,
1098 "true"},
1099};
Elmehdi Rahmaoui2fc19782025-01-28 15:36:481100
1101const FeatureEntry::FeatureParam kYoutubeIncognitoTargetAllowListed[] = {
1102 {kYoutubeIncognitoTargetApps, kYoutubeIncognitoTargetAppsAllowlisted},
1103};
1104const FeatureEntry::FeatureParam kYoutubeIncognitoTargetFirstParty[] = {
1105 {kYoutubeIncognitoTargetApps, kYoutubeIncognitoTargetAppsFirstParty},
1106};
1107const FeatureEntry::FeatureParam kYoutubeIncognitoTargetAll[] = {
1108 {kYoutubeIncognitoTargetApps, kYoutubeIncognitoTargetAppsAll},
1109};
1110
Elmehdi Rahmaoui543d35f2025-01-16 10:09:421111const FeatureEntry::FeatureVariation kYoutubeIncognitoVariations[] = {
1112 {"Error handling without Incognito Interstitial",
1113 kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial,
1114 std::size(kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial),
1115 nullptr},
Elmehdi Rahmaoui2fc19782025-01-28 15:36:481116 {"Enable for listed apps", kYoutubeIncognitoTargetAllowListed,
1117 std::size(kYoutubeIncognitoTargetAllowListed), nullptr},
1118 {"Enable for first party apps", kYoutubeIncognitoTargetFirstParty,
1119 std::size(kYoutubeIncognitoTargetFirstParty), nullptr},
1120 {"Enable for all apps", kYoutubeIncognitoTargetAll,
1121 std::size(kYoutubeIncognitoTargetAll), nullptr},
Elmehdi Rahmaoui543d35f2025-01-16 10:09:421122};
1123
“Prasanaa”96e15992025-01-30 15:44:351124const FeatureEntry::FeatureParam kSlowFullscreenTransitionSpeed[] = {
1125 {kFullscreenTransitionSpeedParam, "0"}};
1126const FeatureEntry::FeatureParam kDefaultFullscreenTransitionSpeed[] = {
1127 {kFullscreenTransitionSpeedParam, "1"}};
1128const FeatureEntry::FeatureParam kFastFullscreenTransitionSpeed[] = {
1129 {kFullscreenTransitionSpeedParam, "2"}};
1130const FeatureEntry::FeatureParam kMediumFullscreenTransitionOffset[] = {
1131 {kMediumFullscreenTransitionOffsetParam, "true"}};
1132
1133const FeatureEntry::FeatureVariation kFullscreenTransitionVariations[] = {
1134 {"Slow speed", kSlowFullscreenTransitionSpeed,
1135 std::size(kSlowFullscreenTransitionSpeed), nullptr},
1136 {"Default speed", kDefaultFullscreenTransitionSpeed,
1137 std::size(kDefaultFullscreenTransitionSpeed), nullptr},
1138 {"Fast speed", kFastFullscreenTransitionSpeed,
1139 std::size(kFastFullscreenTransitionSpeed), nullptr},
1140 {"Medium offset", kMediumFullscreenTransitionOffset,
1141 std::size(kMediumFullscreenTransitionOffset), nullptr}};
1142
Scott Yoder88062722025-06-11 13:28:301143const FeatureEntry::FeatureParam kFullscreenScrollThreshold1[] = {
1144 {web::features::kFullscreenScrollThresholdAmount, "1"}};
1145const FeatureEntry::FeatureParam kFullscreenScrollThreshold5[] = {
1146 {web::features::kFullscreenScrollThresholdAmount, "5"}};
1147const FeatureEntry::FeatureParam kFullscreenScrollThreshold10[] = {
1148 {web::features::kFullscreenScrollThresholdAmount, "10"}};
1149const FeatureEntry::FeatureParam kFullscreenScrollThreshold20[] = {
1150 {web::features::kFullscreenScrollThresholdAmount, "20"}};
1151const FeatureEntry::FeatureVariation kFullscreenScrollThresholdVariations[] = {
1152 {"1px", kFullscreenScrollThreshold1, std::size(kFullscreenScrollThreshold1),
1153 nullptr},
1154 {"5px", kFullscreenScrollThreshold5, std::size(kFullscreenScrollThreshold5),
1155 nullptr},
1156 {"10px", kFullscreenScrollThreshold10,
1157 std::size(kFullscreenScrollThreshold10), nullptr},
1158 {"20px", kFullscreenScrollThreshold20,
1159 std::size(kFullscreenScrollThreshold20), nullptr}};
1160
ginnnnnnnyccce0952025-02-03 22:44:361161const FeatureEntry::FeatureParam
ginnnnnnny0e892172025-02-04 21:45:171162 kDeprecateFeedHeaderVariationRemoveFeedLabel[] = {
1163 {kDeprecateFeedHeaderParameterRemoveLabel, "true"}};
1164const FeatureEntry::FeatureParam
ginnnnnnnya0c62d82025-03-07 04:22:111165 kDeprecateFeedHeaderVariationAbovePlusMoreSpacing[] = {
ginnnnnnny0e892172025-02-04 21:45:171166 {kDeprecateFeedHeaderParameterRemoveLabel, "true"},
ginnnnnnnyf398da822025-03-12 10:15:551167 {kDeprecateFeedHeaderParameterTopPadding, "28.5"},
1168 {kDeprecateFeedHeaderParameterSearchFieldTopMargin, "30"},
1169 {kDeprecateFeedHeaderParameterHeaderBottomPadding, "3"},
1170 {kDeprecateFeedHeaderParameterSpaceBetweenModules, "16"}};
ginnnnnnny0e892172025-02-04 21:45:171171const FeatureEntry::FeatureParam
1172 kDeprecateFeedHeaderVariationAbovePlusEnlargeElements[] = {
1173 {kDeprecateFeedHeaderParameterRemoveLabel, "true"},
ginnnnnnnyf398da822025-03-12 10:15:551174 {kDeprecateFeedHeaderParameterTopPadding, "21.5"},
1175 {kDeprecateFeedHeaderParameterSearchFieldTopMargin, "32"},
ginnnnnnnyccce0952025-02-03 22:44:361176 {kDeprecateFeedHeaderParameterEnlargeLogoAndFakebox, "true"}};
1177
1178const FeatureEntry::FeatureVariation kDeprecateFeedHeaderVariations[] = {
ginnnnnnny0e892172025-02-04 21:45:171179 {" (remove feed label)", kDeprecateFeedHeaderVariationRemoveFeedLabel,
1180 std::size(kDeprecateFeedHeaderVariationRemoveFeedLabel), nullptr},
ginnnnnnnyf398da822025-03-12 10:15:551181 {" (also add more spacing)",
ginnnnnnnya0c62d82025-03-07 04:22:111182 kDeprecateFeedHeaderVariationAbovePlusMoreSpacing,
1183 std::size(kDeprecateFeedHeaderVariationAbovePlusMoreSpacing), nullptr},
ginnnnnnny0e892172025-02-04 21:45:171184 {" (and enlarge doodle too)",
1185 kDeprecateFeedHeaderVariationAbovePlusEnlargeElements,
1186 std::size(kDeprecateFeedHeaderVariationAbovePlusEnlargeElements),
ginnnnnnnyccce0952025-02-03 22:44:361187 nullptr}};
1188
Briana McClure21685c42025-02-06 15:18:221189const FeatureEntry::FeatureParam kAnimatedDBPInFREWithActionButtons[] = {
1190 {first_run::kAnimatedDefaultBrowserPromoInFREExperimentType, "0"}};
1191const FeatureEntry::FeatureParam kAnimatedDBPInFREWithShowMeHow[] = {
1192 {first_run::kAnimatedDefaultBrowserPromoInFREExperimentType, "1"}};
1193const FeatureEntry::FeatureParam kAnimatedDBPInFREWithInstructions[] = {
1194 {first_run::kAnimatedDefaultBrowserPromoInFREExperimentType, "2"}};
1195
1196const FeatureEntry::FeatureVariation
1197 kAnimatedDefaultBrowserPromoInFREVariations[] = {
1198 {" - with Action Buttons", kAnimatedDBPInFREWithActionButtons,
1199 std::size(kAnimatedDBPInFREWithActionButtons), nullptr},
1200 {" - with Show Me How", kAnimatedDBPInFREWithShowMeHow,
1201 std::size(kAnimatedDBPInFREWithShowMeHow), nullptr},
1202 {" - with Instructions", kAnimatedDBPInFREWithInstructions,
1203 std::size(kAnimatedDBPInFREWithInstructions), nullptr}};
1204
Hira Mahmooddcc63d7f2025-02-19 17:28:571205const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm1[] = {
1206 {first_run::kBestFeaturesScreenInFirstRunParam, "1"}};
1207const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm2[] = {
1208 {first_run::kBestFeaturesScreenInFirstRunParam, "2"}};
1209const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm3[] = {
1210 {first_run::kBestFeaturesScreenInFirstRunParam, "3"}};
1211const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm4[] = {
1212 {first_run::kBestFeaturesScreenInFirstRunParam, "4"}};
1213const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm5[] = {
1214 {first_run::kBestFeaturesScreenInFirstRunParam, "5"}};
1215const FeatureEntry::FeatureParam kBestFeaturesScreenInFirstRunArm6[] = {
1216 {first_run::kBestFeaturesScreenInFirstRunParam, "6"}};
1217
1218const FeatureEntry::FeatureVariation kBestFeaturesScreenInFirstRunVariations[] =
1219 {{" - Variant A: General screen, after DB promo",
1220 kUpdatedFirstRunSequenceArm1,
1221 std::size(kBestFeaturesScreenInFirstRunArm1), nullptr},
1222 {" - Variant B: General screen, before DB promo",
1223 kBestFeaturesScreenInFirstRunArm2,
1224 std::size(kBestFeaturesScreenInFirstRunArm2), nullptr},
1225 {" - Variant C: General screen with passwords item",
1226 kBestFeaturesScreenInFirstRunArm3,
1227 std::size(kBestFeaturesScreenInFirstRunArm3), nullptr},
1228 {" - Variant D: Shopping users screen, variant C as fallback",
1229 kBestFeaturesScreenInFirstRunArm4,
1230 std::size(kBestFeaturesScreenInFirstRunArm4), nullptr},
1231 {" - Variant E: Show screen to signed-in users only",
1232 kBestFeaturesScreenInFirstRunArm5,
1233 std::size(kBestFeaturesScreenInFirstRunArm5), nullptr},
1234 {" - Variant F: Show address bar promo", kBestFeaturesScreenInFirstRunArm6,
1235 std::size(kBestFeaturesScreenInFirstRunArm6), nullptr}};
1236
Olivier ROBIN4d7cdb82025-03-11 09:33:471237const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionCrossValidate[] = {
1238 {kIOSOneTapMiniMapRestrictionCrossValidateParamName, "true"}};
1239const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionThreshold999[] = {
1240 {kIOSOneTapMiniMapRestrictionThreshholdParamName, "0.999"}};
1241const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionMinLength20[] = {
1242 {kIOSOneTapMiniMapRestrictionMinCharsParamName, "20"}};
1243const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionMaxSections6[] = {
1244 {kIOSOneTapMiniMapRestrictionMaxSectionsParamName, "6"}};
1245const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionLongWords4[] = {
1246 {kIOSOneTapMiniMapRestrictionLongestWordMinCharsParamName, "4"}};
1247const FeatureEntry::FeatureParam kIOSOneTapMiniMapRestrictionMinAlphaNum60[] = {
1248 {kIOSOneTapMiniMapRestrictionMinAlphanumProportionParamName, "0.6"}};
1249
1250const FeatureEntry::FeatureVariation kIOSOneTapMiniMapRestrictionsVariations[] =
1251 {{"Revalidate with NSDataDetector",
1252 kIOSOneTapMiniMapRestrictionCrossValidate,
1253 std::size(kIOSOneTapMiniMapRestrictionCrossValidate), nullptr},
1254 {"Confidence Level (0.999)", kIOSOneTapMiniMapRestrictionThreshold999,
1255 std::size(kIOSOneTapMiniMapRestrictionThreshold999), nullptr},
1256 {"Minimum address length (20 chars)",
1257 kIOSOneTapMiniMapRestrictionMinLength20,
1258 std::size(kIOSOneTapMiniMapRestrictionMinLength20), nullptr},
1259 {"Maximum sections (6)", kIOSOneTapMiniMapRestrictionMaxSections6,
1260 std::size(kIOSOneTapMiniMapRestrictionMaxSections6), nullptr},
1261 {"Longest word length (4)", kIOSOneTapMiniMapRestrictionLongWords4,
1262 std::size(kIOSOneTapMiniMapRestrictionLongWords4), nullptr},
1263 {"Proportion of alnum chars (60%)",
1264 kIOSOneTapMiniMapRestrictionMinAlphaNum60,
1265 std::size(kIOSOneTapMiniMapRestrictionMinAlphaNum60), nullptr}};
1266
Hira Mahmood4535b072025-03-14 16:45:591267const FeatureEntry::FeatureParam kFeedSwipeInProductHelpStaticInFirstRun[] = {
1268 {kFeedSwipeInProductHelpArmParam, "1"}};
1269const FeatureEntry::FeatureParam kFeedSwipeInProductHelpStaticInSecondRun[] = {
1270 {kFeedSwipeInProductHelpArmParam, "2"}};
1271const FeatureEntry::FeatureParam kFeedSwipeInProductHelpAnimated[] = {
1272 {kFeedSwipeInProductHelpArmParam, "3"}};
1273
1274const FeatureEntry::FeatureVariation kFeedSwipeInProductHelpVariations[] = {
1275 {" - Static IPH after the FRE", kFeedSwipeInProductHelpStaticInFirstRun,
1276 std::size(kFeedSwipeInProductHelpStaticInFirstRun), nullptr},
1277 {"- Static IPH after the second run",
1278 kFeedSwipeInProductHelpStaticInSecondRun,
1279 std::size(kFeedSwipeInProductHelpStaticInSecondRun), nullptr},
1280 {"- Animated IPH", kFeedSwipeInProductHelpAnimated,
1281 std::size(kFeedSwipeInProductHelpAnimated), nullptr}};
1282
Harsh Shukla3f8a8ca32025-04-10 22:20:491283// LINT.IfChange(AutofillVcnEnrollStrikeExpiryTime)
1284const FeatureEntry::FeatureParam kAutofillVcnEnrollStrikeExpiryTime_120Days[] =
1285 {{"autofill_vcn_strike_expiry_time_days", "120"}};
1286
1287const FeatureEntry::FeatureParam kAutofillVcnEnrollStrikeExpiryTime_60Days[] = {
1288 {"autofill_vcn_strike_expiry_time_days", "60"}};
1289
1290const FeatureEntry::FeatureParam kAutofillVcnEnrollStrikeExpiryTime_30Days[] = {
1291 {"autofill_vcn_strike_expiry_time_days", "30"}};
1292
1293const FeatureEntry::FeatureVariation
1294 kAutofillVcnEnrollStrikeExpiryTimeOptions[] = {
1295 {"120 days", kAutofillVcnEnrollStrikeExpiryTime_120Days,
1296 std::size(kAutofillVcnEnrollStrikeExpiryTime_120Days), nullptr},
1297 {"60 days", kAutofillVcnEnrollStrikeExpiryTime_60Days,
1298 std::size(kAutofillVcnEnrollStrikeExpiryTime_60Days), nullptr},
1299 {"30 days", kAutofillVcnEnrollStrikeExpiryTime_30Days,
1300 std::size(kAutofillVcnEnrollStrikeExpiryTime_30Days), nullptr}};
1301// LINT.ThenChange(/chrome/browser/about_flags.cc:AutofillVcnEnrollStrikeExpiryTime)
1302
Briana McClureb8eab3a2025-04-15 00:05:331303const FeatureEntry::FeatureParam kWelcomeBackInFirstRunArm1[] = {
1304 {first_run::kWelcomeBackInFirstRunParam, "1"}};
1305const FeatureEntry::FeatureParam kWelcomeBackInFirstRunArm2[] = {
1306 {first_run::kWelcomeBackInFirstRunParam, "2"}};
1307const FeatureEntry::FeatureParam kWelcomeBackInFirstRunArm3[] = {
1308 {first_run::kWelcomeBackInFirstRunParam, "3"}};
1309const FeatureEntry::FeatureParam kWelcomeBackInFirstRunArm4[] = {
1310 {first_run::kWelcomeBackInFirstRunParam, "4"}};
1311
1312const FeatureEntry::FeatureVariation kWelcomeBackInFirstRunVariations[] = {
1313 {" - Variant A: Basics with Locked Incognito", kWelcomeBackInFirstRunArm1,
1314 std::size(kWelcomeBackInFirstRunArm1), nullptr},
1315 {" - Variant B: Basics with Save & Autofill Passwords",
1316 kWelcomeBackInFirstRunArm2, std::size(kWelcomeBackInFirstRunArm2),
1317 nullptr},
1318 {" - Variant C: Productivity & Shopping", kWelcomeBackInFirstRunArm3,
1319 std::size(kWelcomeBackInFirstRunArm3), nullptr},
1320 {" - Variant D: Sign-in Benefits", kWelcomeBackInFirstRunArm4,
1321 std::size(kWelcomeBackInFirstRunArm4), nullptr},
1322};
1323
Hira Mahmoodaf5720b2025-05-15 16:20:571324const FeatureEntry::FeatureParam kBestOfAppFREArm1[] = {{"variant", "1"}};
Hira Mahmood48415c0c282025-06-03 15:06:481325const FeatureEntry::FeatureParam kBestOfAppFREArm2[] = {{"variant", "2"}};
Chris Lub16786a2025-04-22 17:44:331326const FeatureEntry::FeatureParam kBestOfAppFREArm4[] = {{"variant", "4"}};
Chris Lu211f0d42025-05-30 18:58:161327const FeatureEntry::FeatureParam kBestOfAppFREArm4Upload[] = {
1328 {"variant", "4"},
1329 {"manual_upload_uma", "true"}};
Chris Lub16786a2025-04-22 17:44:331330
1331const FeatureEntry::FeatureVariation kBestOfAppFREVariations[] = {
Hira Mahmoodaf5720b2025-05-15 16:20:571332 {" - Variant A: Lens Interactive Promo", kBestOfAppFREArm1,
Chris Lu211f0d42025-05-30 18:58:161333 std::size(kBestOfAppFREArm1), nullptr},
Hira Mahmood48415c0c282025-06-03 15:06:481334 {" - Variant A: Lens Animated Promo", kBestOfAppFREArm2,
1335 std::size(kBestOfAppFREArm2), nullptr},
Chris Lub16786a2025-04-22 17:44:331336 {" - Variant D: Guided Tour", kBestOfAppFREArm4,
Chris Lu211f0d42025-05-30 18:58:161337 std::size(kBestOfAppFREArm4), nullptr},
1338 {" - Variant D: Guided Tour with manual metric upload",
1339 kBestOfAppFREArm4Upload, std::size(kBestOfAppFREArm4Upload), nullptr},
Chris Lub16786a2025-04-22 17:44:331340};
1341
Nicolas Dossou-Gbetef302ddaf2025-04-24 11:18:211342const FeatureEntry::FeatureParam
1343 kInvalidateChoiceOnRestoreIsRetroactiveOption[] = {
1344 {"is_retroactive", "true"}};
1345const FeatureEntry::FeatureVariation
1346 kInvalidateSearchEngineChoiceOnRestoreVariations[] = {
1347 {"(retroactive)", kInvalidateChoiceOnRestoreIsRetroactiveOption,
1348 std::size(kInvalidateChoiceOnRestoreIsRetroactiveOption), nullptr}};
1349
Joemer Ramosdd80b992025-06-24 19:09:371350const FeatureEntry::FeatureParam kSingleScreenForBWGPromoConsent[] = {
1351 {kBWGPromoConsentParams, "1"}};
1352const FeatureEntry::FeatureParam kDoubleScreenForBWGPromoConsent[] = {
1353 {kBWGPromoConsentParams, "2"}};
1354const FeatureEntry::FeatureParam kSkipBWGPromoConsent[] = {
1355 {kBWGPromoConsentParams, "3"}};
1356const FeatureEntry::FeatureParam kForceBWGPromoConsent[] = {
1357 {kBWGPromoConsentParams, "4"}};
1358
1359const FeatureEntry::FeatureVariation kBWGPromoConsentVariations[] = {
1360 {"Single screen for BWG Promo Consent Flow",
1361 kSingleScreenForBWGPromoConsent,
1362 std::size(kSingleScreenForBWGPromoConsent), nullptr},
1363 {"Double screen for BWG Promo Consent Flow",
1364 kDoubleScreenForBWGPromoConsent,
1365 std::size(kDoubleScreenForBWGPromoConsent), nullptr},
1366 {"Skip FRE", kSkipBWGPromoConsent, std::size(kSkipBWGPromoConsent),
1367 nullptr},
1368 {"Force Consent", kForceBWGPromoConsent, std::size(kForceBWGPromoConsent),
1369 nullptr}};
1370
ginnnnnnny2bec7ee22025-06-04 18:57:071371const FeatureEntry::FeatureParam kOmniboxMobileParityEnableFeedForGoogleOnly[] =
1372 {{OmniboxFieldTrial::kMobileParityEnableFeedForGoogleOnly.name, "true"}};
1373const FeatureEntry::FeatureVariation kOmniboxMobileParityVariations[] = {
1374 {"- feed only when searching with Google",
1375 kOmniboxMobileParityEnableFeedForGoogleOnly,
1376 std::size(kOmniboxMobileParityEnableFeedForGoogleOnly), nullptr}};
1377
Joemer Ramosdd80b992025-06-24 19:09:371378const FeatureEntry::FeatureParam kPageActionMenuDirectEntryPoint[] = {
1379 {kPageActionMenuDirectEntryPointParam, "true"},
1380};
1381const FeatureEntry::FeatureVariation kPageActionMenuVariations[] = {
1382 {"Direct Entry Point", kPageActionMenuDirectEntryPoint,
1383 std::size(kPageActionMenuDirectEntryPoint), nullptr},
1384};
1385
Ron Saileraaf7d87d2025-06-30 15:09:551386// LINT.IfChange(FingerprintingProtectionFeatureParams)
1387const FeatureEntry::FeatureParam
1388 kEnableFingerprintingProtectionFilter_WithLogging[] = {
1389 {"activation_level", "enabled"},
1390 {"enable_console_logging", "true"}};
1391const FeatureEntry::FeatureParam
1392 kEnableFingerprintingProtectionFilter_DryRunWithLogging[] = {
1393 {"activation_level", "dry_run"},
1394 {"enable_console_logging", "true"}};
1395const FeatureEntry::FeatureVariation
1396 kEnableFingerprintingProtectionFilterVariations[] = {
1397 {" - with Console Logs",
1398 kEnableFingerprintingProtectionFilter_WithLogging,
1399 std::size(kEnableFingerprintingProtectionFilter_WithLogging), nullptr},
1400 {" - Dry Run with Console Logs",
1401 kEnableFingerprintingProtectionFilter_DryRunWithLogging,
1402 std::size(kEnableFingerprintingProtectionFilter_DryRunWithLogging),
1403 nullptr}};
1404
1405const FeatureEntry::FeatureParam
1406 kEnableFingerprintingProtectionFilterInIncognito_WithLogging[] = {
1407 {"activation_level", "enabled"},
1408 {"enable_console_logging", "true"}};
1409const FeatureEntry::FeatureVariation
1410 kEnableFingerprintingProtectionFilterInIncognitoVariations[] = {
1411 {" - with Console Logs",
1412 kEnableFingerprintingProtectionFilterInIncognito_WithLogging,
1413 std::size(
1414 kEnableFingerprintingProtectionFilterInIncognito_WithLogging),
1415 nullptr}};
1416// LINT.ThenChange(//chrome/browser/about_flags.cc:FingerprintingProtectionFeatureParams)
1417
Louis Romero0c617f32025-06-30 21:35:551418// LINT.IfChange(DataSharingVersioningChoices)
1419const FeatureEntry::Choice kDataSharingVersioningStateChoices[] = {
1420 {"Default", "", ""},
1421 {flag_descriptions::kDataSharingSharedDataTypesEnabled,
1422 switches::kEnableFeatures, "SharedDataTypesKillSwitch"},
1423 {flag_descriptions::kDataSharingSharedDataTypesEnabledWithUi,
1424 switches::kEnableFeatures,
1425 "SharedDataTypesKillSwitch,DataSharingEnableUpdateChromeUI"},
1426 {"Disabled", switches::kDisableFeatures,
1427 "SharedDataTypesKillSwitch, DataSharingEnableUpdateChromeUI"},
1428};
1429// LINT.ThenChange(//chrome/browser/about_flags.cc:DataSharingVersioningChoices)
1430
Cooper Knaak1e026562017-07-26 05:22:281431// To add a new entry, add to the end of kFeatureEntries. There are four
sdefresne14900ee2015-11-27 14:43:211432// distinct types of entries:
Cooper Knaak1e026562017-07-26 05:22:281433// . ENABLE_DISABLE_VALUE: entry is either enabled, disabled, or uses the
1434// default value for this feature. Use the ENABLE_DISABLE_VALUE_TYPE
sdefresne14900ee2015-11-27 14:43:211435// macro for this type supplying the command line to the macro.
1436// . MULTI_VALUE: a list of choices, the first of which should correspond to a
1437// deactivated state for this lab (i.e. no command line option). To specify
1438// this type of entry use the macro MULTI_VALUE_TYPE supplying it the
1439// array of choices.
Cooper Knaak1e026562017-07-26 05:22:281440// . FEATURE_VALUE: entry is associated with a base::Feature instance. Entry is
1441// either enabled, disabled, or uses the default value of the associated
1442// base::Feature instance. To specify this type of entry use the macro
1443// FEATURE_VALUE_TYPE supplying it the base::Feature instance.
1444// . FEATURE_WITH_PARAM_VALUES: a list of choices associated with a
1445// base::Feature instance. Choices corresponding to the default state, a
1446// universally enabled state, and a universally disabled state are
1447// automatically included. To specify this type of entry use the macro
1448// FEATURE_WITH_PARAMS_VALUE_TYPE supplying it the base::Feature instance and
1449// the array of choices.
1450//
sdefresne14900ee2015-11-27 14:43:211451// See the documentation of FeatureEntry for details on the fields.
1452//
1453// When adding a new choice, add it to the end of the list.
1454const flags_ui::FeatureEntry kFeatureEntries[] = {
Cooper Knaak1e026562017-07-26 05:22:281455 {"in-product-help-demo-mode-choice",
1456 flag_descriptions::kInProductHelpDemoModeName,
1457 flag_descriptions::kInProductHelpDemoModeDescription, flags_ui::kOsIos,
1458 FEATURE_WITH_PARAMS_VALUE_TYPE(
Tommy Nyquistc1d6dea12017-07-26 20:37:231459 feature_engagement::kIPHDemoMode,
1460 feature_engagement::kIPHDemoModeChoiceVariations,
Marc Treib2752e8b2017-08-04 14:12:091461 "IPH_DemoMode")},
Moe Ahmadic3fd7cd2018-05-11 21:40:221462 {"enable-autofill-credit-card-upload",
1463 flag_descriptions::kAutofillCreditCardUploadName,
1464 flag_descriptions::kAutofillCreditCardUploadDescription, flags_ui::kOsIos,
Anne Lim579b5732018-08-30 18:24:241465 FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)},
Moe Ahmadid6d5d172018-06-20 17:20:231466 {"use-sync-sandbox", flag_descriptions::kSyncSandboxName,
1467 flag_descriptions::kSyncSandboxDescription, flags_ui::kOsIos,
1468 SINGLE_VALUE_TYPE_AND_VALUE(
Victor Hugo Vianna Silva3cd7ae92022-02-09 20:49:511469 syncer::kSyncServiceURL,
Moe Ahmadid6d5d172018-06-20 17:20:231470 "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")},
1471 {"wallet-service-use-sandbox",
1472 flag_descriptions::kWalletServiceUseSandboxName,
1473 flag_descriptions::kWalletServiceUseSandboxDescription, flags_ui::kOsIos,
1474 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
1475 autofill::switches::kWalletServiceUseSandbox,
1476 "1",
1477 autofill::switches::kWalletServiceUseSandbox,
1478 "0")},
Mohamad Ahmadic4df81f2017-12-20 04:41:591479 {"show-autofill-type-predictions",
1480 flag_descriptions::kShowAutofillTypePredictionsName,
1481 flag_descriptions::kShowAutofillTypePredictionsDescription,
1482 flags_ui::kOsIos,
Florian Leimgruberf53ca392023-02-21 15:56:501483 FEATURE_VALUE_TYPE(
1484 autofill::features::test::kAutofillShowTypePredictions)},
Pier-Alexandre Bouchard4b20c08f2025-03-21 17:04:441485 {"sign-in-button-no-avatar", flag_descriptions::kSignInButtonNoAvatarName,
1486 flag_descriptions::kSignInButtonNoAvatarDescription, flags_ui::kOsIos,
1487 FEATURE_VALUE_TYPE(kSignInButtonNoAvatar)},
Pier-Alexandre Bouchard3b017bd62025-03-27 17:38:281488 {"ntp-background-customization",
1489 flag_descriptions::kNTPBackgroundCustomizationName,
1490 flag_descriptions::kNTPBackgroundCustomizationDescription,
1491 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kNTPBackgroundCustomization)},
Cheick Cisse2aa08b92025-04-30 23:33:371492 {"ntp-alpha-background-collections",
1493 flag_descriptions::kNtpAlphaBackgroundCollectionsName,
1494 flag_descriptions::kNtpAlphaBackgroundCollectionsDescription,
1495 flags_ui::kOsIos,
1496 FEATURE_VALUE_TYPE(ntp_features::kNtpAlphaBackgroundCollections)},
Benjamin Williamsdf18e7e2022-10-03 18:46:051497 {"fullscreen-promos-manager-skip-internal-limits",
1498 flag_descriptions::kFullscreenPromosManagerSkipInternalLimitsName,
1499 flag_descriptions::kFullscreenPromosManagerSkipInternalLimitsDescription,
1500 flags_ui::kOsIos,
1501 FEATURE_VALUE_TYPE(kFullscreenPromosManagerSkipInternalLimits)},
Kurt Horimotodc33af32018-05-01 01:39:141502 {"fullscreen-viewport-adjustment-experiment",
Chris Lu481a9322019-09-25 22:16:531503 flag_descriptions::kFullscreenSmoothScrollingName,
1504 flag_descriptions::kFullscreenSmoothScrollingDescription, flags_ui::kOsIos,
Aliona DANGLA4e3b4732023-03-22 09:35:191505 FEATURE_VALUE_TYPE(web::features::kSmoothScrollingDefault)},
Scott Yoder88062722025-06-11 13:28:301506 {"fullscreen-scroll-threshold",
1507 flag_descriptions::kFullscreenScrollThresholdName,
1508 flag_descriptions::kFullscreenScrollThresholdDescription, flags_ui::kOsIos,
1509 FEATURE_WITH_PARAMS_VALUE_TYPE(web::features::kFullscreenScrollThreshold,
1510 kFullscreenScrollThresholdVariations,
1511 "FullscreenScrollThreshold")},
Robbie Gibson1f37a5e2020-08-06 17:03:061512 {"webpage-default-zoom-from-dynamic-type",
1513 flag_descriptions::kWebPageDefaultZoomFromDynamicTypeName,
1514 flag_descriptions::kWebPageDefaultZoomFromDynamicTypeDescription,
1515 flags_ui::kOsIos,
1516 FEATURE_VALUE_TYPE(web::kWebPageDefaultZoomFromDynamicType)},
Robbie Gibson88f23962020-09-28 14:35:561517 {"webpage-alternative-text-zoom",
1518 flag_descriptions::kWebPageAlternativeTextZoomName,
1519 flag_descriptions::kWebPageAlternativeTextZoomDescription,
1520 flags_ui::kOsIos, FEATURE_VALUE_TYPE(web::kWebPageAlternativeTextZoom)},
Robbie Gibson1095b72c2022-06-06 17:03:341521 {"webpage-text-zoom-ipad", flag_descriptions::kWebPageTextZoomIPadName,
1522 flag_descriptions::kWebPageTextZoomIPadDescription, flags_ui::kOsIos,
1523 FEATURE_VALUE_TYPE(web::kWebPageTextZoomIPad)},
Stepan Khapugincc4e9842019-01-23 13:38:131524 {"omnibox-ui-max-autocomplete-matches",
1525 flag_descriptions::kOmniboxUIMaxAutocompleteMatchesName,
1526 flag_descriptions::kOmniboxUIMaxAutocompleteMatchesDescription,
1527 flags_ui::kOsIos,
1528 FEATURE_WITH_PARAMS_VALUE_TYPE(
1529 omnibox::kUIExperimentMaxAutocompleteMatches,
1530 kOmniboxUIMaxAutocompleteMatchesVariations,
1531 "OmniboxUIMaxAutocompleteVariations")},
Moe Ahmadi01028f22022-08-06 17:57:351532 {"omnibox-local-history-zero-suggest-beyond-ntp",
1533 flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPName,
1534 flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPDescription,
1535 flags_ui::kOsIos,
1536 FEATURE_VALUE_TYPE(omnibox::kLocalHistoryZeroSuggestBeyondNTP)},
Stepan Khapuginbac467e2022-05-06 21:11:541537 {"omnibox-max-zps-matches", flag_descriptions::kOmniboxMaxZPSMatchesName,
1538 flag_descriptions::kOmniboxMaxZPSMatchesDescription, flags_ui::kOsIos,
1539 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMaxZeroSuggestMatches,
1540 kOmniboxMaxZPSMatchesVariations,
1541 "OmniboxMaxZPSVariations")},
Stepan Khapuginbb638f22025-05-20 19:28:571542 {"omnibox-mobile-parity-update",
1543 flag_descriptions::kOmniboxMobileParityUpdateName,
1544 flag_descriptions::kOmniboxMobileParityUpdateDescription, flags_ui::kOsIos,
ginnnnnnny2bec7ee22025-06-04 18:57:071545 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxMobileParityUpdate,
1546 kOmniboxMobileParityVariations,
1547 "OmniboxMobileParityUpdate")},
Jérôme Lebelc374fdd2019-09-27 10:36:481548 {"force-startup-signin-promo",
1549 flag_descriptions::kForceStartupSigninPromoName,
1550 flag_descriptions::kForceStartupSigninPromoDescription, flags_ui::kOsIos,
Alice Wang345e09442021-07-05 09:03:291551 FEATURE_VALUE_TYPE(switches::kForceStartupSigninPromo)},
Tommy Martino6b4eb7e2020-06-25 18:25:411552 {"shared-highlighting-ios", flag_descriptions::kSharedHighlightingIOSName,
1553 flag_descriptions::kSharedHighlightingIOSDescription, flags_ui::kOsIos,
1554 FEATURE_VALUE_TYPE(kSharedHighlightingIOS)},
Sylvain Defresne9c107082020-10-27 16:39:131555#if BUILDFLAG(IOS_SCREEN_TIME_ENABLED)
edchin81467b82020-09-03 19:31:451556 {"screen-time-integration-ios",
1557 flag_descriptions::kScreenTimeIntegrationName,
1558 flag_descriptions::kScreenTimeIntegrationDescription, flags_ui::kOsIos,
1559 FEATURE_VALUE_TYPE(kScreenTimeIntegration)},
Sylvain Defresne9c107082020-10-27 16:39:131560#endif
Cheick Cisse76ade3d2020-12-16 00:15:111561 {"ios-shared-highlighting-color-change",
1562 flag_descriptions::kIOSSharedHighlightingColorChangeName,
1563 flag_descriptions::kIOSSharedHighlightingColorChangeDescription,
Cheick Cissed0b5bfe2021-02-11 14:23:071564 flags_ui::kOsIos,
1565 FEATURE_VALUE_TYPE(web::features::kIOSSharedHighlightingColorChange)},
Scott Yoderf8a821482024-10-28 19:32:551566 {"ios-reactivation-notifications",
1567 flag_descriptions::kIOSReactivationNotificationsName,
1568 flag_descriptions::kIOSReactivationNotificationsDescription,
Scott Yoderef1a0542024-11-04 17:23:071569 flags_ui::kOsIos,
1570 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSReactivationNotifications,
1571 kIOSReactivationNotificationsVariations,
1572 "IOSReactivationNotifications")},
Scott Yoder4411e7a2025-05-06 18:40:421573 {"ios-expanded-tips", flag_descriptions::kIOSExpandedTipsName,
1574 flag_descriptions::kIOSExpandedTipsDescription, flags_ui::kOsIos,
1575 FEATURE_VALUE_TYPE(kIOSExpandedTips)},
Nicolas Dossou-Gbete0669b6f22025-04-23 12:06:591576 {"invalidate-search-engine-choice-on-device-restore-detection",
Jérôme Lebele5718112025-03-28 14:51:001577 flag_descriptions::
Nicolas Dossou-Gbete0669b6f22025-04-23 12:06:591578 kInvalidateSearchEngineChoiceOnDeviceRestoreDetectionName,
1579 flag_descriptions::
1580 kInvalidateSearchEngineChoiceOnDeviceRestoreDetectionDescription,
Jérôme Lebele5718112025-03-28 14:51:001581 flags_ui::kOsIos,
Nicolas Dossou-Gbetef302ddaf2025-04-24 11:18:211582 FEATURE_WITH_PARAMS_VALUE_TYPE(
1583 switches::kInvalidateSearchEngineChoiceOnDeviceRestoreDetection,
1584 kInvalidateSearchEngineChoiceOnRestoreVariations,
1585 "InvalidateSearchEngineChoiceOnDeviceRestoreDetection")},
Scott Yoder88976342025-03-20 17:49:231586 {"ios-provides-app-notification-settings",
1587 flag_descriptions::kIOSProvidesAppNotificationSettingsName,
1588 flag_descriptions::kIOSProvidesAppNotificationSettingsDescription,
1589 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kIOSProvidesAppNotificationSettings)},
gogerald0ff29e52021-02-03 18:56:191590 {"start-surface", flag_descriptions::kStartSurfaceName,
1591 flag_descriptions::kStartSurfaceDescription, flags_ui::kOsIos,
gogerald0e39e3aa2021-02-10 18:41:231592 FEATURE_WITH_PARAMS_VALUE_TYPE(kStartSurface,
1593 kStartSurfaceVariations,
1594 "StartSurface")},
Nohemi Fernandezc00842a2021-07-26 11:47:341595 {"wait-threshold-seconds-for-capabilities-api",
1596 flag_descriptions::kWaitThresholdMillisecondsForCapabilitiesApiName,
1597 flag_descriptions::kWaitThresholdMillisecondsForCapabilitiesApiDescription,
1598 flags_ui::kOsIos,
1599 MULTI_VALUE_TYPE(kWaitThresholdMillisecondsForCapabilitiesApiChoices)},
Tina Wang686fa002024-05-18 10:10:061600 {"content-notification-experiment",
1601 flag_descriptions::kContentNotificationExperimentName,
1602 flag_descriptions::kContentNotificationExperimentDescription,
1603 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kContentNotificationExperiment)},
Tina Wang1cc9f472024-05-30 20:51:251604 {"content-notification-provisional-ignore-conditions",
1605 flag_descriptions::kContentNotificationProvisionalIgnoreConditionsName,
1606 flag_descriptions::
1607 kContentNotificationProvisionalIgnoreConditionsDescription,
1608 flags_ui::kOsIos,
1609 FEATURE_VALUE_TYPE(kContentNotificationProvisionalIgnoreConditions)},
Guillem Perez49e1df42023-08-23 22:15:241610 {"content-push-notifications",
1611 flag_descriptions::kContentPushNotificationsName,
1612 flag_descriptions::kContentPushNotificationsDescription, flags_ui::kOsIos,
Guillem Perez40086ef2023-11-20 20:03:521613 FEATURE_WITH_PARAMS_VALUE_TYPE(kContentPushNotifications,
1614 kContentPushNotificationsVariations,
1615 "ContentPushNotifications")},
Jason Hu67cfb0f2022-11-14 20:21:441616 {"enable-lens-in-omnibox-copied-image",
1617 flag_descriptions::kEnableLensInOmniboxCopiedImageName,
1618 flag_descriptions::kEnableLensInOmniboxCopiedImageDescription,
1619 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableLensInOmniboxCopiedImage)},
Radu Nitescuab5bf732024-09-18 14:07:401620 {"enable-lens-overlay", flag_descriptions::kEnableLensOverlayName,
1621 flag_descriptions::kEnableLensOverlayDescription, flags_ui::kOsIos,
1622 FEATURE_VALUE_TYPE(kEnableLensOverlay)},
Radu Nitescuf95b7d42024-12-04 10:18:011623 {"enable-lens-view-finder-unified-experience",
1624 flag_descriptions::kEnableLensViewFinderUnifiedExperienceName,
1625 flag_descriptions::kEnableLensViewFinderUnifiedExperienceDescription,
1626 flags_ui::kOsIos,
1627 FEATURE_VALUE_TYPE(kEnableLensViewFinderUnifiedExperience)},
Sergio Collazos9fcc6ed2021-10-06 00:58:031628 {"enable-disco-feed-endpoint",
1629 flag_descriptions::kEnableDiscoverFeedDiscoFeedEndpointName,
1630 flag_descriptions::kEnableDiscoverFeedDiscoFeedEndpointDescription,
1631 flags_ui::kOsIos,
Aliona DANGLA8fae66f02021-10-06 15:47:111632 FEATURE_VALUE_TYPE(kEnableDiscoverFeedDiscoFeedEndpoint)},
Tommy Martino7393d762021-10-12 17:59:281633 {"shared-highlighting-amp",
1634 flag_descriptions::kIOSSharedHighlightingAmpName,
1635 flag_descriptions::kIOSSharedHighlightingAmpDescription, flags_ui::kOsIos,
1636 FEATURE_VALUE_TYPE(shared_highlighting::kSharedHighlightingAmp)},
Matt Jones2e47b9692024-02-23 21:56:431637 {"track-by-default-mobile",
1638 commerce::flag_descriptions::kTrackByDefaultOnMobileName,
1639 commerce::flag_descriptions::kTrackByDefaultOnMobileDescription,
1640 flags_ui::kOsIos, FEATURE_VALUE_TYPE(commerce::kTrackByDefaultOnMobile)},
adamta39331592021-11-01 20:18:541641 {"ntp-view-hierarchy-repair",
1642 flag_descriptions::kNTPViewHierarchyRepairName,
1643 flag_descriptions::kNTPViewHierarchyRepairDescription, flags_ui::kOsIos,
adamta8da8dce2022-11-17 18:03:201644 FEATURE_VALUE_TYPE(kEnableNTPViewHierarchyRepair)},
Cheick Cisse39b6a182024-05-29 15:13:441645 {"price-insights", commerce::flag_descriptions::kPriceInsightsName,
1646 commerce::flag_descriptions::kPriceInsightsDescription, flags_ui::kOsIos,
1647 FEATURE_VALUE_TYPE(commerce::kPriceInsights)},
Cheick Cisse7c03928d2024-03-11 23:27:381648 {"price-insights-ios", commerce::flag_descriptions::kPriceInsightsIosName,
1649 commerce::flag_descriptions::kPriceInsightsIosDescription,
Cheick Cisse85457f22024-05-23 22:37:591650 flags_ui::kOsIos,
1651 FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kPriceInsightsIos,
1652 kPriceInsightsVariations,
1653 "PriceInsightsIos")},
1654 {"price-insights-high-price-ios",
1655 commerce::flag_descriptions::kPriceInsightsHighPriceIosName,
1656 commerce::flag_descriptions::kPriceInsightsHighPriceIosDescription,
1657 flags_ui::kOsIos,
1658 FEATURE_VALUE_TYPE(commerce::kPriceInsightsHighPriceIos)},
Raj Tb95d813542022-11-16 21:27:521659 {"enable-download-service-foreground-session",
1660 flag_descriptions::kDownloadServiceForegroundSessionName,
1661 flag_descriptions::kDownloadServiceForegroundSessionDescription,
1662 flags_ui::kOsIos,
1663 FEATURE_VALUE_TYPE(download::kDownloadServiceForegroundSessionIOSFeature)},
Olivier Robinffe767c2022-04-21 13:13:231664 {"enable-tflite-language-detection",
1665 flag_descriptions::kTFLiteLanguageDetectionName,
1666 flag_descriptions::kTFLiteLanguageDetectionDescription, flags_ui::kOsIos,
1667 FEATURE_VALUE_TYPE(translate::kTFLiteLanguageDetectionEnabled)},
Raj Ta921ffc2022-08-25 19:00:201668 {"optimization-guide-debug-logs",
1669 flag_descriptions::kOptimizationGuideDebugLogsName,
1670 flag_descriptions::kOptimizationGuideDebugLogsDescription,
1671 flags_ui::kOsIos,
1672 SINGLE_VALUE_TYPE(optimization_guide::switches::kDebugLoggingEnabled)},
Daniel Whited02b6962023-02-14 14:19:551673 {"optimization-guide-push-notifications",
1674 flag_descriptions::kOptimizationGuidePushNotificationClientName,
1675 flag_descriptions::kOptimizationGuidePushNotificationClientDescription,
1676 flags_ui::kOsIos,
1677 FEATURE_VALUE_TYPE(optimization_guide::features::kPushNotifications)},
David Jeanad303a92023-07-31 16:58:111678 {"intents-on-measurements", flag_descriptions::kMeasurementsName,
1679 flag_descriptions::kMeasurementsDescription, flags_ui::kOsIos,
1680 FEATURE_VALUE_TYPE(web::features::kEnableMeasurements)},
David Jeanf361ae9d2024-04-09 08:19:471681 {"enable-expkit-text-classifier-date",
1682 flag_descriptions::kEnableExpKitTextClassifierDateName,
1683 flag_descriptions::kEnableExpKitTextClassifierDateDescription,
1684 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableExpKitTextClassifierDate)},
1685 {"enable-expkit-text-classifier-address",
1686 flag_descriptions::kEnableExpKitTextClassifierAddressName,
1687 flag_descriptions::kEnableExpKitTextClassifierAddressDescription,
Raj T18a2c8c2023-03-15 17:20:151688 flags_ui::kOsIos,
David Jeanf361ae9d2024-04-09 08:19:471689 FEATURE_WITH_PARAMS_VALUE_TYPE(
1690 kEnableExpKitTextClassifierAddress,
1691 kEnableExpKitTextClassifierAddressVariations,
1692 "ExpKitTextClassifierAddress")},
1693 {"enable-expkit-text-classifier-phonenumber",
1694 flag_descriptions::kEnableExpKitTextClassifierPhoneNumberName,
1695 flag_descriptions::kEnableExpKitTextClassifierPhoneNumberDescription,
1696 flags_ui::kOsIos,
1697 FEATURE_WITH_PARAMS_VALUE_TYPE(
1698 kEnableExpKitTextClassifierPhoneNumber,
1699 kEnableExpKitTextClassifierPhoneNumberVariations,
1700 "ExpKitTextClassifierPhoneNumber")},
1701 {"enable-expkit-text-classifier-email",
1702 flag_descriptions::kEnableExpKitTextClassifierEmailName,
1703 flag_descriptions::kEnableExpKitTextClassifierEmailDescription,
1704 flags_ui::kOsIos,
1705 FEATURE_WITH_PARAMS_VALUE_TYPE(kEnableExpKitTextClassifierEmail,
1706 kEnableExpKitTextClassifierEmailVariations,
1707 "ExpKitTextClassifierEmail")},
Mustafa Emre Acerb8bb01f2022-07-20 19:43:251708 {"omnibox-https-upgrades", flag_descriptions::kOmniboxHttpsUpgradesName,
1709 flag_descriptions::kOmniboxHttpsUpgradesDescription, flags_ui::kOsIos,
1710 FEATURE_VALUE_TYPE(omnibox::kDefaultTypedNavigationsToHttps)},
Alexander Tekleb4643812023-01-06 23:12:301711 {"autofill-enable-ranking-formula-address-profiles",
1712 flag_descriptions::kAutofillEnableRankingFormulaAddressProfilesName,
1713 flag_descriptions::kAutofillEnableRankingFormulaAddressProfilesDescription,
1714 flags_ui::kOsIos,
1715 FEATURE_VALUE_TYPE(
1716 autofill::features::kAutofillEnableRankingFormulaAddressProfiles)},
Alexander Tekle35dfbbd2023-01-31 08:32:391717 {"autofill-enable-ranking-formula-credit-cards",
1718 flag_descriptions::kAutofillEnableRankingFormulaCreditCardsName,
1719 flag_descriptions::kAutofillEnableRankingFormulaCreditCardsDescription,
1720 flags_ui::kOsIos,
1721 FEATURE_VALUE_TYPE(
1722 autofill::features::kAutofillEnableRankingFormulaCreditCards)},
Sergio Collazos58558712022-05-18 17:24:021723 {"enable-feed-ablation", flag_descriptions::kEnableFeedAblationName,
1724 flag_descriptions::kEnableFeedAblationDescription, flags_ui::kOsIos,
1725 FEATURE_VALUE_TYPE(kEnableFeedAblation)},
Xu Lica2b56e2025-04-07 20:57:311726 {"enterprise-realtime-event-reporting-on-ios",
1727 flag_descriptions::kEnterpriseRealtimeEventReportingOnIOSName,
1728 flag_descriptions::kEnterpriseRealtimeEventReportingOnIOSDescription,
1729 flags_ui::kOsIos,
1730 FEATURE_VALUE_TYPE(
1731 enterprise_connectors::kEnterpriseRealtimeEventReportingOnIOS)},
Chris Luc36e3962023-04-11 21:50:521732 {"content-suggestions-magic-stack", flag_descriptions::kMagicStackName,
1733 flag_descriptions::kMagicStackDescription, flags_ui::kOsIos,
ginnnnnnnyde1c8082025-04-29 08:24:531734 FEATURE_VALUE_TYPE(kMagicStack)},
Alexis Hetue0b0dc12025-02-06 18:14:471735 {"ios-keyboard-accessory-upgrade-for-ipad",
1736 flag_descriptions::kIOSKeyboardAccessoryUpgradeForIPadName,
1737 flag_descriptions::kIOSKeyboardAccessoryUpgradeForIPadDescription,
1738 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kIOSKeyboardAccessoryUpgradeForIPad)},
Chris Lub0bad572023-08-07 18:13:291739 {"ios-magic-stack-segmentation-ranking",
1740 flag_descriptions::kSegmentationPlatformIosModuleRankerName,
1741 flag_descriptions::kSegmentationPlatformIosModuleRankerDescription,
1742 flags_ui::kOsIos,
Chris Lu6fd4eaf2023-08-08 18:29:301743 FEATURE_WITH_PARAMS_VALUE_TYPE(
1744 segmentation_platform::features::kSegmentationPlatformIosModuleRanker,
1745 kSegmentationPlatformIosModuleRankerVariations,
1746 flag_descriptions::kSegmentationPlatformIosModuleRankerName)},
Chris Lu63aa3942024-05-10 22:15:321747 {"ios-magic-stack-segmentation-ranking-caching",
1748 flag_descriptions::kSegmentationPlatformIosModuleRankerCachingName,
1749 flag_descriptions::kSegmentationPlatformIosModuleRankerCachingDescription,
1750 flags_ui::kOsIos,
1751 FEATURE_VALUE_TYPE(kSegmentationPlatformIosModuleRankerCaching)},
Chris Lu9e4f17b2024-05-09 00:54:111752 {"ios-magic-stack-segmentation-ranking-split-by-surface",
1753 flag_descriptions::kSegmentationPlatformIosModuleRankerSplitBySurfaceName,
1754 flag_descriptions::
1755 kSegmentationPlatformIosModuleRankerSplitBySurfaceDescription,
1756 flags_ui::kOsIos,
1757 FEATURE_VALUE_TYPE(
1758 segmentation_platform::features::
1759 kSegmentationPlatformIosModuleRankerSplitBySurface)},
Alexis Hetu5e726602023-12-15 15:18:281760 {"ios-password-bottom-sheet-autofocus",
1761 flag_descriptions::kIOSPasswordBottomSheetAutofocusName,
1762 flag_descriptions::kIOSPasswordBottomSheetAutofocusDescription,
1763 flags_ui::kOsIos,
1764 FEATURE_VALUE_TYPE(
1765 password_manager::features::kIOSPasswordBottomSheetAutofocus)},
Charlotte Cloutier18f0a5362024-07-16 13:23:041766 {"ios-proactive-password-generation-bottom-sheet",
1767 flag_descriptions::kIOSProactivePasswordGenerationBottomSheetName,
1768 flag_descriptions::kIOSProactivePasswordGenerationBottomSheetDescription,
1769 flags_ui::kOsIos,
1770 FEATURE_VALUE_TYPE(password_manager::features::
1771 kIOSProactivePasswordGenerationBottomSheet)},
Moe Ahmadi098519d82022-07-27 18:34:241772 {"omnibox-zero-suggest-prefetching",
1773 flag_descriptions::kOmniboxZeroSuggestPrefetchingName,
1774 flag_descriptions::kOmniboxZeroSuggestPrefetchingDescription,
1775 flags_ui::kOsIos, FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetching)},
Khalid Peer79df5652022-10-26 21:59:451776 {"omnibox-zero-suggest-prefetching-on-srp",
1777 flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPName,
1778 flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPDescription,
1779 flags_ui::kOsIos,
1780 FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnSRP)},
1781 {"omnibox-zero-suggest-prefetching-on-web",
1782 flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebName,
1783 flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebDescription,
1784 flags_ui::kOsIos,
1785 FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnWeb)},
Khalid Peer11b4b2c2022-10-12 20:53:471786 {"omnibox-zero-suggest-in-memory-caching",
1787 flag_descriptions::kOmniboxZeroSuggestInMemoryCachingName,
1788 flag_descriptions::kOmniboxZeroSuggestInMemoryCachingDescription,
1789 flags_ui::kOsIos,
1790 FEATURE_VALUE_TYPE(omnibox::kZeroSuggestInMemoryCaching)},
Ce Chenbdfaed22022-10-20 16:08:351791 {"omnibox-on-device-tail-suggestions",
1792 flag_descriptions::kOmniboxOnDeviceTailSuggestionsName,
1793 flag_descriptions::kOmniboxOnDeviceTailSuggestionsDescription,
1794 flags_ui::kOsIos, FEATURE_VALUE_TYPE(omnibox::kOnDeviceTailModel)},
Christian Xucf26d562022-07-06 09:28:361795 {"omnibox-max-url-matches", flag_descriptions::kOmniboxMaxURLMatchesName,
1796 flag_descriptions::kOmniboxMaxURLMatchesDescription, flags_ui::kOsIos,
1797 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxMaxURLMatches,
1798 kOmniboxMaxURLMatchesVariations,
1799 "OmniboxMaxURLMatches")},
Stepan Khapugin1f83c5ae2024-01-31 15:55:201800 {"omnibox-most-visited-tiles-horizontal-render-group",
1801 flag_descriptions::kMostVisitedTilesHorizontalRenderGroupName,
1802 flag_descriptions::kMostVisitedTilesHorizontalRenderGroupDescription,
1803 flags_ui::kOsIos,
1804 FEATURE_VALUE_TYPE(omnibox::kMostVisitedTilesHorizontalRenderGroup)},
Olivier Robin60d3a062022-07-06 17:34:061805 {"metrickit-non-crash-reports",
1806 flag_descriptions::kMetrickitNonCrashReportName,
1807 flag_descriptions::kMetrickitNonCrashReportDescription, flags_ui::kOsIos,
1808 FEATURE_VALUE_TYPE(kMetrickitNonCrashReport)},
Robbie Gibson1f5a57192024-11-07 23:04:111809 {"default-browser-banner-promo",
1810 flag_descriptions::kDefaultBrowserBannerPromoName,
1811 flag_descriptions::kDefaultBrowserBannerPromoDescription, flags_ui::kOsIos,
Robbie Gibsonae87bc02024-11-13 14:45:101812 FEATURE_VALUE_TYPE(kDefaultBrowserBannerPromo)},
Gayane Petrosyan5960a172023-06-19 15:40:171813 {"default-browser-promo-trigger-criteria-experiment",
1814 flag_descriptions::kDefaultBrowserTriggerCriteriaExperimentName,
1815 flag_descriptions::kDefaultBrowserTriggerCriteriaExperimentDescription,
1816 flags_ui::kOsIos,
Gayane Petrosyan01f711782024-02-21 23:00:211817 FEATURE_VALUE_TYPE(
1818 feature_engagement::kDefaultBrowserTriggerCriteriaExperiment)},
Gayane Petrosyancffeda12024-09-17 17:10:371819 {"blue-dot-on-tools-menu-button",
1820 flag_descriptions::kBlueDotOnToolsMenuButtonName,
1821 flag_descriptions::kBlueDotOnToolsMenuButtonDescription, flags_ui::kOsIos,
1822 FEATURE_VALUE_TYPE(kBlueDotOnToolsMenuButton)},
Ed Chin91e44992022-07-27 13:42:341823#if BUILDFLAG(IOS_BACKGROUND_MODE_ENABLED)
1824 {"feed-background-refresh-ios",
1825 flag_descriptions::kFeedBackgroundRefreshName,
1826 flag_descriptions::kFeedBackgroundRefreshDescription, flags_ui::kOsIos,
1827 FEATURE_WITH_PARAMS_VALUE_TYPE(kEnableFeedBackgroundRefresh,
1828 kFeedBackgroundRefreshVariations,
1829 "FeedBackgroundRefresh")},
Ed Chin178ec2a2023-02-10 22:21:261830#endif // BUILDFLAG(IOS_BACKGROUND_MODE_ENABLED)
Petro Akzhygitov2e2322e2023-04-25 16:26:571831 {"tab-grid-new-transitions", flag_descriptions::kTabGridNewTransitionsName,
1832 flag_descriptions::kTabGridNewTransitionsDescription, flags_ui::kOsIos,
1833 FEATURE_VALUE_TYPE(kTabGridNewTransitions)},
Daniel Whiteae1cb672022-12-14 18:25:251834 {"iph-price-notifications-while-browsing",
1835 flag_descriptions::kIPHPriceNotificationsWhileBrowsingName,
1836 flag_descriptions::kIPHPriceNotificationsWhileBrowsingDescription,
1837 flags_ui::kOsIos,
1838 FEATURE_VALUE_TYPE(
1839 feature_engagement::kIPHPriceNotificationsWhileBrowsingFeature)},
Ewann Pelledec2d042023-01-25 15:28:391840 {"shopping-list", commerce::flag_descriptions::kShoppingListName,
1841 commerce::flag_descriptions::kShoppingListDescription, flags_ui::kOsIos,
1842 FEATURE_VALUE_TYPE(commerce::kShoppingList)},
Ali Juma57849c42023-02-21 22:53:431843 {"notification-settings-menu-item",
1844 flag_descriptions::kNotificationSettingsMenuItemName,
1845 flag_descriptions::kNotificationSettingsMenuItemDescription,
1846 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kNotificationSettingsMenuItem)},
kalettucefb09e402023-02-27 18:35:531847 {"web-feed-feedback-reroute",
1848 flag_descriptions::kWebFeedFeedbackRerouteName,
1849 flag_descriptions::kWebFeedFeedbackRerouteDescription, flags_ui::kOsIos,
1850 FEATURE_VALUE_TYPE(kWebFeedFeedbackReroute)},
Olivier ROBINa229d2132023-03-21 12:44:201851 {"ios-browser-edit-menu-metrics",
1852 flag_descriptions::kIOSBrowserEditMenuMetricsName,
1853 flag_descriptions::kIOSBrowserEditMenuMetricsDescription, flags_ui::kOsIos,
1854 FEATURE_VALUE_TYPE(kIOSBrowserEditMenuMetrics)},
Benjamin Williams1dc8f2342024-01-04 21:25:551855 {"ios-docking-promo", flag_descriptions::kIOSDockingPromoName,
1856 flag_descriptions::kIOSDockingPromoDescription, flags_ui::kOsIos,
1857 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSDockingPromo,
1858 kIOSDockingPromoVariations,
1859 "IOSDockingPromo")},
Stepan Khapuginb2f49522023-04-03 18:25:241860 {"omnibox-grouping-framework-non-zps",
1861 flag_descriptions::kOmniboxGroupingFrameworkForTypedSuggestionsName,
1862 flag_descriptions::kOmniboxGroupingFrameworkForTypedSuggestionsDescription,
1863 flags_ui::kOsIos,
1864 FEATURE_VALUE_TYPE(omnibox::kGroupingFrameworkForNonZPS)},
Robbie Gibson0ea280602023-04-12 01:02:391865 {"only-access-clipboard-async",
1866 flag_descriptions::kOnlyAccessClipboardAsyncName,
1867 flag_descriptions::kOnlyAccessClipboardAsyncDescription, flags_ui::kOsIos,
1868 FEATURE_VALUE_TYPE(kOnlyAccessClipboardAsync)},
Tina Wangcda2c902023-05-25 17:39:451869 {"enable-signed-out-view-demotion",
1870 flag_descriptions::kEnableSignedOutViewDemotionName,
1871 flag_descriptions::kEnableSignedOutViewDemotionDescription,
1872 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableSignedOutViewDemotion)},
Stepan Khapugin72c74292024-06-19 16:48:331873 {"spotlight-never-retain-index",
1874 flag_descriptions::kSpotlightNeverRetainIndexName,
1875 flag_descriptions::kSpotlightNeverRetainIndexDescription, flags_ui::kOsIos,
1876 FEATURE_VALUE_TYPE(kSpotlightNeverRetainIndex)},
Benjamin Williams9773edd42023-06-26 20:22:071877 {"safety-check-magic-stack", flag_descriptions::kSafetyCheckMagicStackName,
1878 flag_descriptions::kSafetyCheckMagicStackDescription, flags_ui::kOsIos,
1879 FEATURE_VALUE_TYPE(kSafetyCheckMagicStack)},
Ewann Pelle9cd85b22023-07-12 14:42:011880 {"tab-resumption", flag_descriptions::kTabResumptionName,
1881 flag_descriptions::kTabResumptionDescription, flags_ui::kOsIos,
Olivier ROBIN953cc9a2025-03-17 11:40:461882 FEATURE_VALUE_TYPE(kTabResumption)},
Christian Xu07d600192023-07-24 12:29:521883 {"bottom-omnibox-default-setting",
1884 flag_descriptions::kBottomOmniboxDefaultSettingName,
1885 flag_descriptions::kBottomOmniboxDefaultSettingDescription,
1886 flags_ui::kOsIos,
1887 FEATURE_WITH_PARAMS_VALUE_TYPE(kBottomOmniboxDefaultSetting,
1888 kBottomOmniboxDefaultSettingVariations,
1889 "BottomOmniboxDefaultSetting")},
Elmehdi Rahmaouif5b76462024-06-24 10:44:461890 {"enable-save-to-photos-improvements",
1891 flag_descriptions::kIOSSaveToPhotosImprovementsName,
1892 flag_descriptions::kIOSSaveToPhotosImprovementsDescription,
1893 flags_ui::kOsIos,
1894 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSSaveToPhotosImprovements,
1895 kSaveToPhotosImprovementsVariations,
1896 "IOSSaveToPhotosImprovements")},
Jérôme Lebelcc9523e2024-10-08 13:34:011897 {"enable-identity-in-auth-error",
1898 flag_descriptions::kEnableIdentityInAuthErrorName,
1899 flag_descriptions::kEnableIdentityInAuthErrorDescription, flags_ui::kOsIos,
1900 FEATURE_VALUE_TYPE(switches::kEnableIdentityInAuthError)},
Mihai Sardarescucca83442024-10-16 12:19:131901 {"enable-asweb-authentication-session",
1902 flag_descriptions::kEnableASWebAuthenticationSessionName,
1903 flag_descriptions::kEnableASWebAuthenticationSessionDescription,
1904 flags_ui::kOsIos,
1905 FEATURE_VALUE_TYPE(switches::kEnableASWebAuthenticationSession)},
Christian Xu90e952f2023-09-13 09:05:281906 {"top-toolbar-theme-color", flag_descriptions::kThemeColorInTopToolbarName,
1907 flag_descriptions::kThemeColorInTopToolbarDescription, flags_ui::kOsIos,
1908 FEATURE_VALUE_TYPE(kThemeColorInTopToolbar)},
Rubin Deliallisi072bc842023-10-19 12:00:411909 {"privacy-guide-ios", flag_descriptions::kPrivacyGuideIosName,
1910 flag_descriptions::kPrivacyGuideIosDescription, flags_ui::kOsIos,
1911 FEATURE_VALUE_TYPE(kPrivacyGuideIos)},
Aliona DANGLA5971a8b2023-11-10 11:55:351912 {"fullscreen-improvement", flag_descriptions::kFullscreenImprovementName,
1913 flag_descriptions::kFullscreenImprovementDescription, flags_ui::kOsIos,
1914 FEATURE_VALUE_TYPE(kFullscreenImprovement)},
Vidhan Jain1199e202024-03-15 14:42:591915 {"autofill-enable-dynamically-loading-fields-on-input",
1916 flag_descriptions::
1917 kAutofillEnableDynamicallyLoadingFieldsForAddressInputName,
1918 flag_descriptions::
1919 kAutofillEnableDynamicallyLoadingFieldsForAddressInputDescription,
1920 flags_ui::kOsIos,
1921 FEATURE_VALUE_TYPE(kAutofillDynamicallyLoadsFieldsForAddressInput)},
aliaaborhamy00f89df2023-12-21 14:55:031922 {"share-in-web-context-menu-ios",
1923 flag_descriptions::kShareInWebContextMenuIOSName,
1924 flag_descriptions::kShareInWebContextMenuIOSDescription, flags_ui::kOsIos,
1925 FEATURE_VALUE_TYPE(kShareInWebContextMenuIOS)},
Mustafa Emre Acer05412ee2024-01-11 01:03:551926 {"https-upgrades-ios", flag_descriptions::kHttpsUpgradesName,
1927 flag_descriptions::kHttpsUpgradesDescription, flags_ui::kOsIos,
1928 FEATURE_VALUE_TYPE(security_interstitials::features::kHttpsUpgrades)},
Robbie Gibsona04957be2024-01-15 19:52:461929 {"contextual-panel", flag_descriptions::kContextualPanelName,
1930 flag_descriptions::kContextualPanelDescription, flags_ui::kOsIos,
Nicolas MacBethc738c4e2024-07-19 21:14:191931 FEATURE_WITH_PARAMS_VALUE_TYPE(kContextualPanel,
1932 kContextualPanelEntrypointArmVariations,
1933 "ContextualPanel")},
adamtad0e8cfc2024-01-16 18:43:471934 {"enable-ipad-feed-ghost-cards",
1935 flag_descriptions::kEnableiPadFeedGhostCardsName,
1936 flag_descriptions::kEnableiPadFeedGhostCardsDescription, flags_ui::kOsIos,
1937 FEATURE_VALUE_TYPE(kEnableiPadFeedGhostCards)},
Jason Hud445445f2024-02-02 18:28:121938 {"disable-lens-camera", flag_descriptions::kDisableLensCameraName,
1939 flag_descriptions::kDisableLensCameraDescription, flags_ui::kOsIos,
1940 FEATURE_VALUE_TYPE(kDisableLensCamera)},
Alexander Tekleeebe42b92024-02-23 21:27:151941 {"autofill-enable-card-benefits-for-american-express",
1942 flag_descriptions::kAutofillEnableCardBenefitsForAmericanExpressName,
1943 flag_descriptions::
1944 kAutofillEnableCardBenefitsForAmericanExpressDescription,
1945 flags_ui::kOsIos,
1946 FEATURE_VALUE_TYPE(
1947 autofill::features::kAutofillEnableCardBenefitsForAmericanExpress)},
Yishui Liub88a38c2024-02-28 08:46:551948 {"autofill-enable-card-benefits-sync",
1949 flag_descriptions::kAutofillEnableCardBenefitsSyncName,
1950 flag_descriptions::kAutofillEnableCardBenefitsSyncDescription,
1951 flags_ui::kOsIos,
1952 FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableCardBenefitsSync)},
Rubin Deliallisi4170b1c2024-02-28 16:15:421953 {"linked-services-setting-ios",
1954 flag_descriptions::kLinkedServicesSettingIosName,
1955 flag_descriptions::kLinkedServicesSettingIosDescription, flags_ui::kOsIos,
1956 FEATURE_VALUE_TYPE(kLinkedServicesSettingIos)},
hvs7c6cb402024-03-27 02:39:001957 {"autofill-enable-prefetching-risk-data-for-retrieval",
1958 flag_descriptions::kAutofillEnablePrefetchingRiskDataForRetrievalName,
Vincent Boisselle2e95b882024-03-29 21:03:561959 flag_descriptions::
1960 kAutofillEnablePrefetchingRiskDataForRetrievalDescription,
hvs7c6cb402024-03-27 02:39:001961 flags_ui::kOsIos,
Vincent Boisselle2e95b882024-03-29 21:03:561962 FEATURE_VALUE_TYPE(
1963 autofill::features::kAutofillEnablePrefetchingRiskDataForRetrieval)},
Vincent Boisselle371979ff2025-06-26 13:59:531964
Raj Tc66dd122024-04-01 18:48:391965 {"page-content-annotations", flag_descriptions::kPageContentAnnotationsName,
1966 flag_descriptions::kPageContentAnnotationsDescription, flags_ui::kOsIos,
1967 FEATURE_VALUE_TYPE(
1968 page_content_annotations::features::kPageContentAnnotations)},
1969 {"page-content-annotations-persist-salient-image-metadata",
1970 flag_descriptions::kPageContentAnnotationsPersistSalientImageMetadataName,
1971 flag_descriptions::
1972 kPageContentAnnotationsPersistSalientImageMetadataDescription,
1973 flags_ui::kOsIos,
1974 FEATURE_VALUE_TYPE(
1975 page_content_annotations::features::
1976 kPageContentAnnotationsPersistSalientImageMetadata)},
1977 {"page-content-annotations-remote-page-metadata",
1978 flag_descriptions::kPageContentAnnotationsRemotePageMetadataName,
1979 flag_descriptions::kPageContentAnnotationsRemotePageMetadataDescription,
1980 flags_ui::kOsIos,
1981 FEATURE_VALUE_TYPE(
1982 page_content_annotations::features::kRemotePageMetadata)},
1983 {"page-visibility-page-content-annotations",
1984 flag_descriptions::kPageVisibilityPageContentAnnotationsName,
1985 flag_descriptions::kPageVisibilityPageContentAnnotationsDescription,
1986 flags_ui::kOsIos,
1987 FEATURE_VALUE_TYPE(page_content_annotations::features::
1988 kPageVisibilityPageContentAnnotations)},
Daniel White7867261f2024-04-02 19:08:121989 {"enhanced-safe-browsing-promo",
1990 flag_descriptions::kEnhancedSafeBrowsingPromoName,
1991 flag_descriptions::kEnhancedSafeBrowsingPromoDescription, flags_ui::kOsIos,
Daniel Whiteb6285082024-05-03 18:00:021992 FEATURE_VALUE_TYPE(safe_browsing::kEnhancedSafeBrowsingPromo)},
Alexis Hetu37823762025-01-24 15:41:591993 {"cpe-automatic-passkey-upgrade",
1994 flag_descriptions::kCredentialProviderAutomaticPasskeyUpgradeName,
1995 flag_descriptions::kCredentialProviderAutomaticPasskeyUpgradeDescription,
1996 flags_ui::kOsIos,
1997 FEATURE_VALUE_TYPE(kCredentialProviderAutomaticPasskeyUpgrade)},
Alexis Hetu028acd32025-01-17 15:53:221998 {"cpe-passkey-prf-support",
1999 flag_descriptions::kCredentialProviderPasskeyPRFName,
2000 flag_descriptions::kCredentialProviderPasskeyPRFDescription,
2001 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kCredentialProviderPasskeyPRF)},
Sebsgfcd5b0b2024-04-09 08:18:322002 {"cpe-performance-improvements",
2003 flag_descriptions::kCredentialProviderPerformanceImprovementsName,
2004 flag_descriptions::kCredentialProviderPerformanceImprovementsDescription,
2005 flags_ui::kOsIos,
2006 FEATURE_VALUE_TYPE(kCredentialProviderPerformanceImprovements)},
Maria Kazinova0ee4fdd2025-01-22 20:06:592007 {"password-form-clientside-classifier",
2008 flag_descriptions::kPasswordFormClientsideClassifierName,
2009 flag_descriptions::kPasswordFormClientsideClassifierDescription,
2010 flags_ui::kOsIos,
2011 FEATURE_VALUE_TYPE(
2012 password_manager::features::kPasswordFormClientsideClassifier)},
Jérôme Lebel993c7e3d2024-07-08 14:05:352013 {"identity-disc-account-menu",
2014 flag_descriptions::kIdentityDiscAccountMenuName,
2015 flag_descriptions::kIdentityDiscAccountMenuDescription, flags_ui::kOsIos,
Jood78b9d8a2025-06-11 09:58:222016 FEATURE_VALUE_TYPE(kIdentityDiscAccountMenu)},
Jood Hajeer3867886d2024-07-29 16:15:352017 {"identity-confirmation-snackbar",
2018 flag_descriptions::kIdentityConfirmationSnackbarName,
2019 flag_descriptions::kIdentityConfirmationSnackbarDescription,
2020 flags_ui::kOsIos,
2021 FEATURE_WITH_PARAMS_VALUE_TYPE(
2022 kIdentityConfirmationSnackbar,
2023 kIdentityConfirmationSnackbarTestingVariations,
2024 "IdentityConfirmationSnackbar")},
Filipa Senrabe00cbe2024-04-19 14:21:332025 {"ios-quick-delete", flag_descriptions::kIOSQuickDeleteName,
2026 flag_descriptions::kIOSQuickDeleteDescription, flags_ui::kOsIos,
2027 FEATURE_VALUE_TYPE(kIOSQuickDelete)},
Ameur Hosni3d764c92024-05-28 14:11:122028 {"omnibox-suggestion-answer-migration",
2029 flag_descriptions::kOmniboxSuggestionAnswerMigrationName,
2030 flag_descriptions::kOmniboxSuggestionAnswerMigrationDescription,
2031 flags_ui::kOsIos,
2032 FEATURE_VALUE_TYPE(omnibox_feature_configs::SuggestionAnswerMigration::
Olivier Robin51ffd172024-05-29 08:56:302033 kOmniboxSuggestionAnswerMigration)},
Hira Mahmood6e2a894e2024-05-31 15:18:192034 {"send-tab-ios-push-notifications",
2035 flag_descriptions::kSendTabToSelfIOSPushNotificationsName,
2036 flag_descriptions::kSendTabToSelfIOSPushNotificationsDescription,
2037 flags_ui::kOsIos,
Hira Mahmood00c17e52024-10-09 14:30:482038 FEATURE_WITH_PARAMS_VALUE_TYPE(
2039 send_tab_to_self::kSendTabToSelfIOSPushNotifications,
2040 kSendTabIOSPushNotificationsVariations,
2041 "SendTabToSelfIOSPushNotifications")},
Olivier ROBINcb76f4fe2024-06-05 16:11:422042 {"page-image-service-optimization-guide-salient-images",
2043 flag_descriptions::kPageImageServiceSalientImageName,
2044 flag_descriptions::kPageImageServiceSalientImageDescription,
2045 flags_ui::kOsIos,
2046 FEATURE_WITH_PARAMS_VALUE_TYPE(
2047 page_image_service::kImageServiceOptimizationGuideSalientImages,
2048 kImageServiceOptimizationGuideSalientImagesVariations,
2049 "PageImageService")},
Elmehdi Rahmaouifafd5b72024-06-06 08:34:222050 {"downloaded-pdf-opening-ios", flag_descriptions::kDownloadedPDFOpeningName,
2051 flag_descriptions::kDownloadedPDFOpeningDescription, flags_ui::kOsIos,
2052 FEATURE_VALUE_TYPE(kDownloadedPDFOpening)},
Charles Yangf8e7adf2024-06-11 00:17:002053 {"lens-filters-ablation-mode-enabled",
2054 flag_descriptions::kLensFiltersAblationModeEnabledName,
2055 flag_descriptions::kLensFiltersAblationModeEnabledDescription,
2056 flags_ui::kOsIos,
2057 FEATURE_WITH_PARAMS_VALUE_TYPE(kLensFiltersAblationModeEnabled,
2058 kLensFiltersAblationModeVariations,
2059 "LensFiltersAblationMode")},
2060 {"lens-translate-toogle-mode-enabled",
2061 flag_descriptions::kLensTranslateToggleModeEnabledName,
2062 flag_descriptions::kLensTranslateToggleModeEnabledDescription,
2063 flags_ui::kOsIos,
2064 FEATURE_WITH_PARAMS_VALUE_TYPE(kLensTranslateToggleModeEnabled,
2065 kLensTranslateToggleModeVariations,
2066 "LensTranslateToggleMode")},
Quentin Pubertb0984c72024-06-12 15:41:592067 {"ios-choose-from-drive", flag_descriptions::kIOSChooseFromDriveName,
2068 flag_descriptions::kIOSChooseFromDriveDescription, flags_ui::kOsIos,
2069 FEATURE_VALUE_TYPE(kIOSChooseFromDrive)},
Nihar Majmudard559a9f2025-05-20 14:16:512070 {"omnibox-mia-zps", flag_descriptions::kOmniboxMiaZps,
2071 flag_descriptions::kOmniboxMiaZpsDescription, flags_ui::kOsIos,
Jian Li0e8f7d252025-06-09 22:05:422072 FEATURE_WITH_PARAMS_VALUE_TYPE(
2073 omnibox_feature_configs::MiaZPS::kOmniboxMiaZPS,
2074 kOmniboxMiaZpsVariations,
2075 "OmniboxMiaZpsVariations")},
Khalid Peer7cf75a22024-06-13 17:25:492076 {"omnibox-ml-log-url-scoring-signals",
2077 flag_descriptions::kOmniboxMlLogUrlScoringSignalsName,
2078 flag_descriptions::kOmniboxMlLogUrlScoringSignalsDescription,
2079 flags_ui::kOsIos, FEATURE_VALUE_TYPE(omnibox::kLogUrlScoringSignals)},
2080 {"omnibox-ml-url-piecewise-mapped-search-blending",
2081 flag_descriptions::kOmniboxMlUrlPiecewiseMappedSearchBlendingName,
2082 flag_descriptions::kOmniboxMlUrlPiecewiseMappedSearchBlendingDescription,
2083 flags_ui::kOsIos,
2084 FEATURE_WITH_PARAMS_VALUE_TYPE(
2085 omnibox::kMlUrlPiecewiseMappedSearchBlending,
2086 kMlUrlPiecewiseMappedSearchBlendingVariations,
2087 "MlUrlPiecewiseMappedSearchBlending")},
2088 {"omnibox-ml-url-score-caching",
2089 flag_descriptions::kOmniboxMlUrlScoreCachingName,
2090 flag_descriptions::kOmniboxMlUrlScoreCachingDescription, flags_ui::kOsIos,
2091 FEATURE_VALUE_TYPE(omnibox::kMlUrlScoreCaching)},
2092 {"omnibox-ml-url-scoring", flag_descriptions::kOmniboxMlUrlScoringName,
2093 flag_descriptions::kOmniboxMlUrlScoringDescription, flags_ui::kOsIos,
2094 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMlUrlScoring,
2095 kOmniboxMlUrlScoringVariations,
2096 "MlUrlScoring")},
2097 {"omnibox-ml-url-search-blending",
2098 flag_descriptions::kOmniboxMlUrlSearchBlendingName,
2099 flag_descriptions::kOmniboxMlUrlSearchBlendingDescription,
2100 flags_ui::kOsIos,
2101 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMlUrlSearchBlending,
2102 kMlUrlSearchBlendingVariations,
2103 "MlUrlScoring")},
2104 {"omnibox-ml-url-scoring-model",
2105 flag_descriptions::kOmniboxMlUrlScoringModelName,
2106 flag_descriptions::kOmniboxMlUrlScoringModelDescription, flags_ui::kOsIos,
Khalid Peer4501c1f2024-06-27 16:12:042107 FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kUrlScoringModel,
2108 kUrlScoringModelVariations,
2109 "MlUrlScoring")},
Siyu An4a486f02024-06-18 19:41:282110 {"autofill-show-manual-fill-for-virtual-cards",
2111 flag_descriptions::kAutofillShowManualFillForVirtualCardsName,
2112 flag_descriptions::kAutofillShowManualFillForVirtualCardsDescription,
2113 flags_ui::kOsIos,
2114 FEATURE_VALUE_TYPE(
2115 autofill::features::kAutofillShowManualFillForVirtualCards)},
Benjamin Williams0594caf2024-07-09 17:51:382116 {"safety-check-notifications",
2117 flag_descriptions::kSafetyCheckNotificationsName,
2118 flag_descriptions::kSafetyCheckNotificationsDescription, flags_ui::kOsIos,
2119 FEATURE_WITH_PARAMS_VALUE_TYPE(kSafetyCheckNotifications,
2120 kSafetyCheckNotificationsVariations,
2121 "SafetyCheckNotifications")},
Federica Germinarioa1fe0902024-07-12 08:28:462122 {"app-background-refresh-ios", flag_descriptions::kAppBackgroundRefreshName,
2123 flag_descriptions::kAppBackgroundRefreshDescription, flags_ui::kOsIos,
2124 FEATURE_VALUE_TYPE(kEnableAppBackgroundRefresh)},
Chris Lu3eba26312024-07-12 20:21:382125 {"home-memory-improvements", flag_descriptions::kHomeMemoryImprovementsName,
2126 flag_descriptions::kHomeMemoryImprovementsDescription, flags_ui::kOsIos,
2127 FEATURE_VALUE_TYPE(kHomeMemoryImprovements)},
Stephen McGruer8fe98b62024-07-16 13:10:132128 {"autofill-upload-card-request-timeout",
2129 flag_descriptions::kAutofillUploadCardRequestTimeoutName,
2130 flag_descriptions::kAutofillUploadCardRequestTimeoutDescription,
2131 flags_ui::kOsIos,
2132 FEATURE_WITH_PARAMS_VALUE_TYPE(
2133 autofill::features::kAutofillUploadCardRequestTimeout,
2134 kAutofillUploadCardRequestTimeoutOptions,
2135 "AutofillUploadCardRequestTimeout")},
Stephen McGruer0904cae2024-07-17 19:54:462136 {"autofill-vcn-enroll-request-timeout",
2137 flag_descriptions::kAutofillVcnEnrollRequestTimeoutName,
2138 flag_descriptions::kAutofillVcnEnrollRequestTimeoutDescription,
2139 flags_ui::kOsIos,
2140 FEATURE_WITH_PARAMS_VALUE_TYPE(
2141 autofill::features::kAutofillVcnEnrollRequestTimeout,
2142 kAutofillVcnEnrollRequestTimeoutOptions,
2143 "AutofillVcnEnrollRequestTimeout")},
Charles Yang98bef0c2024-07-19 12:24:142144 {"lens-web-page-load-optimization-enabled",
2145 flag_descriptions::kLensWebPageLoadOptimizationEnabledName,
2146 flag_descriptions::kLensWebPageLoadOptimizationEnabledDescription,
2147 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensWebPageLoadOptimizationEnabled)},
Eric Ekey4a930592024-07-19 18:58:142148 {"segmented-default-browser-promo",
2149 flag_descriptions::kSegmentedDefaultBrowserPromoName,
2150 flag_descriptions::kSegmentedDefaultBrowserPromoDescription,
Briana McClurec2b62f92024-10-29 15:35:062151 flags_ui::kOsIos,
2152 FEATURE_WITH_PARAMS_VALUE_TYPE(kSegmentedDefaultBrowserPromo,
2153 kSegmentedDefaultBrowserPromoVariations,
2154 "SegmentedDBP-Animation")},
Junhui He52294652024-07-23 23:50:152155 {"autofill-unmask-card-request-timeout",
2156 flag_descriptions::kAutofillUnmaskCardRequestTimeoutName,
2157 flag_descriptions::kAutofillUnmaskCardRequestTimeoutDescription,
2158 flags_ui::kOsIos,
2159 FEATURE_VALUE_TYPE(autofill::features::kAutofillUnmaskCardRequestTimeout)},
vincbe1379832024-08-06 19:08:122160 {"autofill-across-iframes", flag_descriptions::kAutofillAcrossIframesName,
2161 flag_descriptions::kAutofillAcrossIframesDescription, flags_ui::kOsIos,
2162 FEATURE_VALUE_TYPE(autofill::features::kAutofillAcrossIframesIos)},
Cristian Ciacu62fe1912024-08-07 10:14:502163 {"ios-page-info-last-visited",
2164 flag_descriptions::kPageInfoLastVisitedIOSName,
2165 flag_descriptions::kPageInfoLastVisitedIOSDescription, flags_ui::kOsIos,
2166 FEATURE_VALUE_TYPE(kPageInfoLastVisitedIOS)},
Daniel White1ced9e62024-08-15 19:27:382167 {"enable-trait-collection-registration",
2168 flag_descriptions::kEnableTraitCollectionRegistrationName,
2169 flag_descriptions::kEnableTraitCollectionRegistrationDescription,
2170 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableTraitCollectionRegistration)},
Ernesto Izquierdo Cluaebe0a0252024-08-19 22:05:542171 {"autofill-isolated-world-ios",
2172 flag_descriptions::kAutofillIsolatedWorldForJavascriptIOSName,
2173 flag_descriptions::kAutofillIsolatedWorldForJavascriptIOSDescription,
2174 flags_ui::kOsIos,
2175 FEATURE_VALUE_TYPE(kAutofillIsolatedWorldForJavascriptIos)},
thefrog8ed47452024-08-30 13:32:482176 {"safe-browsing-local-lists-use-sbv5",
2177 flag_descriptions::kSafeBrowsingLocalListsUseSBv5Name,
2178 flag_descriptions::kSafeBrowsingLocalListsUseSBv5Description,
2179 flags_ui::kOsIos, FEATURE_VALUE_TYPE(safe_browsing::kLocalListsUseSBv5)},
Chris Lu4c688e02024-09-07 00:48:082180 {"ios-price-tracking-notification-promo-card",
2181 flag_descriptions::kPriceTrackingPromoName,
2182 flag_descriptions::kPriceTrackingPromoDescription, flags_ui::kOsIos,
2183 FEATURE_VALUE_TYPE(commerce::kPriceTrackingPromo)},
Gloria Fang02964a442025-02-06 19:21:182184 {"ios-shop-card", flag_descriptions::kShopCardName,
2185 flag_descriptions::kShopCardDescription, flags_ui::kOsIos,
2186 FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kShopCard,
2187 kShopCardOverrideOptions,
2188 "ShopCard")},
David Maunder9b9dd1a2025-04-04 20:08:242189 {"ios-shop-card-impression-limits",
2190 flag_descriptions::kShopCardImpressionLimitsName,
2191 flag_descriptions::kShopCardImpressionLimitsDescription, flags_ui::kOsIos,
2192 FEATURE_VALUE_TYPE(commerce::kShopCardImpressionLimits)},
Chris Lu4c688e02024-09-07 00:48:082193 {"ios-segmentation-ephemeral-card-ranker",
2194 flag_descriptions::kSegmentationPlatformEphemeralCardRankerName,
2195 flag_descriptions::kSegmentationPlatformEphemeralCardRankerDescription,
2196 flags_ui::kOsIos,
2197 FEATURE_WITH_PARAMS_VALUE_TYPE(
2198 segmentation_platform::features::
2199 kSegmentationPlatformEphemeralCardRanker,
2200 kEphemeralCardRankerCardOverrideOptions,
2201 "SegmentationPlatformEphemeralCardRanker")},
Alexander Tekle8cf3c8e2024-09-13 21:38:072202 {"autofill-enable-log-form-events-to-all-parsed-form-types",
2203 flag_descriptions::kAutofillEnableLogFormEventsToAllParsedFormTypesName,
2204 flag_descriptions::
2205 kAutofillEnableLogFormEventsToAllParsedFormTypesDescription,
2206 flags_ui::kOsIos,
2207 FEATURE_VALUE_TYPE(
2208 autofill::features::kAutofillEnableLogFormEventsToAllParsedFormTypes)},
Radu Nitescu06133382024-10-21 18:33:292209 {"lens-overlay-enable-ipad-compatibility",
2210 flag_descriptions::kLensOverlayEnableIPadCompatibilityName,
2211 flag_descriptions::kLensOverlayEnableIPadCompatibilityDescription,
2212 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayEnableIPadCompatibility)},
Radu Nitescub3e06f92025-02-06 17:32:252213 {"lens-overlay-enable-landscape-compatibility",
2214 flag_descriptions::kLensOverlayEnableLandscapeCompatibilityName,
2215 flag_descriptions::kLensOverlayEnableLandscapeCompatibilityDescription,
2216 flags_ui::kOsIos,
2217 FEATURE_VALUE_TYPE(kLensOverlayEnableLandscapeCompatibility)},
Ameur Hosni22b62d92024-09-25 10:51:022218 {"lens-overlay-force-show-onboarding-screen",
2219 flag_descriptions::kLensOverlayForceShowOnboardingScreenName,
2220 flag_descriptions::kLensOverlayForceShowOnboardingScreenDescription,
2221 flags_ui::kOsIos,
2222 FEATURE_VALUE_TYPE(kLensOverlayForceShowOnboardingScreen)},
Gauthier Ambard766f4cf2024-09-26 16:56:252223 {"data-sharing", flag_descriptions::kDataSharingName,
2224 flag_descriptions::kDataSharingDescription, flags_ui::kOsIos,
2225 FEATURE_VALUE_TYPE(data_sharing::features::kDataSharingFeature)},
2226 {"data-sharing-join-only", flag_descriptions::kDataSharingJoinOnlyName,
2227 flag_descriptions::kDataSharingJoinOnlyDescription, flags_ui::kOsIos,
2228 FEATURE_VALUE_TYPE(data_sharing::features::kDataSharingJoinOnly)},
Rubin Deliallisib66a77a2024-10-02 18:09:482229 {"ios-soft-lock", flag_descriptions::kIOSSoftLockName,
2230 flag_descriptions::kIOSSoftLockDescription, flags_ui::kOsIos,
Rubin Deliallisi1d0b3ba2024-11-04 14:33:042231 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSSoftLock,
2232 kIOSSoftLockVariations,
2233 "IOSSoftLock")},
Marc Treib31e4f9f2024-10-07 09:55:542234 {"separate-profiles-for-managed-accounts",
2235 flag_descriptions::kSeparateProfilesForManagedAccountsName,
2236 flag_descriptions::kSeparateProfilesForManagedAccountsDescription,
Olivier ROBINb17c14b92024-10-09 13:49:132237 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kSeparateProfilesForManagedAccounts)},
Olivier ROBINb17c14b92024-10-09 13:49:132238 {"tab-resumption-images", flag_descriptions::kTabResumptionImagesName,
2239 flag_descriptions::kTabResumptionImagesDescription, flags_ui::kOsIos,
2240 FEATURE_WITH_PARAMS_VALUE_TYPE(kTabResumptionImages,
2241 kTabResumptionImagesVariations,
2242 "TabResumption1_5")},
Benjamin Williamsd7f854b2024-10-09 17:12:272243 {"segmentation-platform-tips-ephemeral-card",
2244 flag_descriptions::kSegmentationPlatformTipsEphemeralCardName,
2245 flag_descriptions::kSegmentationPlatformTipsEphemeralCardDescription,
2246 flags_ui::kOsIos,
2247 FEATURE_VALUE_TYPE(segmentation_platform::features::
vincbf23f7332024-10-11 19:32:122248 kSegmentationPlatformTipsEphemeralCard)},
Vincent Boisselle371979ff2025-06-26 13:59:532249
Charles Yang11dd8ab2024-10-24 19:15:532250 {"lens-unary-apis-with-http-transport-enabled",
2251 flag_descriptions::kLensUnaryApisWithHttpTransportEnabledName,
2252 flag_descriptions::kLensUnaryApisWithHttpTransportEnabledDescription,
2253 flags_ui::kOsIos,
2254 FEATURE_VALUE_TYPE(kLensUnaryApisWithHttpTransportEnabled)},
Christian Xu6db322d2024-10-25 14:12:492255 {"lens-overlay-enable-same-tab-navigation",
2256 flag_descriptions::kLensOverlayEnableSameTabNavigationName,
2257 flag_descriptions::kLensOverlayEnableSameTabNavigationDescription,
2258 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayEnableSameTabNavigation)},
Elmehdi Rahmaoui3c6e8012024-10-28 10:17:532259 {"ios-chrome-startup-parameters-async",
2260 flag_descriptions::kChromeStartupParametersAsyncName,
2261 flag_descriptions::kChromeStartupParametersAsyncDescription,
2262 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kChromeStartupParametersAsync)},
Elmehdi Rahmaoui63a0d8212025-01-07 11:42:482263 {"ios-youtube-incognito", flag_descriptions::kYoutubeIncognitoName,
2264 flag_descriptions::kYoutubeIncognitoDescription, flags_ui::kOsIos,
Elmehdi Rahmaoui543d35f2025-01-16 10:09:422265 FEATURE_WITH_PARAMS_VALUE_TYPE(kYoutubeIncognito,
2266 kYoutubeIncognitoVariations,
2267 "IOSYoutubeIncognito")},
Christian Xua8459472024-10-31 13:39:082268 {"lens-overlay-enable-location-bar-entrypoint",
2269 flag_descriptions::kLensOverlayEnableLocationBarEntrypointName,
2270 flag_descriptions::kLensOverlayEnableLocationBarEntrypointDescription,
2271 flags_ui::kOsIos,
2272 FEATURE_VALUE_TYPE(kLensOverlayEnableLocationBarEntrypoint)},
Radu Nitescuc42107b92025-02-13 17:32:272273 {"lens-overlay-enable-location-bar-entrypoint-on-srp",
2274 flag_descriptions::kLensOverlayEnableLocationBarEntrypointOnSRPName,
2275 flag_descriptions::kLensOverlayEnableLocationBarEntrypointOnSRPDescription,
2276 flags_ui::kOsIos,
2277 FEATURE_VALUE_TYPE(kLensOverlayEnableLocationBarEntrypointOnSRP)},
2278 {"lens-overlay-enable-lvf-escape-hatch",
2279 flag_descriptions::kLensOverlayEnableLVFEscapeHatchName,
2280 flag_descriptions::kLensOverlayEnableLVFEscapeHatchDescription,
Radu Nitescu0c21e3c2025-02-13 21:27:192281 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayEnableLVFEscapeHatch)},
Stepan Khapugin277221892025-04-07 13:01:092282 {"lens-overlay-disable-iph-pan-gesture",
2283 flag_descriptions::kLensOverlayDisableIPHPanGestureName,
2284 flag_descriptions::kLensOverlayDisableIPHPanGestureDescription,
2285 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayDisableIPHPanGesture)},
Christian Xudddf1e012024-10-31 18:34:012286 {"lens-overlay-disable-price-insights",
2287 flag_descriptions::kLensOverlayDisablePriceInsightsName,
2288 flag_descriptions::kLensOverlayDisablePriceInsightsDescription,
2289 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayDisablePriceInsights)},
Chris Lu9fd38c62024-11-04 22:22:592290 {"ios-provisional-notification-alert",
2291 flag_descriptions::kProvisionalNotificationAlertName,
2292 flag_descriptions::kProvisionalNotificationAlertDescription,
2293 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kProvisionalNotificationAlert)},
Hira Mahmood431c8ab2024-11-05 17:16:292294 {"ios-start-time-startup-remediations",
2295 flag_descriptions::kIOSStartTimeStartupRemediationsName,
2296 flag_descriptions::kIOSStartTimeStartupRemediationsDescription,
2297 flags_ui::kOsIos,
2298 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSStartTimeStartupRemediations,
2299 kIOSStartTimeStartupRemediationsVariations,
2300 "IOSStartTimeStartupRemediations")},
vincb7867dc042024-11-06 14:25:052301 {"autofill-throttle-doc-form-scans",
2302 flag_descriptions::kAutofillThrottleDocumentFormScanName,
2303 flag_descriptions::kAutofillThrottleDocumentFormScanDescription,
2304 flags_ui::kOsIos,
2305 FEATURE_WITH_PARAMS_VALUE_TYPE(kAutofillThrottleDocumentFormScanIos,
2306 kAutofillThrottleDocFormScanVariations,
2307 "AutofillThrottleDocumentFormScan")},
vincb2bf7f5c2024-11-06 17:18:092308 {"autofill-throttle-filtered-doc-form-scan",
2309 flag_descriptions::kAutofillThrottleFilteredDocumentFormScanName,
2310 flag_descriptions::kAutofillThrottleFilteredDocumentFormScanDescription,
2311 flags_ui::kOsIos,
2312 FEATURE_WITH_PARAMS_VALUE_TYPE(
2313 kAutofillThrottleFilteredDocumentFormScanIos,
2314 kAutofillThrottleFilteredDocFormScanVariations,
2315 "AutofillThrottleFilteredDocumentFormScan")},
vincb91781772024-11-08 17:13:122316 {"autofill-payments-sheet-v2",
2317 flag_descriptions::kAutofillPaymentsSheetV2Name,
2318 flag_descriptions::kAutofillPaymentsSheetV2Description, flags_ui::kOsIos,
2319 FEATURE_VALUE_TYPE(kAutofillPaymentsSheetV2Ios)},
Hira Mahmoodf8533dc2024-11-12 16:24:252320 {"ios-start-time-browser-background-remediations",
2321 flag_descriptions::kIOSStartTimeBrowserBackgroundRemediationsName,
2322 flag_descriptions::kIOSStartTimeBrowserBackgroundRemediationsDescription,
2323 flags_ui::kOsIos,
2324 FEATURE_WITH_PARAMS_VALUE_TYPE(
2325 kIOSStartTimeBrowserBackgroundRemediations,
2326 kIOSStartTimeBrowserBackgroundRemediationsVariations,
2327 "IOSStartTimeStartupRemediations")},
Charles Yangf57489f2024-11-27 13:58:282328 {"lens-unary-http-transport-enabled",
2329 flag_descriptions::kLensUnaryHttpTransportEnabledName,
2330 flag_descriptions::kLensUnaryHttpTransportEnabledDescription,
2331 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensUnaryHttpTransportEnabled)},
Charles Yang8b4687c2024-12-11 02:42:192332 {"lens-clearcut-background-upload-enabled",
2333 flag_descriptions::kLensClearcutBackgroundUploadEnabledName,
2334 flag_descriptions::kLensClearcutBackgroundUploadEnabledDescription,
2335 flags_ui::kOsIos,
2336 FEATURE_VALUE_TYPE(kLensClearcutBackgroundUploadEnabled)},
Hira Mahmood7577c9b672024-12-12 20:29:122337 {"set-up-list-shortened-duration",
2338 flag_descriptions::kSetUpListShortenedDurationName,
2339 flag_descriptions::kSetUpListShortenedDurationDescription,
2340 flags_ui::kOsIos,
2341 FEATURE_WITH_PARAMS_VALUE_TYPE(set_up_list::kSetUpListShortenedDuration,
2342 kSetUpListDurationVariations,
2343 "SetUpListShortenedDuration")},
Christian Xu375dcf72024-12-17 15:44:592344 {"enable-lens-overlay-price-insights-counterfactual",
2345 flag_descriptions::kLensOverlayPriceInsightsCounterfactualName,
2346 flag_descriptions::kLensOverlayPriceInsightsCounterfactualDescription,
2347 flags_ui::kOsIos,
2348 FEATURE_VALUE_TYPE(kLensOverlayPriceInsightsCounterfactual)},
Tommy Nyquiste1447512024-12-17 17:46:242349 {"collaboration-messaging", flag_descriptions::kCollaborationMessagingName,
2350 flag_descriptions::kCollaborationMessagingDescription, flags_ui::kOsIos,
Hailey Wang1f2d890a2024-12-26 20:23:562351 FEATURE_VALUE_TYPE(collaboration::features::kCollaborationMessaging)},
Charles Yangfd397e82024-12-19 17:11:452352 {"lens-single-tap-text-selection-disabled",
2353 flag_descriptions::kLensSingleTapTextSelectionDisabledName,
2354 flag_descriptions::kLensSingleTapTextSelectionDisabledDescription,
2355 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensSingleTapTextSelectionDisabled)},
Hira Mahmoodf6906a82025-01-02 17:55:092356 {"updated-fre-screens-sequence", flag_descriptions::kUpdatedFRESequenceName,
2357 flag_descriptions::kUpdatedFRESequenceDescription, flags_ui::kOsIos,
2358 FEATURE_WITH_PARAMS_VALUE_TYPE(first_run::kUpdatedFirstRunSequence,
2359 kUpdatedFirstRunSequenceVariations,
2360 "UpdatedFirstRunSequence")},
Hira Mahmood9f1c19092025-01-06 17:47:432361 {"set-up-list-without-sign-in-item",
2362 flag_descriptions::kSetUpListWithoutSignInItemName,
2363 flag_descriptions::kSetUpListWithoutSignInItemDescription,
2364 flags_ui::kOsIos,
2365 FEATURE_VALUE_TYPE(set_up_list::kSetUpListWithoutSignInItem)},
Fernando Ramirez3c16f9742025-01-07 22:40:362366 {"autofill-enable-card-benefits-for-bmo",
2367 flag_descriptions::kAutofillEnableCardBenefitsForBmoName,
2368 flag_descriptions::kAutofillEnableCardBenefitsForBmoDescription,
2369 flags_ui::kOsIos,
2370 FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableCardBenefitsForBmo)},
Olivier ROBIN1a0db2a2025-01-09 10:41:532371 {"ios-manage-account-storage",
2372 flag_descriptions::kIOSManageAccountStorageName,
2373 flag_descriptions::kIOSManageAccountStorageDescription, flags_ui::kOsIos,
2374 FEATURE_VALUE_TYPE(kIOSManageAccountStorage)},
Nohemi Fernandez4e66e7182025-01-16 10:57:322375 {"supervised-user-local-web-approvals",
2376 flag_descriptions::kSupervisedUserLocalWebApprovalsName,
2377 flag_descriptions::kSupervisedUserLocalWebApprovalsDescription,
2378 flags_ui::kOsIos, FEATURE_VALUE_TYPE(supervised_user::kLocalWebApprovals)},
Daniel Whitee4562ce2025-01-21 17:36:562379 {"download-auto-deletion", flag_descriptions::kDownloadAutoDeletionName,
2380 flag_descriptions::kDownloadAutoDeletionDescription, flags_ui::kOsIos,
2381 FEATURE_VALUE_TYPE(kDownloadAutoDeletionFeatureEnabled)},
Daniel White1a42e072025-06-27 15:30:342382 {"download-auto-deletion-clear-files-on-every-startup",
2383 flag_descriptions::kDownloadAutoDeletionClearFilesOnEveryStartupName,
2384 flag_descriptions::
2385 kDownloadAutoDeletionClearFilesOnEveryStartupDescription,
2386 flags_ui::kOsIos,
2387 FEATURE_VALUE_TYPE(kDownloadAutoDeletionClearFilesOnEveryStartup)},
Charles Yang8bd747632025-01-22 20:17:002388 {"lens-ink-multi-sample-mode-disabled",
2389 flag_descriptions::kLensInkMultiSampleModeDisabledName,
2390 flag_descriptions::kLensInkMultiSampleModeDisabledDescription,
2391 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensInkMultiSampleModeDisabled)},
Briana McClure09b0c3632025-01-23 21:57:182392 {"animated-default-browser-promo-in-fre",
2393 flag_descriptions::kAnimatedDefaultBrowserPromoInFREName,
2394 flag_descriptions::kAnimatedDefaultBrowserPromoInFREDescription,
2395 flags_ui::kOsIos,
Briana McClure21685c42025-02-06 15:18:222396 FEATURE_WITH_PARAMS_VALUE_TYPE(
2397 first_run::kAnimatedDefaultBrowserPromoInFRE,
2398 kAnimatedDefaultBrowserPromoInFREVariations,
2399 "AnimatedDBPInFRE-Layout")},
Fernando Ramirezfcdb52f2025-01-24 19:27:352400 {"autofill-enable-allowlist-for-bmo-card-category-benefits",
2401 flag_descriptions::kAutofillEnableAllowlistForBmoCardCategoryBenefitsName,
2402 flag_descriptions::
2403 kAutofillEnableAllowlistForBmoCardCategoryBenefitsDescription,
2404 flags_ui::kOsIos,
2405 FEATURE_VALUE_TYPE(
2406 autofill::features::
2407 kAutofillEnableAllowlistForBmoCardCategoryBenefits)},
“Prasanaa”96e15992025-01-30 15:44:352408 {"fullscreen-transition", flag_descriptions::kFullscreenTransitionName,
2409 flag_descriptions::kFullscreenTransitionDescription, flags_ui::kOsIos,
2410 FEATURE_WITH_PARAMS_VALUE_TYPE(kFullscreenTransition,
2411 kFullscreenTransitionVariations,
Scott Yoder45b2a17c2025-06-06 13:54:532412 "IOSFullscreenTransition")},
ginnnnnnnyccce0952025-02-03 22:44:362413 {"ios-deprecate-feed-header",
2414 flag_descriptions::kDeprecateFeedHeaderExperimentName,
2415 flag_descriptions::kDeprecateFeedHeaderExperimentDescription,
2416 flags_ui::kOsIos,
2417 FEATURE_WITH_PARAMS_VALUE_TYPE(kDeprecateFeedHeader,
2418 kDeprecateFeedHeaderVariations,
2419 "IOSDeprecateFeedHeader")},
“Prasanaa”6ad22342025-02-25 12:55:172420 {"refactor-toolbars-size", flag_descriptions::kRefactorToolbarsSizeName,
2421 flag_descriptions::kRefactorToolbarsSizeDescription, flags_ui::kOsIos,
2422 FEATURE_VALUE_TYPE(kRefactorToolbarsSize)},
Charles Yangfc3655b62025-02-05 21:49:262423 {"lens-gesture-text-selection-disabled",
2424 flag_descriptions::kLensGestureTextSelectionDisabledName,
2425 flag_descriptions::kLensGestureTextSelectionDisabledDescription,
2426 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensGestureTextSelectionDisabled)},
Sourav0691b752025-02-07 16:44:072427 {"add-address-manually", flag_descriptions::kAddAddressManuallyName,
2428 flag_descriptions::kAddAddressManuallyDescription, flags_ui::kOsIos,
2429 FEATURE_VALUE_TYPE(kAddAddressManually)},
Charles Yangca6175732025-02-11 18:21:392430 {"lens-vsint-param-enabled", flag_descriptions::kLensVsintParamEnabledName,
2431 flag_descriptions::kLensVsintParamEnabledDescription, flags_ui::kOsIos,
2432 FEATURE_VALUE_TYPE(kLensVsintParamEnabled)},
Charles Yang6b2639d2025-02-11 19:24:042433 {"lens-unary-client-data-header-enabled",
2434 flag_descriptions::kLensUnaryClientDataHeaderEnabledName,
2435 flag_descriptions::kLensUnaryClientDataHeaderEnabledDescription,
2436 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensUnaryClientDataHeaderEnabled)},
Elmehdi Rahmaoui8d7eb922025-02-13 11:40:542437 {"ios-new-share-extension", flag_descriptions::kNewShareExtensionName,
2438 flag_descriptions::kNewShareExtensionDescription, flags_ui::kOsIos,
2439 FEATURE_VALUE_TYPE(kNewShareExtension)},
Hira Mahmooddcc63d7f2025-02-19 17:28:572440 {"ios-best-features-screen",
2441 flag_descriptions::kBestFeaturesScreenInFirstRunName,
2442 flag_descriptions::kBestFeaturesScreenInFirstRunDescription,
2443 flags_ui::kOsIos,
2444 FEATURE_WITH_PARAMS_VALUE_TYPE(first_run::kBestFeaturesScreenInFirstRun,
2445 kBestFeaturesScreenInFirstRunVariations,
2446 "BestFeaturesScreenInFirstRun")},
Noémie St-Onge4a534a122025-02-25 19:14:092447 {"ios-passkeys-m2", flag_descriptions::kIOSPasskeysM2Name,
2448 flag_descriptions::kIOSPasskeysM2Description, flags_ui::kOsIos,
2449 FEATURE_VALUE_TYPE(kIOSPasskeysM2)},
Hira Mahmood51082d72025-02-26 21:04:402450 {"manual-log-uploads-in-the-fre",
2451 flag_descriptions::kManualLogUploadsInFREName,
2452 flag_descriptions::kManualLogUploadsInFREDescription, flags_ui::kOsIos,
2453 FEATURE_VALUE_TYPE(first_run::kManualLogUploadsInTheFRE)},
Kavita Soni42e1c422025-02-27 22:09:092454 {"autofill-disable-default-save-card-fix-flow-detection",
2455 flag_descriptions::kAutofillDisableDefaultSaveCardFixFlowDetectionName,
2456 flag_descriptions::
2457 kAutofillDisableDefaultSaveCardFixFlowDetectionDescription,
2458 flags_ui::kOsIos,
2459 FEATURE_VALUE_TYPE(
2460 autofill::features::kAutofillDisableDefaultSaveCardFixFlowDetection)},
Charles Yangbf00df62025-02-28 17:51:202461 {"lens-unary-api-salient-text-enabled",
2462 flag_descriptions::kLensUnaryApiSalientTextEnabledName,
2463 flag_descriptions::kLensUnaryApiSalientTextEnabledDescription,
2464 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensUnaryApiSalientTextEnabled)},
Ibrahim Kanouche16414ff82025-03-01 02:12:312465 {"non-modal-sign-in-promo", flag_descriptions::kNonModalSignInPromoName,
2466 flag_descriptions::kNonModalSignInPromoDescription, flags_ui::kOsIos,
2467 FEATURE_VALUE_TYPE(kNonModalSignInPromo)},
“Prasanaa”856d8272025-03-05 20:35:322468 {"suggest-strong-password-in-add-password",
2469 flag_descriptions::kSuggestStrongPasswordInAddPasswordName,
2470 flag_descriptions::kSuggestStrongPasswordInAddPasswordDescription,
2471 flags_ui::kOsIos,
2472 FEATURE_VALUE_TYPE(
2473 password_manager::features::kSuggestStrongPasswordInAddPassword)},
Kavita Soni754e40a2025-03-05 21:46:492474 {"autofill-save-card-bottomsheet",
2475 flag_descriptions::kAutofillSaveCardBottomSheetName,
2476 flag_descriptions::kAutofillSaveCardBottomSheetDescription,
2477 flags_ui::kOsIos,
2478 FEATURE_VALUE_TYPE(autofill::features::kAutofillSaveCardBottomSheet)},
Olivier ROBIN4d7cdb82025-03-11 09:33:472479 {"ios-one-tap-mini-map-restrictions",
2480 flag_descriptions::kIOSOneTapMiniMapRestrictionsName,
2481 flag_descriptions::kIOSOneTapMiniMapRestrictionsDescription,
2482 flags_ui::kOsIos,
2483 FEATURE_WITH_PARAMS_VALUE_TYPE(kIOSOneTapMiniMapRestrictions,
2484 kIOSOneTapMiniMapRestrictionsVariations,
2485 "IOSOneTapMiniMapRestrictions")},
Charles Yang3b1713c2025-03-11 17:14:152486 {"lens-block-fetch-objects-interaction-rpcs-on-separate-handshake",
2487 flag_descriptions::
2488 kLensBlockFetchObjectsInteractionRPCsOnSeparateHandshakeName,
2489 flag_descriptions::
2490 kLensBlockFetchObjectsInteractionRPCsOnSeparateHandshakeDescription,
2491 flags_ui::kOsIos,
2492 FEATURE_VALUE_TYPE(
2493 kLensBlockFetchObjectsInteractionRPCsOnSeparateHandshake)},
2494 {"lens-prewarm-hard-stickiness-in-input-selection",
2495 flag_descriptions::kLensPrewarmHardStickinessInInputSelectionName,
2496 flag_descriptions::kLensPrewarmHardStickinessInInputSelectionDescription,
2497 flags_ui::kOsIos,
2498 FEATURE_VALUE_TYPE(kLensPrewarmHardStickinessInInputSelection)},
2499 {"lens-prewarm-hard-stickiness-in-query-formulation",
2500 flag_descriptions::kLensPrewarmHardStickinessInQueryFormulationName,
2501 flag_descriptions::kLensPrewarmHardStickinessInQueryFormulationDescription,
2502 flags_ui::kOsIos,
2503 FEATURE_VALUE_TYPE(kLensPrewarmHardStickinessInQueryFormulation)},
Nicolas MacBeth12449f72025-03-11 21:19:482504 {"enhanced-calendar", flag_descriptions::kEnhancedCalendarName,
2505 flag_descriptions::kEnhancedCalendarDescription, flags_ui::kOsIos,
2506 FEATURE_VALUE_TYPE(kEnhancedCalendar)},
Gauthier Ambard5b124d302025-03-12 13:38:402507 {"data-sharing-debug-logs", flag_descriptions::kDataSharingDebugLogsName,
2508 flag_descriptions::kDataSharingDebugLogsDescription, flags_ui::kOsIos,
2509 SINGLE_VALUE_TYPE(data_sharing::kDataSharingDebugLoggingEnabled)},
Duong Dac9f84393332025-03-13 11:29:152510 {"supervised-user-block-interstitial-v3",
2511 flag_descriptions::kSupervisedUserBlockInterstitialV3Name,
2512 flag_descriptions::kSupervisedUserBlockInterstitialV3Description,
2513 flags_ui::kOsIos,
2514 FEATURE_VALUE_TYPE(supervised_user::kSupervisedUserBlockInterstitialV3)},
Charles Yang127155ae2025-03-13 21:00:382515 {"lens-fetch-srp-api-enabled",
2516 flag_descriptions::kLensFetchSrpApiEnabledName,
2517 flag_descriptions::kLensFetchSrpApiEnabledDescription, flags_ui::kOsIos,
2518 FEATURE_VALUE_TYPE(kLensFetchSrpApiEnabled)},
Joshua Tan07b01a62025-03-13 22:25:112519 {"autofill-enable-card-info-runtime-retrieval",
2520 flag_descriptions::kAutofillEnableCardInfoRuntimeRetrievalName,
2521 flag_descriptions::kAutofillEnableCardInfoRuntimeRetrievalDescription,
2522 flags_ui::kOsIos,
2523 FEATURE_VALUE_TYPE(
2524 autofill::features::kAutofillEnableCardInfoRuntimeRetrieval)},
Hira Mahmood4535b072025-03-14 16:45:592525 {"feed-swipe-iph", flag_descriptions::kFeedSwipeInProductHelpName,
2526 flag_descriptions::kFeedSwipeInProductHelpDescription, flags_ui::kOsIos,
2527 FEATURE_WITH_PARAMS_VALUE_TYPE(kFeedSwipeInProductHelp,
2528 kFeedSwipeInProductHelpVariations,
2529 "FeedSwipeInProductHelp")},
Charles Yang0b278cf2025-03-14 18:11:582530 {"lens-qr-code-parsing-fix", flag_descriptions::kLensQRCodeParsingFixName,
2531 flag_descriptions::kLensQRCodeParsingFixDescription, flags_ui::kOsIos,
2532 FEATURE_VALUE_TYPE(kLensQRCodeParsingFix)},
Chris Lu62796892025-03-18 15:02:152533 {"notification-collision-management",
2534 flag_descriptions::kNotificationCollisionManagementName,
2535 flag_descriptions::kNotificationCollisionManagementDescription,
2536 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kNotificationCollisionManagement)},
Radu Nitescu4c324072025-06-16 15:00:102537 {"ntp-mia-entrypoint", flag_descriptions::kNTPMIAEntrypointName,
2538 flag_descriptions::kNTPMIAEntrypointDescription, flags_ui::kOsIos,
2539 FEATURE_WITH_PARAMS_VALUE_TYPE(kNTPMIAEntrypoint,
2540 kNTPMIAEntrypointVariations,
2541 "kNTPMIAEntrypoint")},
Olivier ROBIN2ee3dbad2025-03-19 11:48:332542 {"ios-one-tap-mini-map-remove-section-breaks",
2543 flag_descriptions::kIOSOneTapMiniMapRemoveSectionBreaksName,
2544 flag_descriptions::kIOSOneTapMiniMapRemoveSectionBreaksDescription,
2545 flags_ui::kOsIos,
2546 FEATURE_VALUE_TYPE(kIOSOneTapMiniMapRemoveSectionsBreaks)},
Julia Sobiech562e2c42025-03-25 14:06:552547 {"autofill-enable-support-for-home-and-work",
2548 flag_descriptions::kAutofillEnableSupportForHomeAndWorkName,
2549 flag_descriptions::kAutofillEnableSupportForHomeAndWorkDescription,
2550 flags_ui::kOsIos,
2551 FEATURE_VALUE_TYPE(
2552 autofill::features::kAutofillEnableSupportForHomeAndWork)},
Christian Xuac188552025-03-26 13:24:132553 {"lens-overlay-navigation-history",
2554 flag_descriptions::kLensOverlayNavigationHistoryName,
2555 flag_descriptions::kLensOverlayNavigationHistoryDescription,
2556 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensOverlayNavigationHistory)},
Joemer Ramosdd80b992025-06-24 19:09:372557 {"page-action-menu", flag_descriptions::kPageActionMenuName,
2558 flag_descriptions::kPageActionMenuDescription, flags_ui::kOsIos,
2559 FEATURE_WITH_PARAMS_VALUE_TYPE(kPageActionMenu,
2560 kPageActionMenuVariations,
2561 "IOSPageActionMenu")},
2562 {"bwg-promo-consent", flag_descriptions::kBWGPromoConsentName,
2563 flag_descriptions::kBWGPromoConsentDescription, flags_ui::kOsIos,
2564 FEATURE_WITH_PARAMS_VALUE_TYPE(kBWGPromoConsent,
2565 kBWGPromoConsentVariations,
2566 "IOSBWGPromoConsent")},
Sven Zheng0631fc82025-03-28 01:22:552567 {"feedback-include-variations",
2568 flag_descriptions::kFeedbackIncludeVariationsName,
2569 flag_descriptions::kFeedbackIncludeVariationsDescription, flags_ui::kOsIos,
2570 FEATURE_VALUE_TYPE(variations::kFeedbackIncludeVariations)},
Daniel White89d57342025-04-01 14:16:182571 {"safe-browsing-trusted-url",
2572 flag_descriptions::kSafeBrowsingTrustedURLName,
2573 flag_descriptions::kSafeBrowsingTrustedURLDescription, flags_ui::kOsIos,
2574 FEATURE_VALUE_TYPE(kSafeBrowsingTrustedURL)},
Gauthier Ambard46298c162025-04-03 10:28:102575 {"contained-tab-group", flag_descriptions::kContainedTabGroupName,
2576 flag_descriptions::kContainedTabGroupDescription, flags_ui::kOsIos,
2577 FEATURE_VALUE_TYPE(kContainedTabGroup)},
Rafał Godlewskic64097e2025-04-09 13:07:372578 {"sync-trusted-vault-infobar-improvements",
2579 flag_descriptions::kSyncTrustedVaultInfobarImprovementsName,
2580 flag_descriptions::kSyncTrustedVaultInfobarImprovementsDescription,
2581 flags_ui::kOsIos,
2582 FEATURE_VALUE_TYPE(syncer::kSyncTrustedVaultInfobarImprovements)},
Yurii Lahodiukfdb799a62025-05-21 17:01:362583 {"sync-trusted-vault-infobar-message-improvements",
2584 flag_descriptions::kSyncTrustedVaultInfobarMessageImprovementsName,
2585 flag_descriptions::kSyncTrustedVaultInfobarMessageImprovementsDescription,
2586 flags_ui::kOsIos,
2587 FEATURE_VALUE_TYPE(syncer::kSyncTrustedVaultInfobarMessageImprovements)},
Quentin Pubert414ef292025-04-10 11:42:092588 {"ios-choose-from-drive-simulated-click",
2589 flag_descriptions::kIOSChooseFromDriveSimulatedClickName,
2590 flag_descriptions::kIOSChooseFromDriveSimulatedClickDescription,
2591 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kIOSChooseFromDriveSimulatedClick)},
Harsh Shukla3f8a8ca32025-04-10 22:20:492592 {"autofill-vcn-enroll-strike-expiry-time",
2593 flag_descriptions::kAutofillVcnEnrollStrikeExpiryTimeName,
2594 flag_descriptions::kAutofillVcnEnrollStrikeExpiryTimeDescription,
2595 flags_ui::kOsIos,
2596 FEATURE_WITH_PARAMS_VALUE_TYPE(
2597 autofill::features::kAutofillVcnEnrollStrikeExpiryTime,
2598 kAutofillVcnEnrollStrikeExpiryTimeOptions,
2599 "AutofillVcnEnrollStrikeExpiryTime")},
Ernesto Izquierdo Clua4ff435d2025-04-11 15:46:042600 {"enable-enterprise-url-filtering",
2601 flag_descriptions::kIOSEnterpriseRealtimeUrlFilteringName,
2602 flag_descriptions::kIOSEnterpriseRealtimeUrlFilteringDescription,
2603 flags_ui::kOsIos,
2604 FEATURE_VALUE_TYPE(
2605 enterprise_connectors::kIOSEnterpriseRealtimeUrlFiltering)},
Briana McClureb8eab3a2025-04-15 00:05:332606 {"ios-welcome-back-screen", flag_descriptions::kWelcomeBackInFirstRunName,
2607 flag_descriptions::kWelcomeBackInFirstRunDescription, flags_ui::kOsIos,
2608 FEATURE_WITH_PARAMS_VALUE_TYPE(first_run::kWelcomeBackInFirstRun,
2609 kWelcomeBackInFirstRunVariations,
2610 "WelcomeBackInFirstRun")},
Fernando Ramirezbd658b12025-04-15 21:02:482611 {"autofill-enable-flat-rate-card-benefits-from-curinos",
2612 flag_descriptions::kAutofillEnableFlatRateCardBenefitsFromCurinosName,
2613 flag_descriptions::
2614 kAutofillEnableFlatRateCardBenefitsFromCurinosDescription,
2615 flags_ui::kOsIos,
2616 FEATURE_VALUE_TYPE(
2617 autofill::features::kAutofillEnableFlatRateCardBenefitsFromCurinos)},
Quentin Pubertd06c4b72025-04-22 08:46:232618 {"reader-mode-enabled", flag_descriptions::kReaderModeName,
2619 flag_descriptions::kReaderModeDescription, flags_ui::kOsIos,
2620 FEATURE_VALUE_TYPE(kEnableReaderMode)},
Nohemi Fernandezc21fb752025-05-21 14:01:572621 {"reader-mode-debug-info-enabled",
2622 flag_descriptions::kReaderModeDebugInfoName,
2623 flag_descriptions::kReaderModeDebugInfoDescription, flags_ui::kOsIos,
2624 FEATURE_VALUE_TYPE(kEnableReaderModeDebugInfo)},
Nohemi Fernandez0901fae2025-05-26 09:19:002625 {"reader-mode-page-eligibility-enabled",
2626 flag_descriptions::kReaderModePageEligibilityHeuristicName,
2627 flag_descriptions::kReaderModePageEligibilityHeuristicDescription,
2628 flags_ui::kOsIos,
2629 FEATURE_VALUE_TYPE(kEnableReaderModePageEligibilityForToolsMenu)},
Nohemi Fernandezf64e5a82025-07-01 09:18:072630 {"reader-mode-readability-heuristic-enabled",
2631 flag_descriptions::kReaderModeReadabilityHeuristicName,
2632 flag_descriptions::kReaderModeReadabilityHeuristicDescription,
2633 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableReadabilityHeuristic)},
Chris Lub16786a2025-04-22 17:44:332634 {"best-of-app-fre", flag_descriptions::kBestOfAppFREName,
2635 flag_descriptions::kBestOfAppFREDescription, flags_ui::kOsIos,
2636 FEATURE_WITH_PARAMS_VALUE_TYPE(kBestOfAppFRE,
2637 kBestOfAppFREVariations,
2638 "BestOfAppFRE")},
ginnnnnnnya3bf0d42025-04-23 15:01:572639 {"use-new-feed-eligibility-service",
2640 flag_descriptions::kUseFeedEligibilityServiceName,
2641 flag_descriptions::kUseFeedEligibilityServiceDescription, flags_ui::kOsIos,
2642 FEATURE_VALUE_TYPE(kUseFeedEligibilityService)},
Sourav5b33e412025-04-28 13:55:552643 {"import-passwords-from-safari",
2644 flag_descriptions::kImportPasswordsFromSafariName,
2645 flag_descriptions::kImportPasswordsFromSafariDescription, flags_ui::kOsIos,
2646 FEATURE_VALUE_TYPE(kImportPasswordsFromSafari)},
Federica Germinario79b3b702025-05-05 15:52:502647 {"widgets-for-multiprofile", flag_descriptions::kWidgetsForMultiprofileName,
2648 flag_descriptions::kWidgetsForMultiprofileDescription, flags_ui::kOsIos,
Yurii Lahodiuke8e5fd62025-05-05 20:22:092649 FEATURE_VALUE_TYPE(kWidgetsForMultiprofile)},
2650 {"enable-password-manager-trusted-vault-widget",
2651 flag_descriptions::kIOSEnablePasswordManagerTrustedVaultWidgetName,
2652 flag_descriptions::kIOSEnablePasswordManagerTrustedVaultWidgetDescription,
2653 flags_ui::kOsIos,
2654 FEATURE_VALUE_TYPE(password_manager::features::
2655 kIOSEnablePasswordManagerTrustedVaultWidget)},
Gauthier Ambard4dbe6862025-05-13 13:51:042656 {"colorful-tab-group", flag_descriptions::kColorfulTabGroupName,
2657 flag_descriptions::kColorfulTabGroupDescription, flags_ui::kOsIos,
2658 FEATURE_VALUE_TYPE(kColorfulTabGroup)},
Charles Yang4df02b682025-05-13 21:48:352659 {"lens-load-aim-in-lens-result-page",
2660 flag_descriptions::kLensLoadAIMInLensResultPageName,
2661 flag_descriptions::kLensLoadAIMInLensResultPageDescription,
2662 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensLoadAIMInLensResultPage)},
Charles Yang349ae2b2025-05-14 19:18:242663 {"lens-exact-matches-enabled",
2664 flag_descriptions::kLensExactMatchesEnabledName,
2665 flag_descriptions::kLensExactMatchesEnabledDescription, flags_ui::kOsIos,
2666 FEATURE_VALUE_TYPE(kLensExactMatchesEnabled)},
Kavita Sonia13c8542025-05-14 22:01:042667 {"autofill-local-save-card-bottomsheet",
2668 flag_descriptions::kAutofillLocalSaveCardBottomSheetName,
2669 flag_descriptions::kAutofillLocalSaveCardBottomSheetDescription,
2670 flags_ui::kOsIos,
2671 FEATURE_VALUE_TYPE(autofill::features::kAutofillLocalSaveCardBottomSheet)},
yiwenqiana9c89002025-05-16 20:05:022672 {"autofill-enable-fpan-risk-based-authentication",
2673 flag_descriptions::kAutofillEnableFpanRiskBasedAuthenticationName,
2674 flag_descriptions::kAutofillEnableFpanRiskBasedAuthenticationDescription,
2675 flags_ui::kOsIos,
2676 FEATURE_VALUE_TYPE(
2677 autofill::features::kAutofillEnableFpanRiskBasedAuthentication)},
Siyu83b319e2025-05-23 00:34:202678 {"autofill-enable-multiple-request-in-virtual-card-downstream-enrollment",
2679 flag_descriptions::
2680 kAutofillEnableMultipleRequestInVirtualCardDownstreamEnrollmentName,
2681 flag_descriptions::
2682 kAutofillEnableMultipleRequestInVirtualCardDownstreamEnrollmentDescription,
2683 flags_ui::kOsIos,
2684 FEATURE_VALUE_TYPE(
2685 autofill::features::
2686 kAutofillEnableMultipleRequestInVirtualCardDownstreamEnrollment)},
Olivier ROBINf97e18a62025-05-27 13:09:292687 {"ios-mini-map-universal-links",
2688 flag_descriptions::kIOSMiniMapUniversalLinkName,
2689 flag_descriptions::kIOSMiniMapUniversalLinkDescription, flags_ui::kOsIos,
2690 FEATURE_VALUE_TYPE(kIOSMiniMapUniversalLink)},
Olivia Saul0c3db292025-06-03 00:59:592691 {"autofill-drop-names-with-invalid-characters-for-card-upload",
2692 flag_descriptions::
2693 kAutofillDropNamesWithInvalidCharactersForCardUploadName,
2694 flag_descriptions::
2695 kAutofillDropNamesWithInvalidCharactersForCardUploadDescription,
2696 flags_ui::kOsIos,
2697 FEATURE_VALUE_TYPE(
2698 autofill::features::
2699 kAutofillDropNamesWithInvalidCharactersForCardUpload)},
Olivia Saul9772a832025-06-03 02:09:042700 {"autofill-require-cvc-for-possible-card-update",
2701 flag_descriptions::kAutofillRequireCvcForPossibleCardUpdateName,
2702 flag_descriptions::kAutofillRequireCvcForPossibleCardUpdateDescription,
2703 flags_ui::kOsIos,
2704 FEATURE_VALUE_TYPE(
2705 autofill::features::kAutofillRequireCvcForPossibleCardUpdate)},
Noémie St-Onge02112572025-06-04 16:28:012706 {"ios-fill-recovery-password",
2707 flag_descriptions::kIOSFillRecoveryPasswordName,
2708 flag_descriptions::kIOSFillRecoveryPasswordDescription, flags_ui::kOsIos,
2709 FEATURE_VALUE_TYPE(password_manager::features::kIOSFillRecoveryPassword)},
Olivia Saul785703e2025-06-04 21:06:542710 {"disable-autofill-strike-system",
2711 flag_descriptions::kDisableAutofillStrikeSystemName,
2712 flag_descriptions::kDisableAutofillStrikeSystemDescription,
2713 flags_ui::kOsIos,
2714 FEATURE_VALUE_TYPE(autofill::features::kDisableAutofillStrikeSystem)},
Chris Lu17e1fa92025-06-04 22:25:572715 {"ios-default-browser-promo-propensity-model",
2716 flag_descriptions::kDefaultBrowserPromoPropensityModelName,
2717 flag_descriptions::kDefaultBrowserPromoPropensityModelDescription,
Chris Lu02a33aa912025-06-24 02:10:172718 flags_ui::kOsIos,
2719 FEATURE_VALUE_TYPE(
2720 segmentation_platform::features::kDefaultBrowserPromoPropensityModel)},
Matt Simmons8f3642e22025-06-09 19:53:242721 {"shopping-alternate-server",
2722 commerce::flag_descriptions::kShoppingAlternateServerName,
2723 commerce::flag_descriptions::kShoppingAlternateServerDescription,
2724 flags_ui::kOsIos, FEATURE_VALUE_TYPE(commerce::kShoppingAlternateServer)},
Elmehdi Rahmaouie56005112025-06-12 10:18:352725 {"share-extension-for-multiprofile",
2726 flag_descriptions::kShareExtensionForMultiprofileName,
2727 flag_descriptions::kShareExtensionForMultiprofileDescription,
2728 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kShareExtensionForMultiprofile)},
Jérôme Lebelc6f88d62025-06-26 13:56:352729 {"taiyaki", flag_descriptions::kTaiyakiName,
2730 flag_descriptions::kTaiyakiDescription, flags_ui::kOsIos,
2731 FEATURE_VALUE_TYPE(switches::kTaiyaki)},
Ruslan Abdikeev9a3af612025-06-25 22:20:372732 {"lens-camera-no-still-output-required",
2733 flag_descriptions::kLensCameraNoStillOutputRequiredName,
2734 flag_descriptions::kLensCameraNoStillOutputRequiredDescription,
2735 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensCameraNoStillOutputRequired)},
2736 {"lens-camera-unbinned-capture-formats-preferred",
2737 flag_descriptions::kLensCameraUnbinnedCaptureFormatsPreferredName,
2738 flag_descriptions::kLensCameraUnbinnedCaptureFormatsPreferredDescription,
2739 flags_ui::kOsIos,
2740 FEATURE_VALUE_TYPE(kLensCameraUnbinnedCaptureFormatsPreferred)},
2741 {"lens-continuous-zoom-enabled",
2742 flag_descriptions::kLensContinuousZoomEnabledName,
2743 flag_descriptions::kLensContinuousZoomEnabledDescription, flags_ui::kOsIos,
2744 FEATURE_VALUE_TYPE(kLensContinuousZoomEnabled)},
2745 {"lens-initial-lvf-zoom-level-90-percent",
2746 flag_descriptions::kLensInitialLvfZoomLevel90PercentName,
2747 flag_descriptions::kLensInitialLvfZoomLevel90PercentDescription,
2748 flags_ui::kOsIos, FEATURE_VALUE_TYPE(kLensInitialLvfZoomLevel90Percent)},
2749 {"lens-triple-camera-enabled",
2750 flag_descriptions::kLensTripleCameraEnabledName,
2751 flag_descriptions::kLensTripleCameraEnabledDescription, flags_ui::kOsIos,
2752 FEATURE_VALUE_TYPE(kLensTripleCameraEnabled)},
Ron Saileraaf7d87d2025-06-30 15:09:552753 // LINT.IfChange(FingerprintingProtectionFeatureEntries)
2754 {"enable-fingerprinting-protection-blocklist",
2755 flag_descriptions::kEnableFingerprintingProtectionBlocklistName,
2756 flag_descriptions::kEnableFingerprintingProtectionBlocklistDescription,
2757 flags_ui::kOsIos,
2758 FEATURE_WITH_PARAMS_VALUE_TYPE(
2759 fingerprinting_protection_filter::features::
2760 kEnableFingerprintingProtectionFilter,
2761 kEnableFingerprintingProtectionFilterVariations,
2762 "EnableFingerprintingProtectionFilter")},
2763 {"enable-fingerprinting-protection-blocklist-incognito",
2764 flag_descriptions::kEnableFingerprintingProtectionBlocklistInIncognitoName,
2765 flag_descriptions::
2766 kEnableFingerprintingProtectionBlocklistInIncognitoDescription,
2767 flags_ui::kOsIos,
2768 FEATURE_WITH_PARAMS_VALUE_TYPE(
2769 fingerprinting_protection_filter::features::
2770 kEnableFingerprintingProtectionFilterInIncognito,
2771 kEnableFingerprintingProtectionFilterInIncognitoVariations,
2772 "EnableFingerprintingProtectionFilterInIncognito")},
2773 // LINT.ThenChange(//chrome/browser/about_flags.cc:FingerprintingProtectionFeatureEntries)
Louis Romero0c617f32025-06-30 21:35:552774 // LINT.IfChange(DataSharingVersioning)
2775 {"shared-data-types-kill-switch",
2776 flag_descriptions::kDataSharingVersioningStatesName,
2777 flag_descriptions::kDataSharingVersioningStatesDescription,
2778 flags_ui::kOsIos, MULTI_VALUE_TYPE(kDataSharingVersioningStateChoices)},
2779 // LINT.ThenChange(//chrome/browser/about_flags.cc:DataSharingVersioning)
Yurii Lahodiuke8e5fd62025-05-05 20:22:092780};
sdefresne14900ee2015-11-27 14:43:212781
Rohit Raobed794c2020-04-27 15:27:452782bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
2783 return false;
2784}
2785
2786flags_ui::FlagsState& GetGlobalFlagsState() {
2787 static base::NoDestructor<flags_ui::FlagsState> flags_state(kFeatureEntries,
2788 nullptr);
2789 return *flags_state;
2790}
David Jean5ca263c2021-08-18 09:19:302791// Creates the experimental test policies map, used by AsyncPolicyLoader and
2792// PolicyLoaderIOS to locally enable policies.
Vincent Boisselleed0e6f1a2021-11-09 06:47:342793NSMutableDictionary* CreateExperimentalTestingPolicies() {
sdefresne14900ee2015-11-27 14:43:212794 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
2795
Guillaume Jenkins25e9bd72020-08-27 17:39:062796 // Shared variables for all enterprise experimental flags.
Guillaume Jenkins57606d72020-08-13 17:32:552797 NSMutableDictionary* testing_policies = [[NSMutableDictionary alloc] init];
Guillaume Jenkins25e9bd72020-08-27 17:39:062798 NSMutableArray* allowed_experimental_policies = [[NSMutableArray alloc] init];
Guillaume Jenkins57606d72020-08-13 17:32:552799
Guillaume Jenkins25e9bd72020-08-27 17:39:062800 // Set some sample policy values for testing if EnableSamplePolicies is set to
2801 // true.
Guillaume Jenkinseeb7007c2020-06-25 22:55:402802 if ([defaults boolForKey:@"EnableSamplePolicies"]) {
Guillaume Jenkins57606d72020-08-13 17:32:552803 [testing_policies addEntriesFromDictionary:@{
Tina Wang59d0b7e2020-08-11 04:41:012804 base::SysUTF8ToNSString(policy::key::kAutofillAddressEnabled) : @NO,
2805
Guillaume Jenkinseeb7007c2020-06-25 22:55:402806 base::SysUTF8ToNSString(policy::key::kAutofillCreditCardEnabled) : @NO,
2807
2808 // 2 = Disable all variations
2809 base::SysUTF8ToNSString(policy::key::kChromeVariations) : @2,
2810
2811 // 2 = Do not allow any site to show popups
2812 base::SysUTF8ToNSString(policy::key::kDefaultPopupsSetting) : @2,
2813
Tina Wang5abee802020-07-29 23:09:522814 // Set default search engine.
2815 base::SysUTF8ToNSString(policy::key::kDefaultSearchProviderEnabled) :
2816 @YES,
2817 base::SysUTF8ToNSString(policy::key::kDefaultSearchProviderSearchURL) :
2818 @"http://www.google.com/search?q={searchTerms}",
2819 base::SysUTF8ToNSString(policy::key::kDefaultSearchProviderName) :
Tina Wang7cd0a062020-09-15 21:31:022820 @"TestEngine",
Tina Wang5abee802020-07-29 23:09:522821
Tina Wang89068c82020-10-29 15:51:502822 base::SysUTF8ToNSString(policy::key::kEditBookmarksEnabled) : @NO,
2823
Gauthier Ambard21b23702021-04-16 16:11:272824 base::SysUTF8ToNSString(policy::key::kNTPContentSuggestionsEnabled) : @NO,
2825
Tina Wang59d0b7e2020-08-11 04:41:012826 base::SysUTF8ToNSString(policy::key::kTranslateEnabled) : @NO,
Tina Wang54dddfc22020-08-20 22:34:532827
2828 // 2 = Enhanced safe browsing protection
2829 base::SysUTF8ToNSString(policy::key::kSafeBrowsingProtectionLevel) : @2,
2830
2831 base::SysUTF8ToNSString(policy::key::kSearchSuggestEnabled) : @YES,
Hira Mahmooda53b8d632023-01-03 10:03:292832
2833 base::SysUTF8ToNSString(policy::key::kAppStoreRatingEnabled) : @NO,
Guillaume Jenkins57606d72020-08-13 17:32:552834 }];
2835 }
2836
Ewann227a3c02021-04-19 12:04:542837 if ([defaults boolForKey:@"EnableSyncDisabledPolicy"]) {
Guillaume Jenkinsfe46d3a2021-04-26 19:51:042838 NSString* sync_policy_key =
2839 base::SysUTF8ToNSString(policy::key::kSyncDisabled);
David Jean5ca263c2021-08-18 09:19:302840 [testing_policies addEntriesFromDictionary:@{sync_policy_key : @YES}];
Ewann227a3c02021-04-19 12:04:542841 }
Ewann227a3c02021-04-19 12:04:542842
Ewann570a6302021-08-17 07:22:422843 // SyncTypesListDisabled policy.
2844 NSString* Sync_types_list_disabled_key =
2845 base::SysUTF8ToNSString(policy::key::kSyncTypesListDisabled);
2846 NSMutableArray* Sync_types_list_disabled_values =
2847 [[NSMutableArray alloc] init];
2848 if ([defaults boolForKey:@"SyncTypesListBookmarks"]) {
2849 [Sync_types_list_disabled_values addObject:@"bookmarks"];
2850 }
2851 if ([defaults boolForKey:@"SyncTypesListReadingList"]) {
2852 [Sync_types_list_disabled_values addObject:@"readingList"];
2853 }
2854 if ([defaults boolForKey:@"SyncTypesListPreferences"]) {
2855 [Sync_types_list_disabled_values addObject:@"preferences"];
2856 }
2857 if ([defaults boolForKey:@"SyncTypesListPasswords"]) {
2858 [Sync_types_list_disabled_values addObject:@"passwords"];
2859 }
2860 if ([defaults boolForKey:@"SyncTypesListAutofill"]) {
2861 [Sync_types_list_disabled_values addObject:@"autofill"];
2862 }
2863 if ([defaults boolForKey:@"SyncTypesListTypedUrls"]) {
2864 [Sync_types_list_disabled_values addObject:@"typedUrls"];
2865 }
2866 if ([defaults boolForKey:@"SyncTypesListTabs"]) {
2867 [Sync_types_list_disabled_values addObject:@"tabs"];
2868 }
2869 if ([Sync_types_list_disabled_values count]) {
2870 [testing_policies addEntriesFromDictionary:@{
2871 Sync_types_list_disabled_key : Sync_types_list_disabled_values
2872 }];
Ewann570a6302021-08-17 07:22:422873 }
2874
Gauthier Ambard073eaa92021-11-22 15:24:132875 // If an incognito mode availability is set, set the value.
Tina Wangc6bcf572021-01-27 18:15:522876 NSString* incognito_policy_key =
2877 base::SysUTF8ToNSString(policy::key::kIncognitoModeAvailability);
2878 NSInteger incognito_mode_availability =
2879 [defaults integerForKey:incognito_policy_key];
2880 if (incognito_mode_availability) {
Tina Wangc6bcf572021-01-27 18:15:522881 [testing_policies addEntriesFromDictionary:@{
2882 incognito_policy_key : @(incognito_mode_availability),
2883 }];
2884 }
2885
Ewann40a8f8a2021-07-29 10:01:202886 NSString* restriction_pattern =
2887 [defaults stringForKey:@"RestrictAccountsToPatterns"];
2888 if ([restriction_pattern length] > 0) {
Ewannb3bee382021-08-16 09:12:292889 NSString* restrict_key =
2890 base::SysUTF8ToNSString(policy::key::kRestrictAccountsToPatterns);
Ewann40a8f8a2021-07-29 10:01:202891 [testing_policies addEntriesFromDictionary:@{
Ewannb3bee382021-08-16 09:12:292892 restrict_key : @[ restriction_pattern ]
Ewann40a8f8a2021-07-29 10:01:202893 }];
2894 }
2895
Vincent Boisselle19200bc2021-09-01 17:58:252896 // If the sign-in policy is set (not "None"), add the policy key to the list
2897 // of enabled experimental policies, and set the value.
2898 NSString* const kSigninPolicyKey = @"BrowserSignin";
2899 NSInteger signin_policy_mode = [defaults integerForKey:kSigninPolicyKey];
2900 if (signin_policy_mode) {
2901 // Remove the mode offset that was used to represent the unset policy.
2902 --signin_policy_mode;
2903 DCHECK(signin_policy_mode >= 0);
2904
Vincent Boisselle19200bc2021-09-01 17:58:252905 [testing_policies addEntriesFromDictionary:@{
2906 kSigninPolicyKey : @(signin_policy_mode),
2907 }];
2908 }
2909
Veronique Nguyen9b1044f2022-01-11 14:41:132910 // If the New Tab Page URL is set (not empty) add the value to the list of
2911 // test policies.
2912 NSString* ntp_location = [defaults stringForKey:@"NTPLocation"];
2913 if ([ntp_location length] > 0) {
2914 NSString* ntp_location_key =
2915 base::SysUTF8ToNSString(policy::key::kNewTabPageLocation);
2916 [testing_policies
2917 addEntriesFromDictionary:@{ntp_location_key : ntp_location}];
Veronique Nguyen302d8702022-01-12 21:18:572918 [allowed_experimental_policies addObject:ntp_location_key];
Veronique Nguyen9b1044f2022-01-11 14:41:132919 }
2920
Ali Juma9ec36d2b2022-03-28 14:53:122921 if ([defaults boolForKey:@"DisallowChromeDataInBackups"]) {
2922 NSString* allow_backups_key =
2923 base::SysUTF8ToNSString(policy::key::kAllowChromeDataInBackups);
2924 [testing_policies addEntriesFromDictionary:@{allow_backups_key : @NO}];
2925 [allowed_experimental_policies addObject:allow_backups_key];
2926 }
2927
Victor Hugo Vianna Silva9e1a7302023-02-21 08:56:242928 if ([defaults boolForKey:@"DisablePasswordManagerPolicy"]) {
2929 NSString* password_manager_key =
2930 base::SysUTF8ToNSString(policy::key::kPasswordManagerEnabled);
2931 [testing_policies addEntriesFromDictionary:@{password_manager_key : @NO}];
2932 [allowed_experimental_policies addObject:password_manager_key];
2933 }
Vincent Boisselle003569a72023-09-11 16:03:122934
2935 if ([defaults boolForKey:@"EnableUserPolicyMerge"]) {
2936 NSString* user_policy_merge_key =
2937 base::SysUTF8ToNSString(policy::key::kCloudUserPolicyMerge);
2938 [testing_policies addEntriesFromDictionary:@{user_policy_merge_key : @YES}];
2939 [allowed_experimental_policies addObject:user_policy_merge_key];
2940 }
2941
Arthur Milchiorbb44f5c82023-03-14 16:14:462942 if ([defaults boolForKey:@"AddManagedBookmarks"]) {
2943 NSString* managed_bookmarks_key =
2944 base::SysUTF8ToNSString(policy::key::kManagedBookmarks);
2945 NSString* managed_bookmarks_value =
Avi Drissmanaa245812023-04-27 20:20:572946 @"["
2947 // The following gets filtered out from
2948 // the JSON string when parsed.
2949 " {"
2950 " \"toplevel_name\": \"Managed Bookmarks\""
2951 " },"
2952 " {"
2953 " \"name\": \"Google\","
2954 " \"url\": \"google.com\""
2955 " },"
2956 " {"
2957 " \"name\": \"Empty Folder\","
2958 " \"children\": []"
2959 " },"
2960 " {"
2961 " \"name\": \"Big Folder\","
2962 " \"children\": ["
2963 " {"
2964 " \"name\": \"Youtube\","
2965 " \"url\": \"youtube.com\""
2966 " },"
2967 " {"
2968 " \"name\": \"Chromium\","
2969 " \"url\": \"chromium.org\""
2970 " },"
2971 " {"
2972 " \"name\": \"More Stuff\","
2973 " \"children\": ["
2974 " {"
2975 " \"name\": \"Bugs\","
2976 " \"url\": \"crbug.com\""
2977 " }"
2978 " ]"
2979 " }"
2980 " ]"
2981 " }"
2982 "]";
Arthur Milchiorbb44f5c82023-03-14 16:14:462983 [testing_policies addEntriesFromDictionary:@{
2984 managed_bookmarks_key : managed_bookmarks_value
2985 }];
2986 [allowed_experimental_policies addObject:managed_bookmarks_key];
2987 }
Victor Hugo Vianna Silva9e1a7302023-02-21 08:56:242988
Guillaume Jenkins25e9bd72020-08-27 17:39:062989 // If any experimental policy was allowed, set the EnableExperimentalPolicies
2990 // policy.
2991 if ([allowed_experimental_policies count] > 0) {
2992 [testing_policies setValue:allowed_experimental_policies
2993 forKey:base::SysUTF8ToNSString(
2994 policy::key::kEnableExperimentalPolicies)];
2995 }
2996
jlebel2eb40222022-05-06 11:15:422997 NSString* metrics_reporting_key = @"MetricsReportingEnabled";
2998 switch ([defaults integerForKey:metrics_reporting_key]) {
2999 case 1:
3000 // Metrics reporting forced.
Louis Romeroec603fd5f62023-01-20 14:07:133001 [testing_policies setValue:@YES forKey:metrics_reporting_key];
jlebel2eb40222022-05-06 11:15:423002 break;
3003 case 2:
3004 // Metrics reporting disabled.
Louis Romeroec603fd5f62023-01-20 14:07:133005 [testing_policies setValue:@NO forKey:metrics_reporting_key];
jlebel2eb40222022-05-06 11:15:423006 break;
3007 default:
3008 // Metrics reporting not managed.
3009 break;
3010 }
3011
David Jean6f85d44f2021-08-19 08:08:453012 // Warning: Add new flags to TestingPoliciesHash() below.
3013
David Jean5ca263c2021-08-18 09:19:303014 return testing_policies;
3015}
David Jean6f85d44f2021-08-19 08:08:453016
David Jean5ca263c2021-08-18 09:19:303017} // namespace
3018
Gauthier Ambard02dbf022022-08-23 08:28:473019// Add all switches from experimental flags to `command_line`.
David Jean5ca263c2021-08-18 09:19:303020void AppendSwitchesFromExperimentalSettings(base::CommandLine* command_line) {
3021 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
3022
3023 // Set the UA flag if UseMobileSafariUA is enabled.
3024 if ([defaults boolForKey:@"UseMobileSafariUA"]) {
3025 // Safari uses "Vesion/", followed by the OS version excluding bugfix, where
3026 // Chrome puts its product token.
3027 int32_t major = 0;
3028 int32_t minor = 0;
3029 int32_t bugfix = 0;
3030 base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
3031 std::string product = base::StringPrintf("Version/%d.%d", major, minor);
3032
3033 command_line->AppendSwitchASCII(switches::kUserAgent,
3034 web::BuildMobileUserAgent(product));
3035 }
3036
3037 // Shared variables for all enterprise experimental flags.
Vincent Boisselleed0e6f1a2021-11-09 06:47:343038 NSMutableDictionary* testing_policies = CreateExperimentalTestingPolicies();
David Jean5ca263c2021-08-18 09:19:303039
3040 // If a CBCM enrollment token is provided, force Chrome Browser Cloud
3041 // Management to enabled and add the token to the list of policies.
3042 NSString* token_key =
3043 base::SysUTF8ToNSString(policy::key::kCloudManagementEnrollmentToken);
3044 NSString* token = [defaults stringForKey:token_key];
3045
3046 if ([token length] > 0) {
3047 command_line->AppendSwitch(switches::kEnableChromeBrowserCloudManagement);
3048 [testing_policies setValue:token forKey:token_key];
3049 }
3050
Guillaume Jenkins57606d72020-08-13 17:32:553051 // If some policies were set, commit them to the app's registration defaults.
3052 if ([testing_policies count] > 0) {
Guillaume Jenkinseeb7007c2020-06-25 22:55:403053 NSDictionary* registration_defaults =
3054 @{kPolicyLoaderIOSConfigurationKey : testing_policies};
3055 [defaults registerDefaults:registration_defaults];
3056 }
3057
sdefresne14900ee2015-11-27 14:43:213058 // Freeform commandline flags. These are added last, so that any flags added
3059 // earlier in this function take precedence.
3060 if ([defaults boolForKey:@"EnableFreeformCommandLineFlags"]) {
3061 base::CommandLine::StringVector flags;
3062 // Append an empty "program" argument.
3063 flags.push_back("");
3064
3065 // The number of flags corresponds to the number of text fields in
3066 // Experimental.plist.
3067 const int kNumFreeformFlags = 5;
3068 for (int i = 1; i <= kNumFreeformFlags; ++i) {
3069 NSString* key =
3070 [NSString stringWithFormat:@"FreeformCommandLineFlag%d", i];
3071 NSString* flag = [defaults stringForKey:key];
3072 if ([flag length]) {
Robbie Gibsonc91ce622019-05-20 14:44:333073 // iOS keyboard replaces -- with —, so undo that.
3074 flag = [flag stringByReplacingOccurrencesOfString:@"—"
3075 withString:@"--"
3076 options:0
3077 range:NSMakeRange(0, 1)];
3078 // To make things easier, allow flags with no dashes by prepending them
3079 // here. This also allows for flags that just have one dash if they
3080 // exist.
3081 if (![flag hasPrefix:@"-"]) {
3082 flag = [@"--" stringByAppendingString:flag];
3083 }
sdefresne14900ee2015-11-27 14:43:213084 flags.push_back(base::SysNSStringToUTF8(flag));
3085 }
3086 }
3087
3088 base::CommandLine temp_command_line(flags);
3089 command_line->AppendArguments(temp_command_line, false);
3090 }
msardafc76f662017-02-24 12:46:283091
justincohendacc85d2017-06-28 23:34:103092 // Populate command line flag for 3rd party keyboard omnibox workaround.
3093 NSString* enableThirdPartyKeyboardWorkaround =
3094 [defaults stringForKey:@"EnableThirdPartyKeyboardWorkaround"];
3095 if ([enableThirdPartyKeyboardWorkaround isEqualToString:@"Enabled"]) {
3096 command_line->AppendSwitch(switches::kEnableThirdPartyKeyboardWorkaround);
3097 } else if ([enableThirdPartyKeyboardWorkaround isEqualToString:@"Disabled"]) {
3098 command_line->AppendSwitch(switches::kDisableThirdPartyKeyboardWorkaround);
3099 }
3100
Sylvain Defresned3cd8d92022-01-18 13:35:083101 ios::provider::AppendSwitchesFromExperimentalSettings(defaults, command_line);
sdefresne14900ee2015-11-27 14:43:213102}
3103
sdefresne14900ee2015-11-27 14:43:213104void ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage,
3105 base::CommandLine* command_line) {
Sylvain Defresne8327a2f2019-01-17 14:19:183106 GetGlobalFlagsState().ConvertFlagsToSwitches(
sdefresnec9763902015-12-02 10:30:113107 flags_storage, command_line, flags_ui::kAddSentinels,
Gregory Chatzinofff6523722017-11-21 01:33:533108 switches::kEnableFeatures, switches::kDisableFeatures);
sdefresne14900ee2015-11-27 14:43:213109}
3110
jkrcalbf073372016-07-29 07:21:313111std::vector<std::string> RegisterAllFeatureVariationParameters(
3112 flags_ui::FlagsStorage* flags_storage,
3113 base::FeatureList* feature_list) {
Sylvain Defresne8327a2f2019-01-17 14:19:183114 return GetGlobalFlagsState().RegisterAllFeatureVariationParameters(
3115 flags_storage, feature_list);
jkrcalbf073372016-07-29 07:21:313116}
3117
sdefresne14900ee2015-11-27 14:43:213118void GetFlagFeatureEntries(flags_ui::FlagsStorage* flags_storage,
3119 flags_ui::FlagAccess access,
Matt Menke4d777572022-06-15 15:55:503120 base::Value::List& supported_entries,
3121 base::Value::List& unsupported_entries) {
Sylvain Defresne8327a2f2019-01-17 14:19:183122 GetGlobalFlagsState().GetFlagFeatureEntries(
sdefresne14900ee2015-11-27 14:43:213123 flags_storage, access, supported_entries, unsupported_entries,
Renjie Tang208c8192020-11-03 00:46:513124 base::BindRepeating(&SkipConditionalFeatureEntry));
sdefresne14900ee2015-11-27 14:43:213125}
3126
3127void SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage,
3128 const std::string& internal_name,
3129 bool enable) {
Sylvain Defresne8327a2f2019-01-17 14:19:183130 GetGlobalFlagsState().SetFeatureEntryEnabled(flags_storage, internal_name,
3131 enable);
sdefresne14900ee2015-11-27 14:43:213132}
3133
3134void ResetAllFlags(flags_ui::FlagsStorage* flags_storage) {
Sylvain Defresne8327a2f2019-01-17 14:19:183135 GetGlobalFlagsState().ResetAllFlags(flags_storage);
sdefresne14900ee2015-11-27 14:43:213136}
3137
Nicolas MacBeth972e2592023-02-23 15:22:093138bool IsRestartNeededToCommitChanges() {
3139 return GetGlobalFlagsState().IsRestartNeededToCommitChanges();
3140}
3141
sdefresne14900ee2015-11-27 14:43:213142namespace testing {
3143
Elly Fong-Jones323ab1092021-08-23 22:36:313144base::span<const flags_ui::FeatureEntry> GetFeatureEntries() {
3145 return base::span<const flags_ui::FeatureEntry>(kFeatureEntries,
Daniel Cheng1f047a82022-02-26 10:04:533146 std::size(kFeatureEntries));
sdefresne14900ee2015-11-27 14:43:213147}
3148
3149} // namespace testing