| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Instructions for adding new entries to this file: |
| // https://chromium.googlesource.com/chromium/src/+/main/docs/how_to_add_your_feature_flag.md#step-2_adding-the-feature-flag-to-the-chrome_flags-ui |
| |
| #include "chrome/browser/about_flags.h" |
| |
| #include <iterator> |
| #include <map> |
| #include <memory> |
| #include <set> |
| #include <string_view> |
| #include <utility> |
| |
| #include "base/allocator/partition_alloc_features.h" |
| #include "base/base_switches.h" |
| #include "base/command_line.h" |
| #include "base/containers/span.h" |
| #include "base/feature_list.h" |
| #include "base/features.h" |
| #include "base/functional/bind.h" |
| #include "base/functional/callback.h" |
| #include "base/i18n/base_i18n_switches.h" |
| #include "base/memory/singleton.h" |
| #include "base/metrics/histogram_functions.h" |
| #include "base/no_destructor.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/task/task_features.h" |
| #include "base/values.h" |
| #include "build/branding_buildflags.h" |
| #include "build/build_config.h" |
| #include "cc/base/features.h" |
| #include "cc/base/switches.h" |
| #include "chrome/browser/apps/app_discovery_service/app_discovery_service.h" |
| #include "chrome/browser/browser_features.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/contextual_cueing/features.h" |
| #include "chrome/browser/default_browser/default_browser_features.h" |
| #include "chrome/browser/devtools/features.h" |
| #include "chrome/browser/dictation/features.h" |
| #include "chrome/browser/enterprise/data_protection/data_protection_features.h" |
| #include "chrome/browser/enterprise/platform_auth/platform_auth_features.h" |
| #include "chrome/browser/flag_descriptions.h" |
| #include "chrome/browser/geic/geic_enabling.h" |
| #include "chrome/browser/geic/geic_pwc_manager.h" |
| #include "chrome/browser/glic/public/features.h" |
| #include "chrome/browser/infobars/infobar_features.h" |
| #include "chrome/browser/login_detection/login_detection_util.h" |
| #include "chrome/browser/media/router/discovery/access_code/access_code_cast_constants.h" |
| #include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h" |
| #include "chrome/browser/media/webrtc/desktop_media_picker.h" |
| #include "chrome/browser/navigation_predictor/navigation_predictor_features.h" |
| #include "chrome/browser/navigation_predictor/search_engine_preconnector.h" |
| #include "chrome/browser/net/stub_resolver_config_reader.h" |
| #include "chrome/browser/net/system_network_context_manager.h" |
| #include "chrome/browser/notifications/scheduler/public/features.h" |
| #include "chrome/browser/page_info/page_info_features.h" |
| #include "chrome/browser/permissions/notifications_permission_revocation_config.h" |
| #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h" |
| #include "chrome/browser/predictors/loading_predictor_config.h" |
| #include "chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.h" |
| #include "chrome/browser/preloading/preloading_features.h" |
| #include "chrome/browser/preloading/search_preload/search_preload_features.h" |
| #include "chrome/browser/pwc/pwc_features.mojom-features.h" |
| #include "chrome/browser/sharing_hub/sharing_hub_features.h" |
| #include "chrome/browser/site_isolation/about_flags.h" |
| #include "chrome/browser/task_manager/common/task_manager_features.h" |
| #include "chrome/browser/ui/navigator/browser_navigator_params.h" |
| #include "chrome/browser/ui/omnibox/omnibox_next_features.h" |
| #include "chrome/browser/ui/tabs/tab_group_home/constants.h" |
| #include "chrome/browser/ui/toasts/toast_features.h" |
| #include "chrome/browser/ui/ui_features.h" |
| #include "chrome/browser/ui/views/tabs/organizer/organizer_panel_utils.h" |
| #include "chrome/browser/ui/webui/flags/flags_ui.h" |
| #include "chrome/browser/unexpire_flags.h" |
| #include "chrome/browser/unexpire_flags_gen.h" |
| #include "chrome/browser/web_applications/link_capturing_features.h" |
| #include "chrome/browser/webauthn/webauthn_switches.h" |
| #include "chrome/common/buildflags.h" |
| #include "chrome/common/channel_info.h" |
| #include "chrome/common/chrome_content_client.h" |
| #include "chrome/common/chrome_features.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "components/actor/core/actor_features.h" |
| #include "components/actor/core/actor_switches.h" |
| #include "components/autofill/core/browser/studies/autofill_experiments.h" |
| #include "components/autofill/core/common/autofill_debug_features.h" |
| #include "components/autofill/core/common/autofill_features.h" |
| #include "components/autofill/core/common/autofill_payments_features.h" |
| #include "components/autofill/core/common/autofill_switches.h" |
| #include "components/autofill/core/common/autofill_util.h" |
| #include "components/bookmarks/common/bookmark_features.h" |
| #include "components/browser_actuator/public/features.h" |
| #include "components/browser_sync/browser_sync_switches.h" |
| #include "components/browsing_data/core/features.h" |
| #include "components/collaboration/public/features.h" |
| #include "components/commerce/core/commerce_feature_list.h" |
| #include "components/commerce/core/flag_descriptions.h" |
| #include "components/component_updater/component_updater_command_line_config_policy.h" |
| #include "components/component_updater/component_updater_switches.h" |
| #include "components/compose/buildflags.h" |
| #include "components/compose/core/browser/compose_features.h" |
| #include "components/content_settings/core/common/features.h" |
| #include "components/contextual_tasks/public/features.h" |
| #include "components/critical_actions/core/browser/features.h" |
| #include "components/data_sharing/public/features.h" |
| #include "components/data_sharing/public/switches.h" |
| #include "components/desktop_to_mobile_promos/features.h" |
| #include "components/device_signals/core/common/signals_features.h" |
| #include "components/dom_distiller/core/dom_distiller_features.h" |
| #include "components/dom_distiller/core/dom_distiller_switches.h" |
| #include "components/download/public/common/download_features.h" |
| #include "components/enterprise/browser/reporting/reporting_features.h" |
| #include "components/enterprise/client_certificates/core/features.h" |
| #include "components/enterprise/connectors/core/features.h" |
| #include "components/enterprise/data_controls/core/browser/features.h" |
| #include "components/enterprise/data_protection/features.h" |
| #include "components/enterprise/isolated_mode/isolated_mode_features.h" |
| #include "components/enterprise/network_header_injection/core/features.h" |
| #include "components/error_page/common/error_page_switches.h" |
| #include "components/facilitated_payments/core/features/features.h" |
| #include "components/feature_engagement/public/feature_constants.h" |
| #include "components/feature_engagement/public/feature_list.h" |
| #include "components/feed/feed_feature_list.h" |
| #include "components/heavy_ad_intervention/heavy_ad_features.h" |
| #include "components/history/core/browser/features.h" |
| #include "components/history_clusters/core/config.h" |
| #include "components/history_clusters/core/features.h" |
| #include "components/history_clusters/core/on_device_clustering_features.h" |
| #include "components/history_embeddings/core/history_embeddings_features.h" |
| #include "components/input/features.h" |
| #include "components/language/core/common/language_experiments.h" |
| #include "components/lens/buildflags.h" |
| #include "components/lens/lens_features.h" |
| #include "components/manta/features.h" |
| #include "components/mirroring/service/mirroring_features.h" |
| #include "components/multistep_filter/core/features.h" |
| #include "components/network_session_configurator/common/network_switches.h" |
| #include "components/notebooks/public/features.h" |
| #include "components/ntp_tiles/features.h" |
| #include "components/offline_pages/core/offline_page_feature.h" |
| #include "components/omnibox/browser/aim_eligibility_service_features.h" |
| #include "components/omnibox/browser/omnibox_field_trial.h" |
| #include "components/omnibox/common/composebox_features.h" |
| #include "components/omnibox/common/omnibox_feature_configs.h" |
| #include "components/omnibox/common/omnibox_features.h" |
| #include "components/open_from_clipboard/clipboard_recent_content_features.h" |
| #include "components/optimization_guide/core/model_execution/model_execution_features.h" |
| #include "components/optimization_guide/core/optimization_guide_features.h" |
| #include "components/optimization_guide/core/optimization_guide_switches.h" |
| #include "components/page_content_annotations/core/page_content_annotations_features.h" |
| #include "components/page_content_annotations/core/page_content_annotations_switches.h" |
| #include "components/page_info/core/features.h" |
| #include "components/paint_preview/buildflags/buildflags.h" |
| #include "components/paint_preview/features/features.h" |
| #include "components/password_manager/core/browser/features/password_features.h" |
| #include "components/password_manager/core/common/password_manager_features.h" |
| #include "components/payments/core/features.h" |
| #include "components/performance_manager/public/features.h" |
| #include "components/permissions/features.h" |
| #include "components/policy/core/common/features.h" |
| #include "components/privacy_sandbox/privacy_sandbox_features.h" |
| #include "components/regional_capabilities/regional_capabilities_switches.h" |
| #include "components/remote_cocoa/app_shim/features.h" |
| #include "components/safe_browsing/core/common/features.h" |
| #include "components/safe_browsing/core/common/safebrowsing_switches.h" |
| #include "components/safety_check/features.h" |
| #include "components/saved_tab_groups/public/features.h" |
| #include "components/search/ntp_features.h" |
| #include "components/search_engines/search_engines_switches.h" |
| #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h" |
| #include "components/security_interstitials/core/features.h" |
| #include "components/security_state/core/security_state.h" |
| #include "components/segmentation_platform/embedder/home_modules/constants.h" |
| #include "components/segmentation_platform/public/features.h" |
| #include "components/send_tab_to_self/features.h" |
| #include "components/sensitive_content/features.h" |
| #include "components/services/storage/dom_storage/features.h" |
| #include "components/sessions/core/command_storage_features.h" |
| #include "components/shared_highlighting/core/common/shared_highlighting_features.h" |
| #include "components/sharing_message/features.h" |
| #include "components/signin/core/browser/dice_account_reconcilor_delegate.h" |
| #include "components/signin/public/base/signin_buildflags.h" |
| #include "components/signin/public/base/signin_switches.h" |
| #include "components/site_isolation/features.h" |
| #include "components/skills/features.h" |
| #include "components/soda/soda_features.h" |
| #include "components/spellcheck/common/spellcheck_features.h" |
| #include "components/spellcheck/spellcheck_buildflags.h" |
| #include "components/strike_database/strike_database_features.h" |
| #include "components/subscription_eligibility/subscription_eligibility_service.h" |
| #include "components/supervised_user/core/common/features.h" |
| #include "components/supervised_user/core/common/supervised_user_constants.h" |
| #include "components/sync/base/command_line_switches.h" |
| #include "components/sync/base/features.h" |
| #include "components/sync_preferences/features.h" |
| #include "components/tab_groups/features.h" |
| #include "components/themes/cross_device/features.h" |
| #include "components/thin_webview/features.h" |
| #include "components/touch_to_search/core/browser/contextual_search_field_trial.h" |
| #include "components/touch_to_search/core/browser/public.h" |
| #include "components/tracing/common/tracing_switches.h" |
| #include "components/translate/core/browser/translate_prefs.h" |
| #include "components/translate/core/browser/translate_ranker_impl.h" |
| #include "components/translate/core/common/translate_util.h" |
| #include "components/trusted_vault/features.h" |
| #include "components/ui_devtools/switches.h" |
| #include "components/universal_optout/features.h" |
| #include "components/variations/variations_switches.h" |
| #include "components/version_info/channel.h" |
| #include "components/version_info/version_info.h" |
| #include "components/visited_url_ranking/public/features.h" |
| #include "components/viz/common/features.h" |
| #include "components/viz/common/switches.h" |
| #include "components/wallet/core/common/wallet_features.h" |
| #include "components/webapps/browser/features.h" |
| #include "components/webui/flags/feature_entry.h" |
| #include "components/webui/flags/feature_entry_macros.h" |
| #include "components/webui/flags/flags_state.h" |
| #include "components/webui/flags/flags_storage.h" |
| #include "components/webui/flags/flags_ui_metrics.h" |
| #include "components/webui/flags/flags_ui_switches.h" |
| #include "components/webui/flags/pref_service_flags_storage.h" |
| #include "content/common/features.h" |
| #include "content/public/common/content_features.h" |
| #include "content/public/common/content_switches.h" |
| #include "device/base/features.h" |
| #include "device/bluetooth/bluez/bluez_features.h" |
| #include "device/bluetooth/chromeos_platform_features.h" |
| #include "device/bluetooth/floss/floss_features.h" |
| #include "device/fido/public/features.h" |
| #include "device/gamepad/public/cpp/gamepad_features.h" |
| #include "device/vr/buildflags/buildflags.h" |
| #include "extensions/buildflags/buildflags.h" |
| #include "gpu/config/gpu_finch_features.h" |
| #include "gpu/config/gpu_switches.h" |
| #include "media/audio/audio_features.h" |
| #include "media/base/media_switches.h" |
| #include "media/capture/capture_switches.h" |
| #include "media/media_buildflags.h" |
| #include "media/midi/midi_features.h" |
| #include "media/webrtc/webrtc_features.h" |
| #include "net/base/features.h" |
| #include "net/base/switches.h" |
| #include "net/net_buildflags.h" |
| #include "net/nqe/effective_connection_type.h" |
| #include "net/nqe/network_quality_estimator_params.h" |
| #include "net/websockets/websocket_basic_handshake_stream.h" |
| #include "partition_alloc/buildflags.h" |
| #include "pdf/buildflags.h" |
| #include "printing/buildflags/buildflags.h" |
| #include "sandbox/policy/features.h" |
| #include "sandbox/policy/switches.h" |
| #include "services/device/public/cpp/device_features.h" |
| #include "services/media_session/public/cpp/features.h" |
| #include "services/network/public/cpp/features.h" |
| #include "services/network/public/cpp/network_switches.h" |
| #include "services/on_device_model/public/cpp/features.h" |
| #include "services/tracing/public/cpp/tracing_features.h" |
| #include "services/webnn/public/mojom/features.mojom-features.h" |
| #include "skia/rusty_jpeg_feature.h" |
| #include "storage/browser/blob/features.h" |
| #include "storage/browser/quota/quota_features.h" |
| #include "third_party/blink/public/common/buildflags.h" |
| #include "third_party/blink/public/common/features.h" |
| #include "third_party/blink/public/common/features_generated.h" |
| #include "third_party/blink/public/common/switches.h" |
| #include "ui/accessibility/accessibility_features.h" |
| #include "ui/accessibility/accessibility_switches.h" |
| #include "ui/accessibility/ax_features.mojom.h" |
| #include "ui/base/ozone_buildflags.h" |
| #include "ui/base/ui_base_features.h" |
| #include "ui/base/ui_base_switches.h" |
| #include "ui/compositor/compositor_switches.h" |
| #include "ui/display/display_features.h" |
| #include "ui/display/display_switches.h" |
| #include "ui/events/blink/blink_features.h" |
| #include "ui/events/event_switches.h" |
| #include "ui/gfx/switches.h" |
| #include "ui/gl/buildflags.h" |
| #include "ui/gl/gl_features.h" |
| #include "ui/gl/gl_switches.h" |
| #include "ui/native_theme/features/native_theme_features.h" |
| #include "url/url_features.h" |
| |
| #if BUILDFLAG(IS_ANDROID) |
| #include "chrome/browser/finds/core/finds_features.h" |
| #include "chrome/browser/flags/android/chrome_feature_list.h" |
| #include "chrome/browser/notifications/chime/android/features.h" |
| #include "components/android_autofill/browser/android_autofill_features.h" |
| #include "components/browser_ui/bottomsheet/android/features.h" |
| #include "components/browser_ui/contacts_picker/android/features.h" |
| #include "components/browser_ui/modaldialog/android/features.h" |
| #include "components/credential_management/android/features.h" |
| #include "components/external_intents/android/external_intents_features.h" |
| #include "components/messages/android/messages_feature.h" |
| #include "components/payments/content/android/payment_feature_map.h" |
| #include "components/permissions/android/permissions_android_feature_map.h" |
| #include "components/push_messaging/push_messaging_features.h" |
| #include "components/translate/content/android/translate_message.h" |
| #include "ui/android/ui_android_features.h" |
| #include "ui/base/device_form_factor.h" |
| #else // BUILDFLAG(IS_ANDROID) |
| #include "chrome/browser/component_updater/iwa_key_distribution_component_installer.h" |
| #include "chrome/browser/media/router/discovery/access_code/access_code_cast_sink_service.h" |
| #include "chrome/browser/media/router/media_router_feature.h" |
| #include "chrome/browser/password_manager/password_change/features.h" |
| #include "chrome/browser/ui/tabs/features.h" |
| #include "chrome/browser/web_applications/preinstalled_app_install_features.h" |
| #include "components/component_updater/installer_policies/iwa_key_distribution_component_installer_policy.h" |
| #include "components/user_education/common/user_education_features.h" // nogncheck |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| #include "ash/constants/ash_features.h" |
| #include "ash/constants/ash_switches.h" |
| #include "ash/public/cpp/app_list/app_list_features.h" |
| #include "ash/public/cpp/keyboard/keyboard_switches.h" |
| #include "base/system/sys_info.h" |
| #include "chrome/browser/apps/app_service/chrome_app_deprecation/chrome_app_deprecation.h" |
| #include "chrome/browser/ash/app_list/search/search_features.h" |
| #include "chrome/browser/ash/crostini/crostini_util.h" |
| #include "chrome/browser/ash/ownership/owner_settings_service_ash.h" |
| #include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h" |
| #include "chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_manager.h" |
| #include "chrome/browser/ash/settings/about_flags.h" |
| #include "chrome/browser/component_updater/cros_component_installer_chromeos.h" |
| #include "chrome/browser/nearby_sharing/common/nearby_share_features.h" |
| #include "chrome/common/webui_url_constants.h" |
| #include "chromeos/ash/components/memory/swap_configuration.h" |
| #include "chromeos/ash/experiences/arc/arc_features.h" |
| #include "chromeos/ash/experiences/arc/arc_util.h" |
| #include "chromeos/constants/chromeos_features.h" |
| #include "chromeos/constants/chromeos_switches.h" |
| #include "components/app_restore/features.h" |
| #include "components/cross_device/nearby/nearby_features.h" |
| #include "components/enterprise/connectors/core/features.h" |
| #include "components/metrics/structured/structured_metrics_features.h" // nogncheck |
| #include "media/capture/video/chromeos/video_capture_features_chromeos.h" |
| #include "remoting/host/chromeos/features.h" |
| #include "third_party/cros_system_api/switches/chrome_switches.h" |
| #include "ui/events/ozone/features.h" |
| #else |
| #include "components/variations/net/variations_command_line.h" |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_MAC) |
| #include "chrome/browser/ui/dialogs/browser_dialogs.h" |
| #endif // BUILDFLAG(IS_MAC) |
| |
| #if BUILDFLAG(IS_WIN) |
| #include "chrome/browser/startup/startup_features.h" |
| #include "chrome/browser/tracing/tracing_features.h" |
| #include "components/stylus_handwriting/win/features.h" |
| #endif |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| #include "base/allocator/buildflags.h" |
| #include "ui/ozone/public/ozone_switches.h" |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) |
| #include "chrome/browser/enterprise/data_protection/data_protection_features.h" |
| #include "chrome/browser/enterprise/profile_management/profile_management_features.h" |
| #include "chrome/browser/enterprise/webstore/features.h" |
| #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) |
| #include "chrome/browser/glic/suggestions/contextual_cueing_features.h" // nogncheck |
| #include "chrome/browser/ui/webui/new_tab_page/composebox/variations/composebox_fieldtrial.h" // nogncheck |
| #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| #include "components/enterprise/platform_auth/platform_auth_features.h" |
| #endif |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| #include "components/enterprise/browser/reporting/reporting_features.h" |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) |
| #include "components/unexportable_keys/features.h" // nogncheck |
| #endif |
| |
| #if BUILDFLAG(ENTERPRISE_PROXY) |
| #include "components/enterprise/net/core/features.h" |
| #include "components/enterprise/net/core/flag_descriptions.h" |
| #endif |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| #include "extensions/browser/cws_info_service.h" |
| #include "extensions/common/extension_features.h" |
| #include "extensions/common/switches.h" |
| #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| |
| #if BUILDFLAG(ENABLE_PDF) |
| #include "pdf/pdf_features.h" |
| #endif |
| |
| #if BUILDFLAG(ENABLE_PRINTING) |
| #include "printing/printing_features.h" |
| #endif |
| |
| #if BUILDFLAG(ENABLE_VR) |
| #include "device/vr/public/cpp/features.h" |
| #include "device/vr/public/cpp/switches.h" |
| #endif |
| |
| #if defined(TOOLKIT_VIEWS) |
| #include "ui/views/views_features.h" |
| #include "ui/views/views_switches.h" |
| #endif // defined(TOOLKIT_VIEWS) |
| |
| using flags_ui::FeatureEntry; |
| using flags_ui::kDeprecated; |
| using flags_ui::kOsAndroid; |
| using flags_ui::kOsCrOS; |
| using flags_ui::kOsCrOSOwnerOnly; |
| using flags_ui::kOsFuchsia; |
| using flags_ui::kOsLinux; |
| using flags_ui::kOsMac; |
| using flags_ui::kOsWin; |
| |
| namespace about_flags { |
| |
| namespace { |
| |
| const unsigned kOsAll = kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid; |
| const unsigned kOsDesktop = kOsMac | kOsWin | kOsLinux | kOsCrOS; |
| |
| #if defined(USE_AURA) |
| const unsigned kOsAura = kOsWin | kOsLinux | kOsCrOS; |
| #endif // USE_AURA |
| |
| #if defined(USE_AURA) |
| const FeatureEntry::Choice kPullToRefreshChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kPullToRefresh, "0"}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kPullToRefresh, "1"}, |
| {flag_descriptions::kPullToRefreshEnabledTouchscreen, |
| switches::kPullToRefresh, "2"}}; |
| #endif // USE_AURA |
| |
| const FeatureEntry::FeatureParam kScrollbarModeOverlay[] = { |
| {"mode", "overlay"}}; |
| const FeatureEntry::FeatureParam kScrollbarModeDevice[] = {{"mode", "device"}}; |
| const FeatureEntry::FeatureParam kScrollbarModeClassic[] = { |
| {"mode", "classic"}}; |
| |
| const FeatureEntry::FeatureVariation kScrollbarModeVariations[] = { |
| {"overlay (with fade out)", kScrollbarModeOverlay, nullptr}, |
| {"device (follow OS setting)", kScrollbarModeDevice, nullptr}, |
| {"classic (always show)", kScrollbarModeClassic, nullptr}}; |
| |
| #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::FeatureParam kDefaultBrowserPromptSurfaces_Infobar[] = { |
| {"prompt_surface", "infobar"}}; |
| const FeatureEntry::FeatureParam kDefaultBrowserPromptSurfaces_BubbleDialog[] = |
| {{"prompt_surface", "bubble_dialog"}}; |
| const FeatureEntry::FeatureParam |
| kDefaultBrowserPromptSurfaces_ModalDialogWithSettingsIllustration[] = { |
| {"prompt_surface", "modal_dialog_with_settings_illustration"}}; |
| const FeatureEntry::FeatureParam |
| kDefaultBrowserPromptSurfaces_ModalDialogWithoutSettingsIllustration[] = { |
| {"prompt_surface", "modal_dialog_without_settings_illustration"}}; |
| |
| const FeatureEntry::FeatureVariation kDefaultBrowserPromptSurfacesVariations[] = |
| {{"with Infobar", kDefaultBrowserPromptSurfaces_Infobar, nullptr}, |
| {"with Bubble Dialog", kDefaultBrowserPromptSurfaces_BubbleDialog, |
| nullptr}, |
| {"with Modal Dialog with Settings Illustration", |
| kDefaultBrowserPromptSurfaces_ModalDialogWithSettingsIllustration, |
| nullptr}, |
| {"with Modal Dialog without Settings Illustration", |
| kDefaultBrowserPromptSurfaces_ModalDialogWithoutSettingsIllustration, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kDefaultBrowserSetterSelection_ShellIntegration[] = { |
| {"setter_option", "shell_integration"}}; |
| const FeatureEntry::FeatureParam kDefaultBrowserSetterSelection_VisualGuide[] = |
| {{"setter_option", "visual_guide"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kDefaultBrowserSetterSelectionVariations[] = { |
| {"with Shell Integration", |
| kDefaultBrowserSetterSelection_ShellIntegration, nullptr}, |
| {"with Visual Guide", kDefaultBrowserSetterSelection_VisualGuide, |
| nullptr}}; |
| #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) |
| |
| const FeatureEntry::FeatureParam kLocalNetworkAccessChecksBlock[] = { |
| {"LocalNetworkAccessChecksWarn", "false"}}; |
| const FeatureEntry::FeatureVariation kLocalNetworkAccessChecksVariations[] = { |
| {"(Blocking)", kLocalNetworkAccessChecksBlock, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kUnthrottleAsyncTouchMoves_UnthrottledWhenGsuUnconsumed[] = { |
| {"policy", "unthrottled_when_gsu_unconsumed"}}; |
| const FeatureEntry::FeatureParam |
| kUnthrottleAsyncTouchMoves_UnthrottledAlways[] = { |
| {"policy", "unthrottled_always"}}; |
| |
| const FeatureEntry::FeatureVariation kUnthrottleAsyncTouchMovesVariations[] = { |
| {"unthrottled when GSU unconsumed", |
| kUnthrottleAsyncTouchMoves_UnthrottledWhenGsuUnconsumed, nullptr}, |
| {"unthrottled always", kUnthrottleAsyncTouchMoves_UnthrottledAlways, |
| nullptr}}; |
| |
| const FeatureEntry::Choice kEnableBenchmarkingChoices[] = { |
| {flag_descriptions::kEnableBenchmarkingChoiceDisabled, "", ""}, |
| {flag_descriptions::kEnableBenchmarkingChoiceDefaultFeatureStates, |
| switches::kEnableBenchmarking, ""}, |
| {flag_descriptions::kEnableBenchmarkingChoiceMatchFieldTrialTestingConfig, |
| switches::kEnableBenchmarking, |
| variations::switches::kEnableFieldTrialTestingConfig}, |
| }; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::Choice kIwaKeyDistributionComponentExpCohortChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, |
| {flag_descriptions::kIwaKeyDistributionComponentExpCohortStagingName, |
| component_updater::kIwaKeyDistributionComponentExpCohort, "staging"}}; |
| #endif |
| |
| const FeatureEntry::FeatureParam |
| kContextualTasksEnableSpatialModelToolbarLayout_NewThreadInOverflow[] = { |
| {"overflow-items", "all-items"}}; |
| const FeatureEntry::FeatureParam |
| kContextualTasksEnableSpatialModelToolbarLayout_NewThreadNotInOverflow[] = { |
| {"overflow-items", "all-without-new-thread"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kContextualTasksEnableSpatialModelToolbarLayoutVariations[] = { |
| {"with new thread button in overflow menu", |
| kContextualTasksEnableSpatialModelToolbarLayout_NewThreadInOverflow, |
| nullptr}, |
| {"with new thread button NOT in overflow menu", |
| kContextualTasksEnableSpatialModelToolbarLayout_NewThreadNotInOverflow, |
| nullptr}}; |
| |
| const FeatureEntry::Choice kOverlayStrategiesChoices[] = { |
| {flag_descriptions::kOverlayStrategiesDefault, "", ""}, |
| {flag_descriptions::kOverlayStrategiesNone, |
| switches::kEnableHardwareOverlays, ""}, |
| {flag_descriptions::kOverlayStrategiesUnoccludedFullscreen, |
| switches::kEnableHardwareOverlays, "single-fullscreen"}, |
| {flag_descriptions::kOverlayStrategiesUnoccluded, |
| switches::kEnableHardwareOverlays, "single-fullscreen,single-on-top"}, |
| {flag_descriptions::kOverlayStrategiesOccludedAndUnoccluded, |
| switches::kEnableHardwareOverlays, |
| "single-fullscreen,single-on-top,underlay"}, |
| }; |
| |
| const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kTouchSelectionStrategyCharacter, |
| blink::switches::kTouchTextSelectionStrategy, |
| blink::switches::kTouchTextSelectionStrategy_Character}, |
| {flag_descriptions::kTouchSelectionStrategyDirection, |
| blink::switches::kTouchTextSelectionStrategy, |
| blink::switches::kTouchTextSelectionStrategy_Direction}}; |
| |
| #if BUILDFLAG(IS_WIN) |
| const FeatureEntry::Choice kUseAngleChoicesWindows[] = { |
| {flag_descriptions::kUseAngleDefault, "", ""}, |
| {flag_descriptions::kUseAngleD3D11, switches::kUseANGLE, |
| gl::kANGLEImplementationD3D11Name}, |
| {flag_descriptions::kUseAngleD3D11Warp, switches::kUseANGLE, |
| gl::kANGLEImplementationD3D11WarpName}}; |
| #elif BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::Choice kUseAngleChoicesAndroid[] = { |
| {flag_descriptions::kUseAngleDefault, "", ""}, |
| {flag_descriptions::kUseAngleGLES, switches::kUseANGLE, |
| gl::kANGLEImplementationOpenGLESName}, |
| {flag_descriptions::kUseAngleVulkan, switches::kUseANGLE, |
| gl::kANGLEImplementationVulkanName}}; |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) |
| const FeatureEntry::FeatureParam kDXGIWaitableSwapChain1Frame[] = { |
| {"DXGIWaitableSwapChainMaxQueuedFrames", "1"}}; |
| |
| const FeatureEntry::FeatureParam kDXGIWaitableSwapChain2Frames[] = { |
| {"DXGIWaitableSwapChainMaxQueuedFrames", "2"}}; |
| |
| const FeatureEntry::FeatureParam kDXGIWaitableSwapChain3Frames[] = { |
| {"DXGIWaitableSwapChainMaxQueuedFrames", "3"}}; |
| |
| const FeatureEntry::FeatureVariation kDXGIWaitableSwapChainVariations[] = { |
| {"Max 1 Frame", kDXGIWaitableSwapChain1Frame, nullptr}, |
| {"Max 2 Frames", kDXGIWaitableSwapChain2Frames, nullptr}, |
| {"Max 3 Frames", kDXGIWaitableSwapChain3Frames, nullptr}}; |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kVerticalTabsExpandOnHover_NoClickDelay[] = { |
| {"expand_on_hover_delay", "350ms"}, |
| {"expand_on_hover_click_delay", "0ms"}, |
| {"expand_on_hover_default_enabled", "true"}}; |
| const FeatureEntry::FeatureParam kVerticalTabsExpandOnHover_AllowClickDelay[] = |
| {{"expand_on_hover_delay", "400ms"}, |
| {"expand_on_hover_click_delay", "1500ms"}, |
| {"expand_on_hover_default_enabled", "true"}}; |
| const FeatureEntry::FeatureParam |
| kVerticalTabsExpandOnHover_VelocityHeuristic_100VelocityThreshold[] = { |
| {"expand_on_hover_use_velocity_heuristic", "true"}, |
| {"expand_on_hover_default_enabled", "true"}, |
| {"expand_on_hover_velocity_heuristic_min_samples", "2"}, |
| {"expand_on_hover_velocity_heuristic_threshold", "0.1"}}; |
| const FeatureEntry::FeatureParam |
| kVerticalTabsExpandOnHover_VelocityHeuristic_250VelocityThreshold[] = { |
| {"expand_on_hover_use_velocity_heuristic", "true"}, |
| {"expand_on_hover_default_enabled", "true"}, |
| {"expand_on_hover_velocity_heuristic_min_samples", "3"}, |
| {"expand_on_hover_velocity_heuristic_threshold", "0.25"}}; |
| |
| const FeatureEntry::FeatureParam |
| kVerticalTabsExpandOnHover_VelocityHeuristic_WithDelay[] = { |
| {"expand_on_hover_use_velocity_heuristic", "true"}, |
| {"expand_on_hover_default_enabled", "true"}, |
| {"expand_on_hover_velocity_heuristic_delay", "100ms"}, |
| {"expand_on_hover_velocity_heuristic_min_samples", "3"}, |
| {"expand_on_hover_velocity_heuristic_threshold", "0.25"}, |
| {"expand_on_hover_velocity_heuristic_distance_from_edge", "12"}, |
| {"expand_on_hover_velocity_heuristic_edge_delay", "200ms"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kVerticalTabsExpandOnHoverVariations[] = { |
| {"with 350ms hover delay / 0 click delay", |
| kVerticalTabsExpandOnHover_NoClickDelay, nullptr}, |
| {"with 400ms hover delay / 1500ms click delay", |
| kVerticalTabsExpandOnHover_AllowClickDelay, nullptr}, |
| {"with 100dp/s velocity heuristic", |
| kVerticalTabsExpandOnHover_VelocityHeuristic_100VelocityThreshold, |
| nullptr}, |
| {"with 250dp/s velocity heuristic", |
| kVerticalTabsExpandOnHover_VelocityHeuristic_250VelocityThreshold, |
| nullptr}, |
| {"with 250dp/s velocity heuristic and small delay", |
| kVerticalTabsExpandOnHover_VelocityHeuristic_WithDelay, nullptr}}; |
| #endif |
| |
| #if BUILDFLAG(ENABLE_VR) |
| const FeatureEntry::Choice kWebXrForceRuntimeChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kWebXrRuntimeChoiceNone, switches::kWebXrForceRuntime, |
| switches::kWebXrRuntimeNone}, |
| #if BUILDFLAG(ENABLE_ARCORE) |
| {flag_descriptions::kWebXrRuntimeChoiceArCore, switches::kWebXrForceRuntime, |
| switches::kWebXrRuntimeArCore}, |
| #endif |
| #if BUILDFLAG(ENABLE_CARDBOARD) |
| {flag_descriptions::kWebXrRuntimeChoiceCardboard, |
| switches::kWebXrForceRuntime, switches::kWebXrRuntimeCardboard}, |
| #endif |
| #if BUILDFLAG(ENABLE_OPENXR) |
| {flag_descriptions::kWebXrRuntimeChoiceOpenXR, switches::kWebXrForceRuntime, |
| switches::kWebXrRuntimeOpenXr}, |
| #endif // ENABLE_OPENXR |
| {flag_descriptions::kWebXrRuntimeChoiceOrientationSensors, |
| switches::kWebXrForceRuntime, switches::kWebXrRuntimeOrientationSensors}, |
| }; |
| |
| const FeatureEntry::Choice KWebXrHandAnonymizationChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kWebXrHandAnonymizationChoiceRuntime, |
| device::switches::kWebXrHandAnonymizationStrategy, |
| device::switches::kWebXrHandAnonymizationStrategyRuntime}, |
| {flag_descriptions::kWebXrHandAnonymizationChoiceFallback, |
| device::switches::kWebXrHandAnonymizationStrategy, |
| device::switches::kWebXrHandAnonymizationStrategyFallback}, |
| {flag_descriptions::kWebXrHandAnonymizationChoiceNone, |
| device::switches::kWebXrHandAnonymizationStrategy, |
| device::switches::kWebXrHandAnonymizationStrategyNone}, |
| }; |
| #endif // ENABLE_VR |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kAndroidWindowOcclusionOptimizations[] = { |
| {"occlusion_optimizations", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidWindowOcclusionVariations[] = { |
| {"with optimizations", kAndroidWindowOcclusionOptimizations, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCCTAdaptiveButton_CPA[] = { |
| {"default_variant", "15"}, // 15 == Open In Browser |
| {"contextual_only", "true"}}; |
| const FeatureEntry::FeatureParam kCCTAdaptiveButton_CPA_RMFallbackMenu[] = { |
| {"default_variant", "15"}, |
| {"contextual_only", "true"}, |
| {"reader_mode_fallback_menu", "true"}}; |
| const FeatureEntry::FeatureParam kCCTAdaptiveButton_MenuOIB[] = { |
| {"show_open_in_browser_menu_top", "true"}}; |
| const FeatureEntry::FeatureVariation kCCTAdaptiveButtonVariations[] = { |
| {"Menu OIB moved up", kCCTAdaptiveButton_MenuOIB, nullptr}, |
| {"CPA+OIB", kCCTAdaptiveButton_CPA, nullptr}, |
| {"CPA+OIB+RMFallbackMenu", kCCTAdaptiveButton_CPA_RMFallbackMenu, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCCTAdaptiveButtonTestSwitchHide[] = { |
| {"hide-button", "true"}, |
| {"always-animate", "false"}}; |
| const FeatureEntry::FeatureParam kCCTAdaptiveButtonTestSwitchChip[] = { |
| {"hide-button", "false"}, |
| {"always-animate", "true"}}; |
| const FeatureEntry::FeatureParam kCCTAdaptiveButtonTestSwitchBoth[] = { |
| {"hide-button", "true"}, |
| {"always-animate", "true"}}; |
| const FeatureEntry::FeatureVariation kCCTAdaptiveButtonTestSwitchVariations[] = |
| { |
| {"+Hide button", kCCTAdaptiveButtonTestSwitchHide, nullptr}, |
| {"+Always animate chip", kCCTAdaptiveButtonTestSwitchChip, nullptr}, |
| {"+Both", kCCTAdaptiveButtonTestSwitchBoth, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCCTResizablePolicyParamUseAllowlist[] = { |
| {"default_policy", "use-allowlist"}}; |
| const FeatureEntry::FeatureParam kCCTResizablePolicyParamUseDenylist[] = { |
| {"default_policy", "use-denylist"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kCCTResizableThirdPartiesDefaultPolicyVariations[] = { |
| {"Use Allowlist", kCCTResizablePolicyParamUseAllowlist, nullptr}, |
| {"Use Denylist", kCCTResizablePolicyParamUseDenylist, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kCCTBottomBarButtonBalancedWithHomeParam[] = { |
| {"google_bottom_bar_button_list", "0,10,3,2"}}; |
| const FeatureEntry::FeatureParam kCCTBottomBarButtonsBalancedWithCustomParam[] = |
| {{"google_bottom_bar_button_list", "0,3,8,2"}}; |
| const FeatureEntry::FeatureParam kCCTBottomBarButtonsBalancedWithSearchParam[] = |
| {{"google_bottom_bar_button_list", "0,3,9,2"}}; |
| const FeatureEntry::FeatureParam kCCTBottomBarHomeInSpotlightParam[] = { |
| {"google_bottom_bar_button_list", "10,10,3,2"}}; |
| const FeatureEntry::FeatureParam kCCTBottomBarCustomInSpotlightParam[] = { |
| {"google_bottom_bar_button_list", "8,8,3,2"}}; |
| const FeatureEntry::FeatureParam kCCTBottomBarSearchInSpotlightParam[] = { |
| {"google_bottom_bar_button_list", "9,9,3,2"}}; |
| |
| const FeatureEntry::FeatureVariation kCCTGoogleBottomBarVariations[] = { |
| {"Balanced with home button", kCCTBottomBarButtonBalancedWithHomeParam, |
| nullptr}, |
| {"Balanced with custom button", kCCTBottomBarButtonsBalancedWithCustomParam, |
| nullptr}, |
| {"Balanced with search button", kCCTBottomBarButtonsBalancedWithSearchParam, |
| nullptr}, |
| {"home button in spotlight", kCCTBottomBarHomeInSpotlightParam, nullptr}, |
| {"custom button in spotlight", kCCTBottomBarCustomInSpotlightParam, |
| nullptr}, |
| {"search button in spotlight", kCCTBottomBarSearchInSpotlightParam, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCCTDoubleDeckerBottomBarParam[] = { |
| {"google_bottom_bar_variant_layout", "1"}}; |
| const FeatureEntry::FeatureParam kCCTSingleDeckerBottomBarParam[] = { |
| {"google_bottom_bar_variant_layout", "2"}}; |
| const FeatureEntry::FeatureParam |
| kCCTSingleDeckerBottomBarWithButtonsOnRightParam[] = { |
| {"google_bottom_bar_variant_layout", "3"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kCCTGoogleBottomBarVariantLayoutsVariations[] = { |
| {"Double decker", kCCTDoubleDeckerBottomBarParam, nullptr}, |
| {"Single decker", kCCTSingleDeckerBottomBarParam, nullptr}, |
| {"Single decker with button(s) on right", |
| kCCTSingleDeckerBottomBarWithButtonsOnRightParam, nullptr}, |
| }; |
| const FeatureEntry::FeatureParam kTabBottomSheetSuppressToolbarParam[] = { |
| {"suppress_bottom_toolbar_while_open", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kTabBottomSheetVariations[] = { |
| {"Suppress bottom toolbar while open", kTabBottomSheetSuppressToolbarParam, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kTabBottomSheetFullHeight080Param[] = { |
| {"full_height_ratio", "0.80"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetFullHeight085Param[] = { |
| {"full_height_ratio", "0.85"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetFullHeight090Param[] = { |
| {"full_height_ratio", "0.90"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetFullHeight095Param[] = { |
| {"full_height_ratio", "0.95"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetFullHeight100Param[] = { |
| {"full_height_ratio", "1.00"}}; |
| |
| const FeatureEntry::FeatureVariation kTabBottomSheetFullHeightVariations[] = { |
| {"0.80 ratio", kTabBottomSheetFullHeight080Param, nullptr}, |
| {"0.85 ratio", kTabBottomSheetFullHeight085Param, nullptr}, |
| {"0.90 ratio", kTabBottomSheetFullHeight090Param, nullptr}, |
| {"0.95 ratio", kTabBottomSheetFullHeight095Param, nullptr}, |
| {"1.00 ratio", kTabBottomSheetFullHeight100Param, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kTabBottomSheetHalfHeight065Param[] = { |
| {"half_height_ratio", "0.65"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetHalfHeight070Param[] = { |
| {"half_height_ratio", "0.70"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetHalfHeight075Param[] = { |
| {"half_height_ratio", "0.75"}}; |
| const FeatureEntry::FeatureParam kTabBottomSheetHalfHeight080Param[] = { |
| {"half_height_ratio", "0.80"}}; |
| |
| const FeatureEntry::FeatureVariation kTabBottomSheetHalfHeightVariations[] = { |
| {"0.65 ratio", kTabBottomSheetHalfHeight065Param, nullptr}, |
| {"0.70 ratio", kTabBottomSheetHalfHeight070Param, nullptr}, |
| {"0.75 ratio", kTabBottomSheetHalfHeight075Param, nullptr}, |
| {"0.80 ratio", kTabBottomSheetHalfHeight080Param, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kTabBottomSheetResizeWebviewDefaultParam[] = { |
| {"resizing_strategy", "default"}}; |
| const FeatureEntry::FeatureParam |
| kTabBottomSheetResizeWebviewDragDirectionParam[] = { |
| {"resizing_strategy", "drag_direction"}}; |
| |
| const FeatureEntry::FeatureVariation kTabBottomSheetResizeWebviewVariations[] = |
| {{"Default strategy", kTabBottomSheetResizeWebviewDefaultParam, nullptr}, |
| {"Drag direction strategy", kTabBottomSheetResizeWebviewDragDirectionParam, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAndroidSidePanelDevFeatureTabScoped[] = { |
| {"scope", "tab"}}; |
| const FeatureEntry::FeatureParam kAndroidSidePanelDevFeatureWindowScoped[] = { |
| {"scope", "window"}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidSidePanelDevFeatureVariations[] = { |
| {"Window Scoped", kAndroidSidePanelDevFeatureWindowScoped, nullptr}, |
| {"Tab Scoped", kAndroidSidePanelDevFeatureTabScoped, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kEnableSwipeToSwitchPaneEmphasizedMaxDuration250ms[] = { |
| {"use_emphasized_interpolator", "true"}, |
| {"max_duration_ms", "250"}}; |
| const FeatureEntry::FeatureParam |
| kEnableSwipeToSwitchPaneEmphasizedMaxDuration200ms[] = { |
| {"use_emphasized_interpolator", "true"}, |
| {"max_duration_ms", "200"}}; |
| |
| const FeatureEntry::FeatureVariation kEnableSwipeToSwitchPaneVariations[] = { |
| {"Emphasized curve (max duration 250ms)", |
| kEnableSwipeToSwitchPaneEmphasizedMaxDuration250ms, nullptr}, |
| {"Emphasized curve (max duration 200ms)", |
| kEnableSwipeToSwitchPaneEmphasizedMaxDuration200ms, nullptr}}; |
| |
| const FeatureEntry::Choice kAndroidTabDeclutterArchiveOnDesktopChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {"Force Disable", switches::kEnableFeatures, |
| "AndroidTabDeclutterArchiveOnDesktop:force_disable/true"}, |
| {"Disable by Default", switches::kEnableFeatures, |
| "AndroidTabDeclutterArchiveOnDesktop:disable_by_default/true"}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "AndroidTabDeclutterArchiveOnDesktop"}, |
| }; |
| |
| const FeatureEntry::Choice kReaderModeHeuristicsChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kReaderModeHeuristicsMarkup, |
| switches::kReaderModeHeuristics, |
| switches::reader_mode_heuristics::kOGArticle}, |
| {flag_descriptions::kReaderModeHeuristicsAdaboost, |
| switches::kReaderModeHeuristics, |
| switches::reader_mode_heuristics::kAdaBoost}, |
| {flag_descriptions::kReaderModeHeuristicsAlwaysOn, |
| switches::kReaderModeHeuristics, |
| switches::reader_mode_heuristics::kAlwaysTrue}, |
| {flag_descriptions::kReaderModeHeuristicsAlwaysOff, |
| switches::kReaderModeHeuristics, switches::reader_mode_heuristics::kNone}, |
| {flag_descriptions::kReaderModeHeuristicsAllArticles, |
| switches::kReaderModeHeuristics, |
| switches::reader_mode_heuristics::kAllArticles}, |
| }; |
| |
| const FeatureEntry::Choice kForceUpdateMenuTypeChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kUpdateMenuTypeNone, switches::kForceUpdateMenuType, |
| "none"}, |
| {flag_descriptions::kUpdateMenuTypeUpdateAvailable, |
| switches::kForceUpdateMenuType, "update_available"}, |
| {flag_descriptions::kUpdateMenuTypeUnsupportedOSVersion, |
| switches::kForceUpdateMenuType, "unsupported_os_version"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kOmahaMinSdkVersionAndroidMinSdk1[] = { |
| {"min_sdk_version", "1"}}; |
| const FeatureEntry::FeatureParam kOmahaMinSdkVersionAndroidMinSdk1000[] = { |
| {"min_sdk_version", "1000"}}; |
| const FeatureEntry::FeatureVariation kOmahaMinSdkVersionAndroidVariations[] = { |
| {flag_descriptions::kOmahaMinSdkVersionAndroidMinSdk1Description, |
| kOmahaMinSdkVersionAndroidMinSdk1, nullptr}, |
| {flag_descriptions::kOmahaMinSdkVersionAndroidMinSdk1000Description, |
| kOmahaMinSdkVersionAndroidMinSdk1000, nullptr}, |
| }; |
| |
| const FeatureEntry::Choice kSafetyHubUnifiedPasswordsModuleChoices[] = { |
| {"Default", "", ""}, |
| {"Enabled", switches::kEnableFeatures, |
| "SafetyHubLocalPasswordsModule, SafetyHubUnifiedPasswordsModule"}, |
| {"Disabled", switches::kDisableFeatures, |
| "SafetyHubLocalPasswordsModule, SafetyHubUnifiedPasswordsModule"}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kChromeFindsTestOptInConditions[] = { |
| {"enable_srp_return_count_opt_in", "true"}, |
| {"enable_theme_url_visit_count_opt_in", "true"}, |
| {"enable_omnibox_recent_search_suggestion_opt_in", "true"}, |
| {"finds_opt_in_promo_cooldown_in_days", "0"}, |
| {"finds_opt_in_promo_max_interacted_count", "9999"}}; |
| |
| const FeatureEntry::FeatureVariation kChromeFindsVariations[] = { |
| {"(opt-in testing)", kChromeFindsTestOptInConditions, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kPopularSitesRefreshUsParamArm1[] = { |
| {"arm", "1"}}; // ntp_tiles::kPopularSitesRefreshUsArm.name |
| const FeatureEntry::FeatureParam kPopularSitesRefreshUsParamArm2[] = { |
| {"arm", "2"}}; // ntp_tiles::kPopularSitesRefreshUsArm.name |
| const FeatureEntry::FeatureParam kPopularSitesRefreshUsParamArm3[] = { |
| {"arm", "3"}}; // ntp_tiles::kPopularSitesRefreshUsArm.name |
| |
| const FeatureEntry::FeatureVariation kPopularSitesRefreshUsChoices[] = { |
| {flag_descriptions::kPopularSitesRefreshUsChoiceArm1, |
| kPopularSitesRefreshUsParamArm1, nullptr}, |
| {flag_descriptions::kPopularSitesRefreshUsChoiceArm2, |
| kPopularSitesRefreshUsParamArm2, nullptr}, |
| {flag_descriptions::kPopularSitesRefreshUsChoiceArm3, |
| kPopularSitesRefreshUsParamArm3, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kDisablePartnerHomepageAndroidForZeroTabsParam[] = { |
| {"disable_partner_homepage_android_for_zero_tabs", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kDisablePartnerHomepageAndroidVariations[] = { |
| {"For zero tabs (US only)", |
| kDisablePartnerHomepageAndroidForZeroTabsParam, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kEnergyEffectOriginalParam[] = { |
| {"EnergyEffectVariantParam", "energy-effect-original"}}; |
| const FeatureEntry::FeatureParam kEnergyEffectDarkerShadowParam[] = { |
| {"EnergyEffectVariantParam", "energy-effect-darker-shadow"}}; |
| const FeatureEntry::FeatureParam kPreEnergyEffectWithBorderParam[] = { |
| {"EnergyEffectVariantParam", "pre-energy-effect-with-border"}}; |
| const FeatureEntry::FeatureParam kEnergyEffectFuseboxParam[] = { |
| {"EnergyEffectVariantParam", "energy-effect-fusebox"}}; |
| |
| const FeatureEntry::FeatureVariation kEnergyEffectVariations[] = { |
| {"Original Energy Effect", kEnergyEffectOriginalParam, nullptr}, |
| {"Energy Effect with Darker Shadow", kEnergyEffectDarkerShadowParam, |
| nullptr}, |
| {"Pre-Energy-Effect with Energy-Effect Border", |
| kPreEnergyEffectWithBorderParam, nullptr}, |
| {"Energy Effect with Fusebox Shadow", kEnergyEffectFuseboxParam, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kWebIdentityDigitalIdentityCredentialNoDialogParam[] = { |
| {"dialog", "no_dialog"}}; |
| const FeatureEntry::FeatureParam |
| kWebIdentityDigitalIdentityCredentialDefaultParam[] = { |
| {"dialog", "default"}}; |
| const FeatureEntry::FeatureParam |
| kWebIdentityDigitalIdentityCredentialLowRiskDialogParam[] = { |
| {"dialog", "low_risk"}}; |
| const FeatureEntry::FeatureParam |
| kWebIdentityDigitalIdentityCredentialHighRiskDialogParam[] = { |
| {"dialog", "high_risk"}}; |
| const FeatureEntry::FeatureVariation |
| kWebIdentityDigitalIdentityCredentialVariations[] = { |
| {"with dialog depending on what credentials are requested", |
| kWebIdentityDigitalIdentityCredentialDefaultParam, nullptr}, |
| {"without dialog", kWebIdentityDigitalIdentityCredentialNoDialogParam, |
| nullptr}, |
| {"with confirmation dialog with mild warning before sending identity " |
| "request to Android OS", |
| kWebIdentityDigitalIdentityCredentialLowRiskDialogParam, nullptr}, |
| {"with confirmation dialog with severe warning before sending " |
| "identity request to Android OS", |
| kWebIdentityDigitalIdentityCredentialHighRiskDialogParam, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kMBIModeLegacy[] = {{"mode", "legacy"}}; |
| const FeatureEntry::FeatureParam kMBIModeEnabledPerRenderProcessHost[] = { |
| {"mode", "per_render_process_host"}}; |
| const FeatureEntry::FeatureParam kMBIModeEnabledPerSiteInstance[] = { |
| {"mode", "per_site_instance"}}; |
| |
| const FeatureEntry::FeatureVariation kMBIModeVariations[] = { |
| {"legacy mode", kMBIModeLegacy, nullptr}, |
| {"per render process host", kMBIModeEnabledPerRenderProcessHost, nullptr}, |
| {"per site instance", kMBIModeEnabledPerSiteInstance, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kSearchPrefetchWithoutHoldback[] = { |
| {"prefetch_holdback", "false"}}; |
| const FeatureEntry::FeatureParam kSearchPrefetchWithHoldback[] = { |
| {"prefetch_holdback", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kSearchPrefetchServicePrefetchingVariations[] = { |
| {"without holdback", kSearchPrefetchWithoutHoldback, nullptr}, |
| {"with holdback", kSearchPrefetchWithHoldback, nullptr}}; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kAim3pEntrypointDebugEnabled[] = { |
| {"Aim3pEntrypointDebug", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kAim3pEntrypointVariations[] = { |
| {"with debug config", kAim3pEntrypointDebugEnabled, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kWebUIOmniboxDynamicAiModeButton_AnimOnly[] = { |
| {"Omnibox_DynamicAnimation", "true"}, |
| {"Omnibox_DynamicColorScheme", "false"}}; |
| |
| const FeatureEntry::FeatureParam kWebUIOmniboxDynamicAiModeButton_ColorOnly[] = |
| {{"Omnibox_DynamicAnimation", "false"}, |
| {"Omnibox_DynamicColorScheme", "true"}}; |
| |
| const FeatureEntry::FeatureParam kWebUIOmniboxDynamicAiModeButton_Both[] = { |
| {"Omnibox_DynamicAnimation", "true"}, |
| {"Omnibox_DynamicColorScheme", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kWebUIOmniboxDynamicAiModeButtonVariations[] = { |
| {"Animation Only", kWebUIOmniboxDynamicAiModeButton_AnimOnly, nullptr}, |
| {"Color Scheme Only", kWebUIOmniboxDynamicAiModeButton_ColorOnly, |
| nullptr}, |
| {"Animation and Color Scheme", kWebUIOmniboxDynamicAiModeButton_Both, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kOmniboxDynamicAimSubmitRhsHint[] = { |
| {"Omnibox_ShowRhsAimHint", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kOmniboxDynamicSubmitVariations[] = { |
| {"- \"Input has hint", kOmniboxDynamicAimSubmitRhsHint, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kPedalRowWithPlusButtonOnly[] = { |
| {"Omnibox_AddContextButtonVariant", "below_results"}, |
| {"Omnibox_HideClassicContextButton", "false"}, |
| {"Omnibox_ShowLensSearchChip", "false"}, |
| {"Omnibox_ContextButtonShapeIsOblong", "true"}, |
| {"Omnibox_ContextButtonHasBackground", "false"}, |
| {"Omnibox_ContextButtonShowSuggestionLabel", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kPedalRowWithPlusButtonWithBackground[] = { |
| {"Omnibox_AddContextButtonVariant", "below_results"}, |
| {"Omnibox_HideClassicContextButton", "false"}, |
| {"Omnibox_ShowLensSearchChip", "false"}, |
| {"Omnibox_ContextButtonShapeIsOblong", "true"}, |
| {"Omnibox_ContextButtonHasBackground", "true"}, |
| {"Omnibox_ContextButtonShowSuggestionLabel", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kPedalRowWithSuggestionLikeButton[] = { |
| {"Omnibox_AddContextButtonVariant", "below_results"}, |
| {"Omnibox_HideClassicContextButton", "false"}, |
| {"Omnibox_ShowLensSearchChip", "false"}, |
| {"Omnibox_ContextButtonShapeIsOblong", "true"}, |
| {"Omnibox_ContextButtonHasBackground", "false"}, |
| {"Omnibox_ContextButtonShowSuggestionLabel", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kChipWithPlusButtonWithBackground[] = { |
| {"Omnibox_AddContextButtonVariant", "below_results"}, |
| {"Omnibox_HideClassicContextButton", "false"}, |
| {"Omnibox_ShowLensSearchChip", "true"}, |
| {"Omnibox_ContextButtonShapeIsOblong", "true"}, |
| {"Omnibox_ContextButtonHasBackground", "true"}, |
| {"Omnibox_ContextButtonShowSuggestionLabel", "false"}, |
| }; |
| const FeatureEntry::FeatureVariation kWebUIOmniboxSimplificationVariations[] = { |
| {"- Pedal row with plus button only", kPedalRowWithPlusButtonOnly, nullptr}, |
| {"- Pedal row with plus button and background", |
| kPedalRowWithPlusButtonWithBackground, nullptr}, |
| {"- Pedal row with suggestion label", kPedalRowWithSuggestionLikeButton, |
| nullptr}, |
| {"- Chip with plus button and background", |
| kChipWithPlusButtonWithBackground, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kOmniboxEverywhereProfilePicker[] = { |
| {"ProfilePicker", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kOmniboxEverywhereVariations[] = { |
| {"with Profile Picker", kOmniboxEverywhereProfilePicker, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kWebUiOmniboxAskGAboutThisPageCobrowseAndLensEntrypoint[] = { |
| {"Omnibox_AskGCoBrowse", "true"}, |
| {"Omnibox_AskGCoBrowseWithVisualSelection", "false"}, |
| {"Omnibox_AskGComposeBox", "false"}, |
| {"Omnibox_AskGLensChipRoute", "true"}, |
| {"Omnibox_AskGSwapIcon", "true"}, |
| {"Omnibox_AskGSwapSuggestionIcon", "false"}, |
| {"Omnibox_AskGCurrentTabChip", "false"}, |
| {"Omnibox_AskGLensIcon", "true"}, |
| {"Omnibox_AskGLensSearchHintText", "true"}, |
| {"Omnibox_AskGShowChip", "false"}, |
| {"Omnibox_AskGComposeboxLensChip", "false"}, |
| {"Omnibox_AskGBlockAutoTabZeroStateSuggestions", "false"}, |
| {"Omnibox_AskGShowFirstDescription", "false"}, |
| {"Omnibox_AskGComposeboxPlaceholder", "false"}, |
| {"Omnibox_AskGBypassPrivacyNotice", "true"}}; |
| const FeatureEntry::FeatureParam |
| kWebUiOmniboxAskGAboutThisPageCobrowsePlusVisualSelection[] = { |
| {"Omnibox_AskGCoBrowse", "false"}, |
| {"Omnibox_AskGCoBrowseWithVisualSelection", "true"}, |
| {"Omnibox_AskGComposeBox", "false"}, |
| {"Omnibox_AskGLensChipRoute", "false"}, |
| {"Omnibox_AskGSwapIcon", "true"}, |
| {"Omnibox_AskGSwapSuggestionIcon", "false"}, |
| {"Omnibox_AskGCurrentTabChip", "false"}, |
| {"Omnibox_AskGLensIcon", "false"}, |
| {"Omnibox_AskGLensSearchHintText", "true"}, |
| {"Omnibox_AskGShowChip", "false"}, |
| {"Omnibox_AskGComposeboxLensChip", "false"}, |
| {"Omnibox_AskGBlockAutoTabZeroStateSuggestions", "false"}, |
| {"Omnibox_AskGShowFirstDescription", "false"}, |
| {"Omnibox_AskGComposeboxPlaceholder", "false"}, |
| {"Omnibox_AskGBypassPrivacyNotice", "true"}}; |
| const FeatureEntry::FeatureParam |
| kWebUiOmniboxAskGAboutThisPageOmniboxComposebox[] = { |
| {"Omnibox_AskGCoBrowse", "false"}, |
| {"Omnibox_AskGCoBrowseWithVisualSelection", "false"}, |
| {"Omnibox_AskGComposeBox", "true"}, |
| {"Omnibox_AskGLensChipRoute", "true"}, |
| {"Omnibox_AskGSwapIcon", "true"}, |
| {"Omnibox_AskGSwapSuggestionIcon", "false"}, |
| {"Omnibox_AskGCurrentTabChip", "false"}, |
| {"Omnibox_AskGLensIcon", "false"}, |
| {"Omnibox_AskGLensSearchHintText", "true"}, |
| {"Omnibox_AskGShowChip", "false"}, |
| {"Omnibox_AskGComposeboxLensChip", "true"}, |
| {"Omnibox_AskGBlockAutoTabZeroStateSuggestions", "true"}, |
| {"Omnibox_AskGShowFirstDescription", "false"}, |
| {"Omnibox_AskGComposeboxPlaceholder", "true"}, |
| {"Omnibox_AskGBypassPrivacyNotice", "true"}}; |
| const FeatureEntry::FeatureParam |
| kWebUiOmniboxAskGAboutThisPageOmniboxComposeboxAndLensEntrypoint[] = { |
| {"Omnibox_AskGCoBrowse", "false"}, |
| {"Omnibox_AskGCoBrowseWithVisualSelection", "false"}, |
| {"Omnibox_AskGComposeBox", "true"}, |
| {"Omnibox_AskGLensChipRoute", "true"}, |
| {"Omnibox_AskGSwapIcon", "true"}, |
| {"Omnibox_AskGSwapSuggestionIcon", "false"}, |
| {"Omnibox_AskGCurrentTabChip", "false"}, |
| {"Omnibox_AskGLensIcon", "true"}, |
| {"Omnibox_AskGLensSearchHintText", "true"}, |
| {"Omnibox_AskGShowChip", "false"}, |
| {"Omnibox_AskGComposeboxLensChip", "false"}, |
| {"Omnibox_AskGBlockAutoTabZeroStateSuggestions", "true"}, |
| {"Omnibox_AskGShowFirstDescription", "false"}, |
| {"Omnibox_AskGComposeboxPlaceholder", "true"}, |
| {"Omnibox_AskGBypassPrivacyNotice", "true"}}; |
| const FeatureEntry::FeatureParam |
| kWebUiOmniboxAskGAboutThisPageOmniboxChipComposeboxAndLensEntrypoint[] = { |
| {"Omnibox_AskGCoBrowse", "false"}, |
| {"Omnibox_AskGCoBrowseWithVisualSelection", "false"}, |
| {"Omnibox_AskGComposeBox", "false"}, |
| {"Omnibox_AskGLensChipRoute", "true"}, |
| {"Omnibox_AskGSwapIcon", "true"}, |
| {"Omnibox_AskGSwapSuggestionIcon", "true"}, |
| {"Omnibox_AskGCurrentTabChip", "true"}, |
| {"Omnibox_AskGLensIcon", "true"}, |
| {"Omnibox_AskGLensSearchHintText", "true"}, |
| {"Omnibox_AskGShowChip", "true"}, |
| {"Omnibox_AskGComposeboxLensChip", "false"}, |
| {"Omnibox_AskGBlockAutoTabZeroStateSuggestions", "true"}, |
| {"Omnibox_AskGShowFirstDescription", "true"}, |
| {"Omnibox_AskGComposeboxPlaceholder", "true"}, |
| {"Omnibox_AskGBypassPrivacyNotice", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kWebUiOmniboxAskGAboutThisPageVariations[] = { |
| {"Ask G - Cobrowse and Lens entrypoint", |
| kWebUiOmniboxAskGAboutThisPageCobrowseAndLensEntrypoint, nullptr}, |
| {"Ask G - Cobrowse + Visual Selection", |
| kWebUiOmniboxAskGAboutThisPageCobrowsePlusVisualSelection, nullptr}, |
| {"Ask G - Omnibox Composebox", |
| kWebUiOmniboxAskGAboutThisPageOmniboxComposebox, nullptr}, |
| {"Ask G - Omnibox Composebox and Lens entrypoint", |
| kWebUiOmniboxAskGAboutThisPageOmniboxComposeboxAndLensEntrypoint, |
| nullptr}, |
| {"Ask G - Omnibox Chip Composebox and Lens entrypoint", |
| kWebUiOmniboxAskGAboutThisPageOmniboxChipComposeboxAndLensEntrypoint, |
| nullptr}}; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kWebUIOmniboxPopupDebugSxS[] = { |
| {"SxS", "true"}}; |
| const FeatureEntry::FeatureVariation kWebUIOmniboxPopupDebugVariations[] = { |
| {"Side by Side", kWebUIOmniboxPopupDebugSxS, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kWebUIOmniboxFullPopupUseBrowserView[] = { |
| {"Omnibox_UseBrowserView", "true"}}; |
| const FeatureEntry::FeatureParam kWebUIOmniboxFullPopupMultiline[] = { |
| {"Omnibox_Multiline", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kWebUIOmniboxFullPopupVariations[] = { |
| {"- Use BrowserView", kWebUIOmniboxFullPopupUseBrowserView, nullptr}, |
| {"- with Multiline", kWebUIOmniboxFullPopupMultiline, nullptr}, |
| }; |
| |
| const FeatureEntry::Choice kEnableGpuRasterizationChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, |
| switches::kEnableGpuRasterization, ""}, |
| {flags_ui::kGenericExperimentChoiceDisabled, |
| switches::kDisableGpuRasterization, ""}, |
| }; |
| |
| const FeatureEntry::Choice kTopChromeTouchUiChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceAutomatic, switches::kTopChromeTouchUi, |
| switches::kTopChromeTouchUiAuto}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kTopChromeTouchUi, |
| switches::kTopChromeTouchUiDisabled}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kTopChromeTouchUi, |
| switches::kTopChromeTouchUiEnabled}}; |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| |
| const FeatureEntry::FeatureParam kZinkEnableRecommended[] = { |
| {"BorealisZinkGlDriverParam", "ZinkEnableRecommended"}}; |
| const FeatureEntry::FeatureParam kZinkEnableAll[] = { |
| {"BorealisZinkGlDriverParam", "ZinkEnableAll"}}; |
| |
| const FeatureEntry::FeatureVariation kBorealisZinkGlDriverVariations[] = { |
| {"for recommended apps", kZinkEnableRecommended, nullptr}, |
| {"for all apps", kZinkEnableAll, nullptr}}; |
| |
| const char kArcEnableVirtioBlkForDataInternalName[] = |
| "arc-enable-virtio-blk-for-data"; |
| |
| const char kArcEnableAttestationFlag[] = "arc-enable-attestation"; |
| |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| const FeatureEntry::Choice kForceUIDirectionChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kForceDirectionLtr, switches::kForceUIDirection, |
| switches::kForceDirectionLTR}, |
| {flag_descriptions::kForceDirectionRtl, switches::kForceUIDirection, |
| switches::kForceDirectionRTL}, |
| }; |
| |
| const FeatureEntry::Choice kForceTextDirectionChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kForceDirectionLtr, switches::kForceTextDirection, |
| switches::kForceDirectionLTR}, |
| {flag_descriptions::kForceDirectionRtl, switches::kForceTextDirection, |
| switches::kForceDirectionRTL}, |
| }; |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::Choice kSchedulerConfigurationChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kSchedulerConfigurationConservative, |
| ash::switches::kSchedulerConfiguration, |
| ash::switches::kSchedulerConfigurationConservative}, |
| {flag_descriptions::kSchedulerConfigurationPerformance, |
| ash::switches::kSchedulerConfiguration, |
| ash::switches::kSchedulerConfigurationPerformance}, |
| }; |
| |
| const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_50[] = { |
| {"search_result_translation_duration", "50"}}; |
| const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_100[] = { |
| {"search_result_translation_duration", "100"}}; |
| const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_150[] = { |
| {"search_result_translation_duration", "150"}}; |
| |
| const FeatureEntry::FeatureVariation kDynamicSearchUpdateAnimationVariations[] = |
| {{"50ms", kDynamicSearchUpdateAnimationDuration_50, nullptr}, |
| {"100ms", kDynamicSearchUpdateAnimationDuration_100, nullptr}, |
| {"150ms", kDynamicSearchUpdateAnimationDuration_150, nullptr}}; |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| const FeatureEntry::Choice kSiteIsolationOptOutChoices[] = { |
| {flag_descriptions::kSiteIsolationOptOutChoiceDefault, "", ""}, |
| {flag_descriptions::kSiteIsolationOptOutChoiceOptOut, |
| switches::kDisableSiteIsolation, ""}, |
| }; |
| |
| const FeatureEntry::Choice kForceColorProfileChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kForceColorProfileSRGB, |
| switches::kForceDisplayColorProfile, "srgb"}, |
| {flag_descriptions::kForceColorProfileP3, |
| switches::kForceDisplayColorProfile, "display-p3-d65"}, |
| {flag_descriptions::kForceColorProfileRec2020, |
| switches::kForceDisplayColorProfile, "rec2020"}, |
| {flag_descriptions::kForceColorProfileColorSpin, |
| switches::kForceDisplayColorProfile, "color-spin-gamma24"}, |
| {flag_descriptions::kForceColorProfileSCRGBLinear, |
| switches::kForceDisplayColorProfile, "scrgb-linear"}, |
| {flag_descriptions::kForceColorProfileHDR10, |
| switches::kForceDisplayColorProfile, "hdr10"}, |
| }; |
| |
| #if BUILDFLAG(IS_WIN) |
| constexpr FeatureEntry::FeatureParam kStartupLaunchForegroundEnabledParams[] = { |
| {features::kLaunchOnStartupModeParamName, "foreground"}, |
| {features::kLaunchOnStartupDefaultPreferenceParamName, "enabled"}, |
| }; |
| constexpr FeatureEntry::FeatureParam kStartupLaunchForegroundDisabledParams[] = |
| { |
| {features::kLaunchOnStartupModeParamName, "foreground"}, |
| {features::kLaunchOnStartupDefaultPreferenceParamName, "disabled"}, |
| }; |
| constexpr FeatureEntry::FeatureVariation kStartupLaunchVariations[] = { |
| {"with Foreground launch enabled by default", |
| kStartupLaunchForegroundEnabledParams, nullptr}, |
| {"with Foreground launch disabled by default", |
| kStartupLaunchForegroundDisabledParams, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| constexpr FeatureEntry::FeatureParam |
| kHappinessTrackingSurveysForDesktopDemoWithoutAutoPrompt[] = { |
| {"auto_prompt", "false"}}; |
| constexpr FeatureEntry::FeatureVariation |
| kHappinessTrackingSurveysForDesktopDemoVariations[] = { |
| {"without Auto Prompt", |
| kHappinessTrackingSurveysForDesktopDemoWithoutAutoPrompt, nullptr}}; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kJourneysShowAllVisitsParams[] = { |
| {"JourneysLocaleOrLanguageAllowlist", "*"}, |
| // To show all visits, set the number of visits above the fold to a very |
| // high number. |
| {"JourneysNumVisitsToAlwaysShowAboveTheFold", "200"}, |
| }; |
| const FeatureEntry::FeatureParam kJourneysAllLocalesParams[] = { |
| {"JourneysLocaleOrLanguageAllowlist", "*"}, |
| }; |
| const FeatureEntry::FeatureVariation kJourneysVariations[] = { |
| {"No 'Show More' - Show all visits", kJourneysShowAllVisitsParams, nullptr}, |
| {"All Supported Locales", kJourneysAllLocalesParams, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeContextualWith3Suggestions[] = { |
| {"lens-aim-suggestions-type", "Contextual"}, |
| {"number-of-aim-suggestions", "3"}}; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeContextualWith5Suggestions[] = { |
| {"lens-aim-suggestions-type", "Contextual"}, |
| {"number-of-aim-suggestions", "5"}}; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeContextualWith8Suggestions[] = { |
| {"lens-aim-suggestions-type", "Contextual"}, |
| {"number-of-aim-suggestions", "8"}}; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeMultimodalWith3Suggestions[] = { |
| {"lens-aim-suggestions-type", "Multimodal"}, |
| {"number-of-aim-suggestions", "3"}}; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeMultimodalWith5Suggestions[] = { |
| {"lens-aim-suggestions-type", "Multimodal"}, |
| {"number-of-aim-suggestions", "5"}}; |
| |
| const FeatureEntry::FeatureParam |
| kLensAimSuggestionsTypeMultimodalWith8Suggestions[] = { |
| {"lens-aim-suggestions-type", "Multimodal"}, |
| {"number-of-aim-suggestions", "8"}}; |
| |
| const FeatureEntry::FeatureVariation kLensAimSuggestionsVariations[] = { |
| {"with Contextual - 3 suggestions", |
| kLensAimSuggestionsTypeContextualWith3Suggestions, nullptr}, |
| {"with Contextual - 5 suggestions", |
| kLensAimSuggestionsTypeContextualWith5Suggestions, nullptr}, |
| {"with Contextual - 8 suggestions", |
| kLensAimSuggestionsTypeContextualWith8Suggestions, nullptr}, |
| {"with Multimodal - 3 suggestions", |
| kLensAimSuggestionsTypeMultimodalWith3Suggestions, nullptr}, |
| {"with Multimodal - 5 suggestions", |
| kLensAimSuggestionsTypeMultimodalWith5Suggestions, nullptr}, |
| {"with Multimodal - 8 suggestions", |
| kLensAimSuggestionsTypeMultimodalWith8Suggestions, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kAimServerEligibilityRequestModePostWithProto[] = { |
| {"mode", "post_with_proto"}}; |
| const FeatureEntry::FeatureParam |
| kAimServerEligibilityRequestModeGetWithLocale[] = { |
| {"mode", "get_with_locale"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kAimServerEligibilityIncludeClientLocaleVariations[] = { |
| {"GET with Locale", kAimServerEligibilityRequestModeGetWithLocale, |
| nullptr}, |
| {"POST with Proto", kAimServerEligibilityRequestModePostWithProto, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kVoiceSearchCoherenceLiveTranscriptionParams[] = { |
| {"VoiceSearchCoherenceSearchboxWithLiveTranscription", "true"}}; |
| |
| // Normal 'Enabled' option is just 'No Live Transcription'. 'Disabled' option |
| // disables live transcription and the experiment. |
| const FeatureEntry::FeatureVariation |
| kVoiceSearchCoherenceSearchboxVariations[] = { |
| {"(No Live Transcription)", {}, nullptr}, |
| {"(With Live Transcription)", |
| kVoiceSearchCoherenceLiveTranscriptionParams, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kVoiceSearchCoherenceComposeboxCobrowsingParams[] = { |
| {"VoiceSearchCoherenceComposeboxCobrowsingOnly", "true"}}; |
| |
| // Normal 'Enabled' option is just 'all composeboxes' enabled by default. |
| // 'Disabled' option disables all composeboxes, including cobrowsing (default |
| // value is 'off'). |
| const FeatureEntry::FeatureVariation |
| kVoiceSearchCoherenceComposeboxVariations[] = { |
| {"(All composeboxes)", {}, nullptr}, |
| {"(Cobrowsing only)", kVoiceSearchCoherenceComposeboxCobrowsingParams, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kContextManagementKeepMenuOpenOnTabSelectForRealboxParams[] = { |
| {"ContextManagementInComposebox", "true"}, |
| {"KeepMenuOpenOnTabSelectForRealboxComposebox", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kContextManagementEnableTabDeselectionParams[] = { |
| {"enable_tab_deselection", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kContextManagementKeepMenuOpenAndTabDeselectionParams[] = { |
| {"KeepMenuOpenOnTabSelectForRealboxComposebox", "true"}, |
| {"enable_tab_deselection", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kContextManagementEnableContextMenuTooltipsParams[] = { |
| {"enable_context_menu_tooltips", "true"}}; |
| |
| // Normal 'Enabled' option is just the flag enabled with param 'realbox closes |
| // menu on tab select' enabled by default. 'Disabled' option disables the flag, |
| // and thus the context menu and 'realbox closes menu on tab select'. |
| const FeatureEntry::FeatureVariation |
| kContextManagementInComposeboxVariations[] = { |
| {"Context Management in composebox (realbox closes menu on tab select)", |
| {}}, |
| {"Context management in composebox (realbox keeps menu open on tab " |
| "select)", |
| kContextManagementKeepMenuOpenOnTabSelectForRealboxParams, nullptr}, |
| {"Context Management in composebox (with tab deselection)", |
| kContextManagementEnableTabDeselectionParams, nullptr}, |
| {"Context Management in composebox (keeps menu open, with tab " |
| "deselection)", |
| kContextManagementKeepMenuOpenAndTabDeselectionParams, nullptr}, |
| {"Context Management in composebox (with tooltips)", |
| kContextManagementEnableContextMenuTooltipsParams, nullptr}}; |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) |
| |
| // A limited number of combinations of the rich autocompletion params. |
| const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive1[] = { |
| {"RichAutocompletionAutocompleteTitlesMinChar", "1"}, |
| {"RichAutocompletionAutocompleteShortcutTextMinChar", "1"}}; |
| const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive2[] = { |
| {"RichAutocompletionAutocompleteTitlesMinChar", "2"}, |
| {"RichAutocompletionAutocompleteShortcutTextMinChar", "2"}}; |
| const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive3[] = { |
| {"RichAutocompletionAutocompleteTitlesMinChar", "3"}, |
| {"RichAutocompletionAutocompleteShortcutTextMinChar", "3"}}; |
| const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive4[] = { |
| {"RichAutocompletionAutocompleteTitlesMinChar", "4"}, |
| {"RichAutocompletionAutocompleteShortcutTextMinChar", "4"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kOmniboxRichAutocompletionPromisingVariations[] = { |
| {"Min input length 1 characters", kOmniboxRichAutocompletionAggressive1, |
| nullptr}, |
| {"Min input length 2 characters", kOmniboxRichAutocompletionAggressive2, |
| nullptr}, |
| {"Min input length 2 characters", kOmniboxRichAutocompletionAggressive2, |
| nullptr}, |
| {"Min input length 3 characters", kOmniboxRichAutocompletionAggressive3, |
| nullptr}, |
| {"Min input length 4 characters", kOmniboxRichAutocompletionAggressive4, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kOmniboxStarterPackExpansionPreProdUrl[] = { |
| {"StarterPackGeminiUrlOverride", "https://gemini.google.com/corp/prompt"}}; |
| const FeatureEntry::FeatureParam kOmniboxStarterPackExpansionStagingUrl[] = { |
| {"StarterPackGeminiUrlOverride", |
| "https://gemini.google.com/staging/prompt"}}; |
| const FeatureEntry::FeatureVariation kOmniboxStarterPackExpansionVariations[] = |
| {{"pre-prod url", kOmniboxStarterPackExpansionPreProdUrl, nullptr}, |
| {"staging url", kOmniboxStarterPackExpansionStagingUrl, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kOmniboxUrlSuggestionsOnFocusTwoDayWindow[] = { |
| {"OnFocusMostVisitedRecencyWindow", "1"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxUrlSuggestionsOnFocusThreeDayWindow[] = |
| { |
| {"OnFocusMostVisitedRecencyWindow", "2"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxUrlSuggestionsOnFocusOneWeekWindow[] = |
| { |
| {"OnFocusMostVisitedRecencyWindow", "6"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxUrlSuggestionsOnFocusTwoWeekWindow[] = |
| { |
| {"OnFocusMostVisitedRecencyWindow", "13"}, |
| }; |
| const FeatureEntry::FeatureVariation kOmniboxUrlSuggestionsOnFocusVariations[] = |
| { |
| {"- Two day window", kOmniboxUrlSuggestionsOnFocusTwoDayWindow, |
| nullptr}, |
| {"- Three day window", kOmniboxUrlSuggestionsOnFocusThreeDayWindow, |
| nullptr}, |
| {"- One week window", kOmniboxUrlSuggestionsOnFocusOneWeekWindow, |
| nullptr}, |
| {"- Two week window", kOmniboxUrlSuggestionsOnFocusTwoWeekWindow, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax8[] = { |
| {"OmniboxZpsMaxSuggestions", "8"}, |
| {"OmniboxZpsMaxSearchSuggestions", "4"}, |
| {"OmniboxZpsMaxUrlSuggestions", "4"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax4[] = { |
| {"OmniboxZpsMaxSuggestions", "4"}, |
| {"OmniboxZpsMaxSearchSuggestions", "2"}, |
| {"OmniboxZpsMaxUrlSuggestions", "2"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax2TwoZero[] = { |
| {"OmniboxZpsMaxSuggestions", "2"}, |
| {"OmniboxZpsMaxSearchSuggestions", "2"}, |
| {"OmniboxZpsMaxUrlSuggestions", "0"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax3ThreeZero[] = { |
| {"OmniboxZpsMaxSuggestions", "3"}, |
| {"OmniboxZpsMaxSearchSuggestions", "3"}, |
| {"OmniboxZpsMaxUrlSuggestions", "0"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax4FourZero[] = { |
| {"OmniboxZpsMaxSuggestions", "4"}, |
| {"OmniboxZpsMaxSearchSuggestions", "4"}, |
| {"OmniboxZpsMaxUrlSuggestions", "0"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax5FourOne[] = { |
| {"OmniboxZpsMaxSuggestions", "5"}, |
| {"OmniboxZpsMaxSearchSuggestions", "4"}, |
| {"OmniboxZpsMaxUrlSuggestions", "1"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxZpsSuggestionLimitMax5ThreeTwo[] = { |
| {"OmniboxZpsMaxSuggestions", "5"}, |
| {"OmniboxZpsMaxSearchSuggestions", "3"}, |
| {"OmniboxZpsMaxUrlSuggestions", "2"}, |
| }; |
| const FeatureEntry::FeatureVariation kOmniboxZpsSuggestionLimitVariations[] = { |
| {"- Max 8 Suggestions (4 search, 4 url)", kOmniboxZpsSuggestionLimitMax8, |
| nullptr}, |
| {"- Max 4 Suggestions (2 search, 2 url)", kOmniboxZpsSuggestionLimitMax4, |
| nullptr}, |
| {"- Max 2 Suggestions (2 search, 0 url)", |
| kOmniboxZpsSuggestionLimitMax2TwoZero, nullptr}, |
| {"- Max 3 Suggestions (3 search, 0 url)", |
| kOmniboxZpsSuggestionLimitMax3ThreeZero, nullptr}, |
| {"- Max 4 Suggestions (4 search, 0 url)", |
| kOmniboxZpsSuggestionLimitMax4FourZero, nullptr}, |
| {"- Max 5 Suggestions (4 search, 1 url)", |
| kOmniboxZpsSuggestionLimitMax5FourOne, nullptr}, |
| {"- Max 5 Suggestions (3 search, 2 url)", |
| kOmniboxZpsSuggestionLimitMax5ThreeTwo, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kOmniboxContextualSearchOnFocusSuggestionsLimit0[] = { |
| {"Limit", "0"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxContextualSearchOnFocusSuggestionsLimit1[] = { |
| {"Limit", "1"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxContextualSearchOnFocusSuggestionsLimit2[] = { |
| {"Limit", "2"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxContextualSearchOnFocusSuggestionsLimit3[] = { |
| {"Limit", "3"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxContextualSearchOnFocusSuggestionsLimit4[] = { |
| {"Limit", "4"}, |
| }; |
| const FeatureEntry::FeatureVariation |
| kOmniboxContextualSearchOnFocusSuggestionsVariations[] = { |
| {"- Limit 0", kOmniboxContextualSearchOnFocusSuggestionsLimit0, |
| nullptr}, |
| {"- Limit 1", kOmniboxContextualSearchOnFocusSuggestionsLimit1, |
| nullptr}, |
| {"- Limit 2", kOmniboxContextualSearchOnFocusSuggestionsLimit2, |
| nullptr}, |
| {"- Limit 3", kOmniboxContextualSearchOnFocusSuggestionsLimit3, |
| nullptr}, |
| {"- Limit 4", kOmniboxContextualSearchOnFocusSuggestionsLimit4, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kContextualSuggestionsAblateOthersWhenPresentAblateAll[] = { |
| {"AblateSearchOnly", "false"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kContextualSuggestionsAblateOthersWhenPresentAblateSearchOnly[] = { |
| {"AblateSearchOnly", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kContextualSuggestionsAblateOthersWhenPresentAblateUrlOnly[] = { |
| {"AblateUrlOnly", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kContextualSuggestionsAblateOthersWhenPresentVariations[] = { |
| {"- Ablate all", kContextualSuggestionsAblateOthersWhenPresentAblateAll, |
| nullptr}, |
| {"- Ablate search only", |
| kContextualSuggestionsAblateOthersWhenPresentAblateSearchOnly, |
| nullptr}, |
| {"- Ablate URL only", |
| kContextualSuggestionsAblateOthersWhenPresentAblateUrlOnly, nullptr}, |
| }; |
| |
| const FeatureEntry::Choice kContextualSuggestionsUiImprovementsChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "LoadingSuggestionsAnimation,SuggestionsFulfilledByLensSupported," |
| "OpenLensActionUITweaks"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpFeatureOptimizationModuleRemovalDefault[] = |
| { |
| {"ModuleMinStalenessUpdateTimeInterval", "24h"}, |
| {"StaleModulesCountThreshold", "14"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpFeatureOptimizationModuleRemovalTesting[] = |
| { |
| {"ModuleMinStalenessUpdateTimeInterval", "1s"}, |
| {"StaleModulesCountThreshold", "2"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kNtpFeatureOptimizationModuleRemovalVariations[] = { |
| {"- Default Auto-Removal Timing", |
| kNtpFeatureOptimizationModuleRemovalDefault, nullptr}, |
| {"- Auto-Removal Timing for Testing", |
| kNtpFeatureOptimizationModuleRemovalTesting, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kNtpFeatureOptimizationShortcutsRemovalDefault[] = { |
| {"ShortcutsMinStalenessUpdateTimeInterval", "24h"}, |
| {"StaleShortcutsCountThreshold", "60"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kNtpFeatureOptimizationShortcutsRemovalTesting[] = { |
| {"ShortcutsMinStalenessUpdateTimeInterval", "1s"}, |
| {"StaleShortcutsCountThreshold", "5"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kNtpFeatureOptimizationShortcutsRemovalVariations[] = { |
| {"- Default Auto-Removal Timing", |
| kNtpFeatureOptimizationShortcutsRemovalDefault, nullptr}, |
| {"- Auto-Removal Timing for Testing", |
| kNtpFeatureOptimizationShortcutsRemovalTesting, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kNtpNextAllowDisablement[] = { |
| {"NtpNextDisablementContextMenuParam", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kNtpNextVariations[] = { |
| {"- Allow Disable", kNtpNextAllowDisablement, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kOmniboxToolbeltLensActionsZeroInputs[] = { |
| {"KeepToolbeltAfterInput", "false"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "false"}, |
| {"ShowAiModeActionOnNtp", "false"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltLensActionsZeroTypedInputs[] = |
| { |
| {"KeepToolbeltAfterInput", "true"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "false"}, |
| {"ShowAiModeActionOnNtp", "false"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltAiActionsZeroInputs[] = { |
| {"KeepToolbeltAfterInput", "false"}, |
| {"ShowLensActionOnNonNtp", "false"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltAiActionsZeroTypedInputs[] = { |
| {"KeepToolbeltAfterInput", "true"}, |
| {"ShowLensActionOnNonNtp", "false"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltLensAiActionsZeroInputs[] = { |
| {"KeepToolbeltAfterInput", "false"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "false"}, |
| {"ShowTabsActionOnNtp", "false"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxToolbeltLensAiActionsZeroTypedInputs[] = { |
| {"KeepToolbeltAfterInput", "true"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "false"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "false"}, |
| {"ShowTabsActionOnNtp", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltAllActionsZeroInputs[] = { |
| {"KeepToolbeltAfterInput", "false"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "true"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxToolbeltAllActionsZeroTypedInputs[] = { |
| {"KeepToolbeltAfterInput", "true"}, |
| {"ShowLensActionOnNonNtp", "true"}, |
| {"ShowLensActionOnNtp", "true"}, |
| {"ShowAiModeActionOnNonNtp", "true"}, |
| {"ShowAiModeActionOnNtp", "true"}, |
| {"ShowHistoryActionOnNonNtp", "true"}, |
| {"ShowHistoryActionOnNtp", "true"}, |
| {"ShowBookmarksActionOnNonNtp", "true"}, |
| {"ShowBookmarksActionOnNtp", "true"}, |
| {"ShowTabsActionOnNonNtp", "true"}, |
| {"ShowTabsActionOnNtp", "true"}, |
| }; |
| const FeatureEntry::FeatureVariation kOmniboxToolbeltVariations[] = { |
| {"1 - Lens Action - Zero Inputs (Default)", |
| kOmniboxToolbeltLensActionsZeroInputs, nullptr}, |
| {"2 - Lens Action - Zero + Typed Inputs", |
| kOmniboxToolbeltLensActionsZeroTypedInputs, nullptr}, |
| {"3 - AI Action - Zero Inputs", kOmniboxToolbeltAiActionsZeroInputs, |
| nullptr}, |
| {"4 - AI Action - Zero + Typed Inputs", |
| kOmniboxToolbeltAiActionsZeroTypedInputs, nullptr}, |
| {"5 - Lens + AI Actions - Zero Inputs", |
| kOmniboxToolbeltLensAiActionsZeroInputs, nullptr}, |
| {"6 - Lens + AI Actions - Zero + Typed Inputs", |
| kOmniboxToolbeltLensAiActionsZeroTypedInputs, nullptr}, |
| {"7 - All Actions - Zero Inputs", kOmniboxToolbeltAllActionsZeroInputs, |
| nullptr}, |
| {"8 - All Actions - Zero + Typed Inputs", |
| kOmniboxToolbeltAllActionsZeroTypedInputs, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kOmniboxMlUrlScoringEnabledWithFixes[] = { |
| {"enable_scoring_signals_annotators_for_ml_scoring", "true"}, |
| {"MlUrlScoringShortcutDocumentSignals", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kOmniboxMlUrlScoringUnlimitedNumCandidates[] = |
| { |
| {"MlUrlScoringUnlimitedNumCandidates", "true"}, |
| {"enable_scoring_signals_annotators_for_ml_scoring", "true"}, |
| {"MlUrlScoringShortcutDocumentSignals", "true"}, |
| }; |
| // Sets Bookmark(1), History Quick(4), History URL(8), Shortcuts(64), |
| // Document(512), and History Fuzzy(65536) providers max matches to 10. |
| const FeatureEntry::FeatureParam kOmniboxMlUrlScoringMaxMatchesByProvider10[] = |
| { |
| {"MlUrlScoringMaxMatchesByProvider", |
| "1:10,4:10,8:10,64:10,512:10,65536:10"}, |
| {"enable_scoring_signals_annotators_for_ml_scoring", "true"}, |
| {"MlUrlScoringShortcutDocumentSignals", "true"}, |
| }; |
| // Enables ML scoring for Search suggestions. |
| const FeatureEntry::FeatureParam kOmniboxMlUrlScoringWithSearches[] = { |
| {"MlUrlScoring_EnableMlScoringForSearches", "true"}, |
| }; |
| // Enables ML scoring for verbatim URL suggestions. |
| const FeatureEntry::FeatureParam kOmniboxMlUrlScoringWithVerbatimURLs[] = { |
| {"MlUrlScoring_EnableMlScoringForVerbatimUrls", "true"}, |
| }; |
| // Enables ML scoring for both Search and verbatim URL suggestions. |
| const FeatureEntry::FeatureParam |
| kOmniboxMlUrlScoringWithSearchesAndVerbatimURLs[] = { |
| {"MlUrlScoring_EnableMlScoringForSearches", "true"}, |
| {"MlUrlScoring_EnableMlScoringForVerbatimUrls", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kOmniboxMlUrlScoringVariations[] = { |
| {"Enabled with fixes", kOmniboxMlUrlScoringEnabledWithFixes, nullptr}, |
| {"unlimited suggestion candidates", |
| kOmniboxMlUrlScoringUnlimitedNumCandidates, nullptr}, |
| {"Increase provider max limit to 10", |
| kOmniboxMlUrlScoringMaxMatchesByProvider10, nullptr}, |
| {"with scoring of Search suggestions", kOmniboxMlUrlScoringWithSearches, |
| nullptr}, |
| {"with scoring of verbatim URL suggestions", |
| kOmniboxMlUrlScoringWithVerbatimURLs, nullptr}, |
| {"with scoring of Search & verbatim URL suggestions", |
| kOmniboxMlUrlScoringWithSearchesAndVerbatimURLs, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kMlUrlPiecewiseMappedSearchBlendingAdjustedBy0[] = { |
| {"MlUrlPiecewiseMappedSearchBlending", "true"}, |
| {"MlUrlPiecewiseMappedSearchBlending_BreakPoints", |
| "0,550;0.018,1300;0.14,1398;1,1422"}, |
| {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1400"}, |
| {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}}; |
| const FeatureEntry::FeatureParam |
| kMlUrlPiecewiseMappedSearchBlendingDemotedBy50[] = { |
| {"MlUrlPiecewiseMappedSearchBlending", "true"}, |
| {"MlUrlPiecewiseMappedSearchBlending_BreakPoints", |
| "0,550;0.018,1250;0.14,1348;1,1422"}, |
| {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1350"}, |
| {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}}; |
| const FeatureEntry::FeatureParam |
| kMlUrlPiecewiseMappedSearchBlendingPromotedBy50[] = { |
| {"MlUrlPiecewiseMappedSearchBlending", "true"}, |
| {"MlUrlPiecewiseMappedSearchBlending_BreakPoints", |
| "0,550;0.018,1350;0.14,1448;1,1472"}, |
| {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1450"}, |
| {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}}; |
| const FeatureEntry::FeatureParam |
| kMlUrlPiecewiseMappedSearchBlendingPromotedBy100[] = { |
| {"MlUrlPiecewiseMappedSearchBlending", "true"}, |
| {"MlUrlPiecewiseMappedSearchBlending_BreakPoints", |
| "0,550;0.018,1400;0.14,1498;1,1522"}, |
| {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1500"}, |
| {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}}; |
| const FeatureEntry::FeatureParam |
| kMlUrlPiecewiseMappedSearchBlendingMobileMapping[] = { |
| {"MlUrlPiecewiseMappedSearchBlending", "true"}, |
| {"MlUrlPiecewiseMappedSearchBlending_BreakPoints", |
| "0,590;0.006,790;0.082,1290;0.443,1360;0.464,1400;0.987,1425;1,1530"}, |
| {"MlUrlPiecewiseMappedSearchBlending_GroupingThreshold", "1340"}, |
| {"MlUrlPiecewiseMappedSearchBlending_RelevanceBias", "0"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kMlUrlPiecewiseMappedSearchBlendingVariations[] = { |
| {"adjusted by 0", kMlUrlPiecewiseMappedSearchBlendingAdjustedBy0, |
| nullptr}, |
| {"demoted by 50", kMlUrlPiecewiseMappedSearchBlendingDemotedBy50, |
| nullptr}, |
| {"promoted by 50", kMlUrlPiecewiseMappedSearchBlendingPromotedBy50, |
| nullptr}, |
| {"promoted by 100", kMlUrlPiecewiseMappedSearchBlendingPromotedBy100, |
| nullptr}, |
| {"mobile mapping", kMlUrlPiecewiseMappedSearchBlendingMobileMapping, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kMlUrlSearchBlendingStable[] = { |
| {"MlUrlSearchBlending_StableSearchBlending", "true"}, |
| {"MlUrlSearchBlending_MappedSearchBlending", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedConservativeUrls[] = |
| { |
| {"MlUrlSearchBlending_StableSearchBlending", "false"}, |
| {"MlUrlSearchBlending_MappedSearchBlending", "true"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingMin", "0"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingMax", "2000"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingGroupingThreshold", "1000"}, |
| }; |
| const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedModerateUrls[] = { |
| {"MlUrlSearchBlending_StableSearchBlending", "false"}, |
| {"MlUrlSearchBlending_MappedSearchBlending", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kMlUrlSearchBlendingMappedAggressiveUrls[] = { |
| {"MlUrlSearchBlending_StableSearchBlending", "false"}, |
| {"MlUrlSearchBlending_MappedSearchBlending", "true"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingMin", "1000"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingMax", "4000"}, |
| {"MlUrlSearchBlending_MappedSearchBlendingGroupingThreshold", "1500"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kMlUrlSearchBlendingVariations[] = { |
| {"Stable", kMlUrlSearchBlendingStable, nullptr}, |
| {"Mapped conservative urls", kMlUrlSearchBlendingMappedConservativeUrls, |
| nullptr}, |
| {"Mapped moderate urls", kMlUrlSearchBlendingMappedModerateUrls, nullptr}, |
| {"Mapped aggressive urls", kMlUrlSearchBlendingMappedAggressiveUrls, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kMostVitedTilesNewScoring_DecayStaircaseCap10[] = { |
| { |
| "recency_factor", // history::kMvtScoringParamRecencyFactor.name |
| "decay_staircase" // history::kMvtScoringParamRecencyFactor_DecayStaircase |
| }, |
| {"daily_visit_count_cap", // history::kMvtScoringParamDailyVisitCountCap.name |
| "10"}, |
| }; |
| const FeatureEntry::FeatureParam kMostVitedTilesNewScoring_DecayCap1[] = { |
| { |
| "recency_factor", // history::kMvtScoringParamRecencyFactor.name |
| "decay" // history::kMvtScoringParamRecencyFactor_Decay |
| }, |
| { |
| "decay_per_day", // history::kMvtScoringParamDecayPerDay.name |
| "0.9131007162822623" // exp(-1.0 / 11). |
| }, |
| {"daily_visit_count_cap", // history::kMvtScoringParamDailyVisitCountCap.name |
| "1"}, |
| }; |
| constexpr FeatureEntry::FeatureVariation |
| kMostVisitedTilesNewScoringVariations[] = { |
| {"Decay Staircase, Cap 10", |
| kMostVitedTilesNewScoring_DecayStaircaseCap10, nullptr}, |
| {"Decay, Cap 1", kMostVitedTilesNewScoring_DecayCap1, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kUrlScoringModelVariations[] = { |
| {"Small model (desktop)", {}, nullptr}, |
| {"Full model (desktop)", {}, "3380045"}, |
| {"Small model (ios)", {}, "3379590"}, |
| {"Full model (ios)", {}, "3380197"}, |
| {"Small model (android)", {}, "3381543"}, |
| {"Full model (android)", {}, "3381544"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingMinimalFromLastRun[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "300"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "true"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingMinimalFromLastRequest[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "300"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "false"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingModerateFromLastRun[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "600"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "true"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingModerateFromLastRequest[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "600"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "false"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingAggressiveFromLastRun[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "900"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "true"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kOmniboxZeroSuggestPrefetchDebouncingAggressiveFromLastRequest[] = { |
| {"ZeroSuggestPrefetchDebounceDelay", "900"}, |
| {"ZeroSuggestPrefetchDebounceFromLastRun", "false"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kOmniboxZeroSuggestPrefetchDebouncingVariations[] = { |
| {"Minimal debouncing relative to last run", |
| kOmniboxZeroSuggestPrefetchDebouncingMinimalFromLastRun, nullptr}, |
| {"Minimal debouncing relative to last request", |
| kOmniboxZeroSuggestPrefetchDebouncingMinimalFromLastRequest, nullptr}, |
| {"Moderate debouncing relative to last run", |
| kOmniboxZeroSuggestPrefetchDebouncingModerateFromLastRun, nullptr}, |
| {"Moderate debouncing relative to last request", |
| kOmniboxZeroSuggestPrefetchDebouncingModerateFromLastRequest, nullptr}, |
| {"Aggressive debouncing relative to last run", |
| kOmniboxZeroSuggestPrefetchDebouncingAggressiveFromLastRun, nullptr}, |
| {"Aggressive debouncing relative to last request", |
| kOmniboxZeroSuggestPrefetchDebouncingAggressiveFromLastRequest, |
| nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| constexpr FeatureEntry::FeatureParam kOmniboxDiagInputConnection[]{ |
| {OmniboxFieldTrial::kAndroidDiagInputConnection.name, "true"}}; |
| |
| constexpr FeatureEntry::FeatureVariation kOmniboxDiagnosticsAndroidVaiants[] = { |
| {"- InputConnection", kOmniboxDiagInputConnection, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kOmniboxAimRedirectComposeplate[] = { |
| {"redirect_composeplate_button", "true"}}; |
| const FeatureEntry::FeatureParam kOmniboxAimModelPickerAndCanvas[] = { |
| {"show_model_picker", "true"}}; |
| const FeatureEntry::FeatureParam kOmniboxAimModelPickerBottomSheet_1[] = { |
| {"show_model_picker", "true"}, |
| {"show_bottom_sheet_popup", "true"}, |
| {"show_ntp_plus_button", "true"}, |
| {"use_ask_hint_for_ntp", "true"}}; |
| const FeatureEntry::FeatureParam kOmniboxAimModelPickerBottomSheet_2[] = { |
| {"show_model_picker", "true"}, |
| {"show_bottom_sheet_popup", "true"}, |
| {"show_ntp_plus_button", "true"}}; |
| const FeatureEntry::FeatureParam kOmniboxAimModelPickerBottomSheet_3[] = { |
| {"show_model_picker", "true"}, |
| {"show_bottom_sheet_popup", "true"}}; |
| const FeatureEntry::FeatureParam kOmniboxAimModelPickerHint[] = { |
| {"show_model_picker", "true"}, |
| {"use_ask_hint_for_ntp", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kOmniboxMultimodalInputVariants[] = { |
| {"Redirect Composeplate", kOmniboxAimRedirectComposeplate, nullptr}, |
| {"Model Picker & Tools", kOmniboxAimModelPickerAndCanvas, nullptr}, |
| {"^ + Bottom Sheet (1)", kOmniboxAimModelPickerBottomSheet_1, nullptr}, |
| {"^ + Bottom Sheet (2)", kOmniboxAimModelPickerBottomSheet_2, nullptr}, |
| {"^ + Bottom Sheet (3)", kOmniboxAimModelPickerBottomSheet_3, nullptr}, |
| {"Model Picker Hint", kOmniboxAimModelPickerHint, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches3[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "3"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches4[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "4"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches5[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "5"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches6[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "6"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches7[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "7"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches8[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "8"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches9[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "9"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches10[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "10"}}; |
| const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches12[] = { |
| {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "12"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kOmniboxUIMaxAutocompleteMatchesVariations[] = { |
| {"3 matches", kOmniboxUIMaxAutocompleteMatches3, nullptr}, |
| {"4 matches", kOmniboxUIMaxAutocompleteMatches4, nullptr}, |
| {"5 matches", kOmniboxUIMaxAutocompleteMatches5, nullptr}, |
| {"6 matches", kOmniboxUIMaxAutocompleteMatches6, nullptr}, |
| {"7 matches", kOmniboxUIMaxAutocompleteMatches7, nullptr}, |
| {"8 matches", kOmniboxUIMaxAutocompleteMatches8, nullptr}, |
| {"9 matches", kOmniboxUIMaxAutocompleteMatches9, nullptr}, |
| {"10 matches", kOmniboxUIMaxAutocompleteMatches10, nullptr}, |
| {"12 matches", kOmniboxUIMaxAutocompleteMatches12, nullptr}}; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kOmniboxMiaZpsEnabledWithHistoryAblation[] = { |
| {OmniboxFieldTrial::kSuppressPsuggestBackfillWithMIAParam, "true"}}; |
| const FeatureEntry::FeatureVariation kOmniboxMiaZpsVariations[] = { |
| {"with History Ablation", kOmniboxMiaZpsEnabledWithHistoryAblation, |
| nullptr}}; |
| #endif |
| |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete90[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "0"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}}; |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete91[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "1"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}}; |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete92[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "2"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}}; |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete100[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "0"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}}; |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete101[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "1"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}}; |
| const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete102[] = { |
| {"OmniboxDynamicMaxAutocompleteUrlCutoff", "2"}, |
| {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kOmniboxDynamicMaxAutocompleteVariations[] = { |
| {"9 suggestions if 0 or fewer URLs", kOmniboxDynamicMaxAutocomplete90, |
| nullptr}, |
| {"9 suggestions if 1 or fewer URLs", kOmniboxDynamicMaxAutocomplete91, |
| nullptr}, |
| {"9 suggestions if 2 or fewer URLs", kOmniboxDynamicMaxAutocomplete92, |
| nullptr}, |
| {"10 suggestions if 0 or fewer URLs", kOmniboxDynamicMaxAutocomplete100, |
| nullptr}, |
| {"10 suggestions if 1 or fewer URLs", kOmniboxDynamicMaxAutocomplete101, |
| nullptr}, |
| {"10 suggestions if 2 or fewer URLs", kOmniboxDynamicMaxAutocomplete102, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kRepeatableQueries_6Searches_90Days[] = { |
| {"RepeatableQueriesIgnoreDuplicateVisits", "true"}, |
| {"RepeatableQueriesMinVisitCount", "6"}, |
| }; |
| const FeatureEntry::FeatureParam kRepeatableQueries_12Searches_90Days[] = { |
| {"RepeatableQueriesIgnoreDuplicateVisits", "true"}, |
| {"RepeatableQueriesMinVisitCount", "12"}, |
| }; |
| const FeatureEntry::FeatureParam kRepeatableQueries_6Searches_7Days[] = { |
| {"RepeatableQueriesIgnoreDuplicateVisits", "true"}, |
| {"RepeatableQueriesMinVisitCount", "6"}, |
| {"RepeatableQueriesMaxAgeDays", "7"}, |
| }; |
| const FeatureEntry::FeatureParam kRepeatableQueries_12Searches_7Days[] = { |
| {"RepeatableQueriesIgnoreDuplicateVisits", "true"}, |
| {"RepeatableQueriesMinVisitCount", "12"}, |
| {"RepeatableQueriesMaxAgeDays", "7"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kOrganicRepeatableQueriesVariations[] = { |
| {"6+ uses, once in last 90d", kRepeatableQueries_6Searches_90Days, nullptr}, |
| {"12+ uses, once in last 90d", kRepeatableQueries_12Searches_90Days, |
| nullptr}, |
| {"6+ uses, once in last 7d", kRepeatableQueries_6Searches_7Days, nullptr}, |
| {"12+ uses, once in last 7d", kRepeatableQueries_12Searches_7Days, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpZps0RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsRecentSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kNtpZps5RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsRecentSearches.name, "5"}}; |
| const FeatureEntry::FeatureParam kNtpZps10RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsRecentSearches.name, "10"}}; |
| const FeatureEntry::FeatureParam kNtpZps15RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsRecentSearches.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumNtpZpsRecentSearches[] = { |
| {"No recents", kNtpZps0RecentSearches}, |
| {"5 recents", kNtpZps5RecentSearches}, |
| {"10 recents", kNtpZps10RecentSearches}, |
| {"15 recents", kNtpZps15RecentSearches}, |
| }; |
| const FeatureEntry::FeatureParam kNtpZps0TrendingSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsTrendingSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kNtpZps5TrendingSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumNtpZpsTrendingSearches.name, "5"}}; |
| const FeatureEntry::FeatureVariation kNumNtpZpsTrendingSearches[] = { |
| {"No trends", kNtpZps0TrendingSearches}, |
| {"5 trends", kNtpZps5TrendingSearches}, |
| }; |
| const FeatureEntry::FeatureParam kWebZps0RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRecentSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kWebZps5RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRecentSearches.name, "5"}}; |
| const FeatureEntry::FeatureParam kWebZps10RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRecentSearches.name, "10"}}; |
| const FeatureEntry::FeatureParam kWebZps15RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRecentSearches.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumWebZpsRecentSearches[] = { |
| {"No recents", kWebZps0RecentSearches}, |
| {"5 recents", kWebZps5RecentSearches}, |
| {"10 recents", kWebZps10RecentSearches}, |
| {"15 recents", kWebZps15RecentSearches}, |
| }; |
| const FeatureEntry::FeatureParam kWebZps0RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRelatedSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kWebZps5RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRelatedSearches.name, "5"}}; |
| const FeatureEntry::FeatureParam kWebZps10RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRelatedSearches.name, "10"}}; |
| const FeatureEntry::FeatureParam kWebZps15RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsRelatedSearches.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumWebZpsRelatedSearches[] = { |
| {"No related", kWebZps0RelatedSearches}, |
| {"5 related", kWebZps5RelatedSearches}, |
| {"10 related", kWebZps10RelatedSearches}, |
| {"15 related", kWebZps15RelatedSearches}, |
| }; |
| const FeatureEntry::FeatureParam kWebZps0MostVisitedUrls[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsMostVisitedUrls.name, "0"}}; |
| const FeatureEntry::FeatureParam kWebZps5MostVisitedUrls[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsMostVisitedUrls.name, "5"}}; |
| const FeatureEntry::FeatureParam kWebZps10MostVisitedUrls[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsMostVisitedUrls.name, "10"}}; |
| const FeatureEntry::FeatureParam kWebZps15MostVisitedUrls[] = { |
| {OmniboxFieldTrial::kOmniboxNumWebZpsMostVisitedUrls.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumWebZpsMostVisitedUrls[] = { |
| {"No related", kWebZps0MostVisitedUrls}, |
| {"5 related", kWebZps5MostVisitedUrls}, |
| {"10 related", kWebZps10MostVisitedUrls}, |
| {"15 related", kWebZps15MostVisitedUrls}, |
| }; |
| const FeatureEntry::FeatureParam kSrpZps0RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRecentSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kSrpZps5RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRecentSearches.name, "5"}}; |
| const FeatureEntry::FeatureParam kSrpZps10RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRecentSearches.name, "10"}}; |
| const FeatureEntry::FeatureParam kSrpZps15RecentSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRecentSearches.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumSrpZpsRecentSearches[] = { |
| {"No recents", kSrpZps0RecentSearches}, |
| {"5 recents", kSrpZps5RecentSearches}, |
| {"10 recents", kSrpZps10RecentSearches}, |
| {"15 recents", kSrpZps15RecentSearches}, |
| }; |
| const FeatureEntry::FeatureParam kSrpZps0RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRelatedSearches.name, "0"}}; |
| const FeatureEntry::FeatureParam kSrpZps5RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRelatedSearches.name, "5"}}; |
| const FeatureEntry::FeatureParam kSrpZps10RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRelatedSearches.name, "10"}}; |
| const FeatureEntry::FeatureParam kSrpZps15RelatedSearches[] = { |
| {OmniboxFieldTrial::kOmniboxNumSrpZpsRelatedSearches.name, "15"}}; |
| const FeatureEntry::FeatureVariation kNumSrpZpsRelatedSearches[] = { |
| {"No related", kSrpZps0RelatedSearches}, |
| {"5 related", kSrpZps5RelatedSearches}, |
| {"10 related", kSrpZps10RelatedSearches}, |
| {"15 related", kSrpZps15RelatedSearches}, |
| }; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kSidePanelFlyoverAnimationDuration250Ms[] = { |
| {"flyover_animation_duration_ms", "250"}}; |
| const FeatureEntry::FeatureParam kSidePanelFlyoverAnimationDuration300Ms[] = { |
| {"flyover_animation_duration_ms", "300"}}; |
| const FeatureEntry::FeatureParam kSidePanelFlyoverAnimationDuration350Ms[] = { |
| {"flyover_animation_duration_ms", "350"}}; |
| |
| const FeatureEntry::FeatureVariation kSidePanelFlyoverAnimationVariations[] = { |
| {"- 250ms Duration", kSidePanelFlyoverAnimationDuration250Ms}, |
| {"- 300ms Duration", kSidePanelFlyoverAnimationDuration300Ms}, |
| {"- 350ms Duration", kSidePanelFlyoverAnimationDuration350Ms}}; |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kNtpCalendarModuleFakeData[] = { |
| {ntp_features::kNtpCalendarModuleDataParam, "fake"}}; |
| const FeatureEntry::FeatureVariation kNtpCalendarModuleVariations[] = { |
| {"- Fake Data", kNtpCalendarModuleFakeData, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpDriveModuleFakeData[] = { |
| {ntp_features::kNtpDriveModuleDataParam, "fake"}}; |
| const FeatureEntry::FeatureParam kNtpDriveModuleManagedUsersOnly[] = { |
| {ntp_features::kNtpDriveModuleManagedUsersOnlyParam, "true"}}; |
| const FeatureEntry::FeatureVariation kNtpDriveModuleVariations[] = { |
| {"- Fake Data", kNtpDriveModuleFakeData, nullptr}, |
| {"- Managed Users Only", kNtpDriveModuleManagedUsersOnly, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpOutlookCalendarModuleFakeData[] = { |
| {ntp_features::kNtpOutlookCalendarModuleDataParam, "fake"}}; |
| const FeatureEntry::FeatureParam |
| kNtpOutlookCalendarModuleFakeAttachmentsData[] = { |
| {ntp_features::kNtpOutlookCalendarModuleDataParam, "fake-attachments"}}; |
| const FeatureEntry::FeatureVariation kNtpOutlookCalendarModuleVariations[] = { |
| {"- Fake Data", kNtpOutlookCalendarModuleFakeData, nullptr}, |
| {"- Fake Attachments Data", kNtpOutlookCalendarModuleFakeAttachmentsData, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpMiddleSlotPromoDismissalFakeData[] = { |
| {ntp_features::kNtpMiddleSlotPromoDismissalParam, "fake"}}; |
| const FeatureEntry::FeatureVariation kNtpMiddleSlotPromoDismissalVariations[] = |
| { |
| {"- Fake Data", kNtpMiddleSlotPromoDismissalFakeData, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kNtpRealboxCr23NoShadowExpandedStateBgMatchesSteadyState[]{ |
| {"kNtpRealboxCr23ExpandedStateBgMatchesOmnibox", "false"}, |
| {"kNtpRealboxCr23SteadyStateShadow", "false"}}; |
| const FeatureEntry::FeatureParam |
| kNtpRealboxCr23ShadowExpandedStateBgMatchesOmnibox[]{ |
| {"kNtpRealboxCr23ExpandedStateBgMatchesOmnibox", "true"}, |
| {"kNtpRealboxCr23SteadyStateShadow", "true"}}; |
| const FeatureEntry::FeatureParam |
| kNtpRealboxCr23ShadowExpandedStateBgMatchesSteadyState[]{ |
| {"kNtpRealboxCr23ExpandedStateBgMatchesOmnibox", "false"}, |
| {"kNtpRealboxCr23SteadyStateShadow", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kNtpRealboxCr23ThemingVariations[] = { |
| {" - Steady state shadow", |
| kNtpRealboxCr23ShadowExpandedStateBgMatchesOmnibox, nullptr}, |
| {" - No steady state shadow + Dark mode background color matches steady" |
| "state", |
| kNtpRealboxCr23NoShadowExpandedStateBgMatchesSteadyState, nullptr}, |
| {" - Steady state shadow + Dark mode background color matches steady " |
| "state", |
| kNtpRealboxCr23ShadowExpandedStateBgMatchesSteadyState, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpSharepointModuleTrendingInsights[] = { |
| {"NtpSharepointModuleDataParam", "trending-insights"}}; |
| const FeatureEntry::FeatureParam kNtpSharepointModuleNonInsights[] = { |
| {"NtpSharepointModuleDataParam", "non-insights"}}; |
| const FeatureEntry::FeatureParam kNtpSharepointModuleTrendingFakeData[] = { |
| {"NtpSharepointModuleDataParam", "fake-trending"}}; |
| const FeatureEntry::FeatureParam kNtpSharepointModuleNonInsightsFakeData[] = { |
| {"NtpSharepointModuleDataParam", "fake-non-insights"}}; |
| const FeatureEntry::FeatureParam kNtpSharepointModuleCombinedSuggestions[] = { |
| {"NtpSharepointModuleDataParam", "combined"}}; |
| |
| const FeatureEntry::FeatureVariation kNtpSharepointModuleVariations[] = { |
| {"- Trending", kNtpSharepointModuleTrendingInsights, nullptr}, |
| {"- Recently Used and Shared", kNtpSharepointModuleNonInsights, nullptr}, |
| {"- Fake Trending Data", kNtpSharepointModuleTrendingFakeData, nullptr}, |
| {"- Fake Recently Used and Shared", kNtpSharepointModuleNonInsightsFakeData, |
| nullptr}, |
| {"- Combined Suggestions", kNtpSharepointModuleCombinedSuggestions, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kNtpTabGroupsModuleFakeData[] = { |
| {ntp_features::kNtpTabGroupsModuleDataParam, "Fake Data"}}; |
| const FeatureEntry::FeatureParam kNtpTabGroupsModuleFakeZeroState[] = { |
| {ntp_features::kNtpTabGroupsModuleDataParam, "Fake Zero State"}}; |
| |
| const FeatureEntry::FeatureVariation kNtpTabGroupsModuleVariations[] = { |
| {"- Fake Data", kNtpTabGroupsModuleFakeData, nullptr}, |
| {"- Fake Zero State", kNtpTabGroupsModuleFakeZeroState, nullptr}, |
| }; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kDataSharingShowSendFeedbackDisabled[] = { |
| {"show_send_feedback", "false"}}; |
| const FeatureEntry::FeatureParam kDataSharingShowSendFeedbackEnabled[] = { |
| {"show_send_feedback", "true"}}; |
| const FeatureEntry::FeatureVariation kDatasharingVariations[] = { |
| {"with feedback", kDataSharingShowSendFeedbackEnabled}, |
| {"without feedback", kDataSharingShowSendFeedbackDisabled}}; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith300Dp[] = |
| {{"contextual_search_minimum_page_height_dp", "300"}}; |
| const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith400Dp[] = |
| {{"contextual_search_minimum_page_height_dp", "400"}}; |
| const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith500Dp[] = |
| {{"contextual_search_minimum_page_height_dp", "500"}}; |
| const FeatureEntry::FeatureParam kContextualSearchSuppressShortViewWith600Dp[] = |
| {{"contextual_search_minimum_page_height_dp", "600"}}; |
| const FeatureEntry::FeatureVariation |
| kContextualSearchSuppressShortViewVariations[] = { |
| {"(300 dp)", kContextualSearchSuppressShortViewWith300Dp, nullptr}, |
| {"(400 dp)", kContextualSearchSuppressShortViewWith400Dp, nullptr}, |
| {"(500 dp)", kContextualSearchSuppressShortViewWith500Dp, nullptr}, |
| {"(600 dp)", kContextualSearchSuppressShortViewWith600Dp, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kJumpStartOmnibox1Minute[] = { |
| {"jump_start_min_away_time_minutes", "1"}, |
| {"jump_start_cover_recently_visited_page", "true"}}; |
| const FeatureEntry::FeatureParam kJumpStartOmnibox15Minutes[] = { |
| {"jump_start_min_away_time_minutes", "15"}, |
| {"jump_start_cover_recently_visited_page", "true"}}; |
| const FeatureEntry::FeatureParam kJumpStartOmnibox30Minutes[] = { |
| {"jump_start_min_away_time_minutes", "30"}, |
| {"jump_start_cover_recently_visited_page", "true"}}; |
| const FeatureEntry::FeatureParam kJumpStartOmnibox60Minutes[] = { |
| {"jump_start_min_away_time_minutes", "60"}, |
| {"jump_start_cover_recently_visited_page", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kJumpStartOmniboxVariations[] = { |
| {"(after 1min)", kJumpStartOmnibox1Minute}, |
| {"(after 15min)", kJumpStartOmnibox15Minutes}, |
| {"(after 30min)", kJumpStartOmnibox30Minutes}, |
| {"(after 60min)", kJumpStartOmnibox60Minutes}}; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kReportNotificationContentDetectionDataRate100[] = { |
| {"ReportNotificationContentDetectionDataRate", "100"}}; |
| const FeatureEntry::FeatureVariation |
| kReportNotificationContentDetectionDataVariations[] = { |
| {"with reporting rate 100", |
| kReportNotificationContentDetectionDataRate100, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kResamplingScrollEventsPredictionFramesBasedEnabledV1[] = { |
| {"mode", features::kPredictionTypeFramesBased}, |
| {"latency", features::kPredictionTypeDefaultFramesVariation1}}; |
| const FeatureEntry::FeatureParam |
| kResamplingScrollEventsPredictionFramesBasedEnabledV2[] = { |
| {"mode", features::kPredictionTypeFramesBased}, |
| {"latency", features::kPredictionTypeDefaultFramesVariation2}}; |
| const FeatureEntry::FeatureParam |
| kResamplingScrollEventsPredictionFramesBasedEnabledV3[] = { |
| {"mode", features::kPredictionTypeFramesBased}, |
| {"latency", features::kPredictionTypeDefaultFramesVariation3}}; |
| const FeatureEntry::FeatureVariation |
| kResamplingScrollEventsExperimentalPredictionVariations[] = { |
| {"frames 0.25", kResamplingScrollEventsPredictionFramesBasedEnabledV1, |
| nullptr}, |
| {"frames 0.375", kResamplingScrollEventsPredictionFramesBasedEnabledV2, |
| nullptr}, |
| {"frames 0.5", kResamplingScrollEventsPredictionFramesBasedEnabledV3, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kShowWarningsForSuspiciousNotificationsScoreThreshold70[] = { |
| {"ShowWarningsForSuspiciousNotificationsScoreThreshold", "70"}, |
| {"ShowWarningsForSuspiciousNotificationsShouldSwapButtons", "false"}}; |
| const FeatureEntry::FeatureParam |
| kShowWarningsForSuspiciousNotificationsScoreThreshold70SwapButtons[] = { |
| {"ShowWarningsForSuspiciousNotificationsScoreThreshold", "70"}, |
| {"ShowWarningsForSuspiciousNotificationsShouldSwapButtons", "true"}}; |
| const FeatureEntry::FeatureVariation |
| kShowWarningsForSuspiciousNotificationsVariations[] = { |
| {"with suspicious score 70", |
| kShowWarningsForSuspiciousNotificationsScoreThreshold70, nullptr}, |
| {"with suspicious score 70 and swapped buttons", |
| kShowWarningsForSuspiciousNotificationsScoreThreshold70SwapButtons, |
| nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kStartSurfaceReturnTime_Immediate[] = { |
| {"start_surface_return_time_seconds", "0"}, |
| {"start_surface_return_time_on_tablet_seconds", "0"}}; |
| const FeatureEntry::FeatureParam kStartSurfaceReturnTime_10Seconds[] = { |
| {"start_surface_return_time_seconds", "10"}, |
| {"start_surface_return_time_on_tablet_seconds", "10"}}; |
| const FeatureEntry::FeatureParam kStartSurfaceReturnTime_1Minute[] = { |
| {"start_surface_return_time_seconds", "60"}, |
| {"start_surface_return_time_on_tablet_seconds", "60"}}; |
| const FeatureEntry::FeatureParam kStartSurfaceReturnTime_5Minute[] = { |
| {"start_surface_return_time_seconds", "300"}, |
| {"start_surface_return_time_on_tablet_seconds", "300"}}; |
| const FeatureEntry::FeatureParam kStartSurfaceReturnTime_60Minute[] = { |
| {"start_surface_return_time_seconds", "3600"}, |
| {"start_surface_return_time_on_tablet_seconds", "3600"}}; |
| const FeatureEntry::FeatureVariation kStartSurfaceReturnTimeVariations[] = { |
| {"Immediate", kStartSurfaceReturnTime_Immediate, nullptr}, |
| {"10 seconds", kStartSurfaceReturnTime_10Seconds, nullptr}, |
| {"1 minute", kStartSurfaceReturnTime_1Minute, nullptr}, |
| {"5 minute", kStartSurfaceReturnTime_5Minute, nullptr}, |
| {"60 minute", kStartSurfaceReturnTime_60Minute, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kDefaultBrowserPromoShowArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam, |
| segmentation_platform::kDefaultBrowserPromo}, |
| }; |
| const FeatureEntry::FeatureParam kDefaultBrowserPromoHideArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam, |
| segmentation_platform::kDefaultBrowserPromo}, |
| }; |
| const FeatureEntry::FeatureParam kTabGroupPromoShowArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam, |
| segmentation_platform::kTabGroupPromo}, |
| }; |
| const FeatureEntry::FeatureParam kTabGroupPromoHideArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam, |
| segmentation_platform::kTabGroupPromo}, |
| }; |
| const FeatureEntry::FeatureParam kTabGroupSyncPromoShowArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam, |
| segmentation_platform::kTabGroupSyncPromo}, |
| }; |
| const FeatureEntry::FeatureParam kTabGroupSyncPromoHideArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam, |
| segmentation_platform::kTabGroupSyncPromo}, |
| }; |
| const FeatureEntry::FeatureParam kQuickDeletePromoShowArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam, |
| segmentation_platform::kQuickDeletePromo}, |
| }; |
| const FeatureEntry::FeatureParam kQuickDeletePromoHideArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam, |
| segmentation_platform::kQuickDeletePromo}, |
| }; |
| const FeatureEntry::FeatureParam kNtpThemePromoShowArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam, |
| segmentation_platform::kNtpThemePromo}, |
| }; |
| const FeatureEntry::FeatureParam kNtpThemePromoHideArm[] = { |
| {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam, |
| segmentation_platform::kNtpThemePromo}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kEphemeralCardRankerCardOverrideOptions[] = |
| { |
| {"- Force show default browser promo", kDefaultBrowserPromoShowArm, |
| nullptr}, |
| {"- Force hide default browser promo", kDefaultBrowserPromoHideArm, |
| nullptr}, |
| {"- Force show tab group promo", kTabGroupPromoShowArm, nullptr}, |
| {"- Force hide tab group promo", kTabGroupPromoHideArm, nullptr}, |
| {"- Force show tab group sync promo", kTabGroupSyncPromoShowArm, |
| nullptr}, |
| {"- Force hide tab group sync promo", kTabGroupSyncPromoHideArm, |
| nullptr}, |
| {"- Force show quick delete promo", kQuickDeletePromoShowArm, nullptr}, |
| {"- Force hide quick delete promo", kQuickDeletePromoHideArm, nullptr}, |
| {"- Force show ntp theme promo", kNtpThemePromoShowArm, nullptr}, |
| {"- Force hide ntp theme promo", kNtpThemePromoHideArm, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kAndroidVerticalTabs_All[] = { |
| {"group_hover_card", "true"}}; |
| const FeatureEntry::FeatureParam kAndroidVerticalTabs_EnableByDefault[] = { |
| {"enable_by_default", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidVerticalTabsVariations[] = { |
| {"with all experimental features", kAndroidVerticalTabs_All, nullptr}, |
| {"with enabled-by-default", kAndroidVerticalTabs_EnableByDefault, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam |
| kMostVitedTilesReselect_enable_partial_match_arm1[] = { |
| {"lax_scheme_host", "true"}, |
| {"lax_ref", "true"}, |
| {"lax_query", "false"}, |
| {"lax_path", "false"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kMostVitedTilesReselect_enable_partial_match_arm2[] = { |
| {"lax_scheme_host", "true"}, |
| {"lax_ref", "true"}, |
| {"lax_query", "true"}, |
| {"lax_path", "false"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kMostVitedTilesReselect_enable_partial_match_arm3[] = { |
| {"lax_scheme_host", "true"}, |
| {"lax_ref", "true"}, |
| {"lax_query", "true"}, |
| {"lax_path", "true"}, |
| }; |
| const FeatureEntry::FeatureVariation kMostVisitedTilesReselectVariations[] = { |
| {"Partial match Arm 1", kMostVitedTilesReselect_enable_partial_match_arm1, |
| nullptr}, |
| {"Partial match Arm 2", kMostVitedTilesReselect_enable_partial_match_arm2, |
| nullptr}, |
| {"Partial match Arm 3", kMostVitedTilesReselect_enable_partial_match_arm3, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kNotificationPermissionRationale_show_dialog_next_start[] = { |
| {"always_show_rationale_before_requesting_permission", "true"}, |
| {"permission_request_interval_days", "0"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kNotificationPermissionRationaleVariations[] = { |
| {"- Show rationale UI on next startup", |
| kNotificationPermissionRationale_show_dialog_next_start, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::Choice kNotificationSchedulerChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions:: |
| kNotificationSchedulerImmediateBackgroundTaskDescription, |
| notifications::switches::kNotificationSchedulerImmediateBackgroundTask, |
| ""}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kAndroidAppIntegrationModule_ForceCardShown_Pixel[] = { |
| {"force_card_shown", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kAndroidAppIntegrationModule_ForceCardShown_NonPixel[] = { |
| {"force_card_shown", "true"}, |
| {"show_third_party_card", "true"}}; |
| |
| const FeatureEntry::FeatureParam kAndroidAppRatingPromptBypassChecks[] = { |
| {"bypass_checks", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidAppRatingPromptVariations[] = { |
| {"(Bypass checks)", kAndroidAppRatingPromptBypassChecks, nullptr}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidAppIntegrationModuleVariations[] = |
| {{"Force to show Pixel's notice card", |
| kAndroidAppIntegrationModule_ForceCardShown_Pixel, nullptr}, |
| {"Force to show opt in card", |
| kAndroidAppIntegrationModule_ForceCardShown_NonPixel, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kNewTabPageCustomizationV2_ShowColorPicker[] = |
| {{"show_color_picker", "true"}, |
| {"show_logo_and_search_box", "true"}, |
| {"show_promo", "true"}, |
| {"show_tip_bottom_sheet", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kNewTabPageCustomizationV2_DailyRefreshThresholdMs[] = { |
| {"daily_refresh_threshold_ms", "20000"}, |
| {"show_logo_and_search_box", "true"}, |
| {"show_promo", "true"}, |
| {"show_tip_bottom_sheet", "true"}}; |
| |
| const FeatureEntry::FeatureParam kNewTabPageCustomizationV2_ShowPromo[] = { |
| {"show_logo_and_search_box", "true"}, |
| {"show_promo", "true"}, |
| {"show_tip_bottom_sheet", "true"}}; |
| const FeatureEntry::FeatureParam |
| kNewTabPageCustomizationV2_ForceShowTipBottomSheet[] = { |
| {"force_show_tip_bottom_sheet", "true"}, |
| {"show_logo_and_search_box", "true"}, |
| {"show_promo", "true"}, |
| {"show_tip_bottom_sheet", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kNewTabPageCustomizationV2Variations[] = { |
| {"Show color picker", kNewTabPageCustomizationV2_ShowColorPicker, nullptr}, |
| {"Daily refresh after 20s", |
| kNewTabPageCustomizationV2_DailyRefreshThresholdMs, nullptr}, |
| {"Show promo and tip bottom sheet", kNewTabPageCustomizationV2_ShowPromo, |
| nullptr}, |
| {"Force to show theme tip bottom sheet", |
| kNewTabPageCustomizationV2_ForceShowTipBottomSheet, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kAndroidAppIntegrationMultiDataSource_SkipDeviceCheck[] = { |
| {"multi_data_source_skip_device_check", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidAppIntegrationMultiDataSource_SkipSchemaCheck[] = { |
| {"multi_data_source_skip_schema_check", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidAppIntegrationMultiDataSource_SkipBothDeviceAndSchemaCheck[] = { |
| {"multi_data_source_skip_device_check", "true"}, |
| {"multi_data_source_skip_schema_check", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kAndroidAppIntegrationMultiDataSourceVariations[] = { |
| {"Skip device check", |
| kAndroidAppIntegrationMultiDataSource_SkipDeviceCheck, nullptr}, |
| {"Skip schema check", |
| kAndroidAppIntegrationMultiDataSource_SkipSchemaCheck, nullptr}, |
| {"Skip both device and schema check", |
| kAndroidAppIntegrationMultiDataSource_SkipBothDeviceAndSchemaCheck, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAuxiliarySearchDonation_MaxDonation_20[] = { |
| {chrome::android::kAuxiliarySearchMaxBookmarksCountParam.name, "20"}, |
| {chrome::android::kAuxiliarySearchMaxTabsCountParam.name, "20"}}; |
| const FeatureEntry::FeatureParam kAuxiliarySearchDonation_MaxDonation_100[] = { |
| {chrome::android::kAuxiliarySearchMaxBookmarksCountParam.name, "100"}, |
| {chrome::android::kAuxiliarySearchMaxTabsCountParam.name, "100"}}; |
| const FeatureEntry::FeatureParam kAuxiliarySearchDonation_MaxDonation_200[] = { |
| {chrome::android::kAuxiliarySearchMaxBookmarksCountParam.name, "200"}, |
| {chrome::android::kAuxiliarySearchMaxTabsCountParam.name, "200"}}; |
| const FeatureEntry::FeatureParam kAuxiliarySearchDonation_MaxDonation_500[] = { |
| {chrome::android::kAuxiliarySearchMaxBookmarksCountParam.name, "500"}, |
| {chrome::android::kAuxiliarySearchMaxTabsCountParam.name, "500"}}; |
| const FeatureEntry::FeatureVariation kAuxiliarySearchDonationVariations[] = { |
| {"50 counts", kAuxiliarySearchDonation_MaxDonation_20, nullptr}, |
| {"100 counts", kAuxiliarySearchDonation_MaxDonation_100, nullptr}, |
| {"200 counts", kAuxiliarySearchDonation_MaxDonation_200, nullptr}, |
| {"500 counts", kAuxiliarySearchDonation_MaxDonation_500, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kNtpAurora_TightPadding[] = { |
| {"change_button_color", "true"}, |
| {"padding_style", "1"}}; |
| const FeatureEntry::FeatureParam kNtpAurora_MediumPadding[] = { |
| {"change_button_color", "true"}, |
| {"padding_style", "2"}}; |
| const FeatureEntry::FeatureParam kNtpAurora_LargePadding[] = { |
| {"change_button_color", "true"}, |
| {"padding_style", "3"}}; |
| const FeatureEntry::FeatureParam kNtpAurora_ChangeButtonColor[] = { |
| {"change_button_color", "true"}}; |
| const FeatureEntry::FeatureVariation kNtpAuroraVariations[] = { |
| {"Tight padding", kNtpAurora_TightPadding, nullptr}, |
| {"Medium padding", kNtpAurora_MediumPadding, nullptr}, |
| {"Large padding", kNtpAurora_LargePadding, nullptr}, |
| {"Composeplate new styling", kNtpAurora_ChangeButtonColor, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kNtpAuroraV2_IncognitoChip[] = { |
| {"action_chips", "1"}}; |
| const FeatureEntry::FeatureParam kNtpAuroraV2_CanvasChip[] = { |
| {"action_chips", "2"}}; |
| const FeatureEntry::FeatureParam kNtpAuroraV2_BesideMvtModule[] = { |
| {"layout_type", "1"}}; |
| const FeatureEntry::FeatureParam kNtpAuroraV2_InsideMvtModule[] = { |
| {"layout_type", "2"}}; |
| const FeatureEntry::FeatureParam kNtpAuroraV2_RemoveComposeplateButton[] = { |
| {"layout_type", "3"}}; |
| const FeatureEntry::FeatureVariation kNtpAuroraV2Variations[] = { |
| {"Incognito chip", kNtpAuroraV2_IncognitoChip, nullptr}, |
| {"Canvas chip", kNtpAuroraV2_CanvasChip, nullptr}, |
| {"Beside MVT module", kNtpAuroraV2_BesideMvtModule, nullptr}, |
| {"Inside MVT module", kNtpAuroraV2_InsideMvtModule, nullptr}, |
| {"Remove composeplate button", kNtpAuroraV2_RemoveComposeplateButton, |
| nullptr}}; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kTabStorageSqlitePrototypeOnlyShadow[] = { |
| {"phase", "only_shadow"}}; |
| const FeatureEntry::FeatureParam |
| kTabStorageSqlitePrototypeAuthoritativeReads[] = { |
| {"phase", "authoritative_read_source"}}; |
| const FeatureEntry::FeatureParam kTabStorageSqlitePrototypeFullMigration[] = { |
| {"phase", "full_migration"}}; |
| const FeatureEntry::FeatureParam kTabStorageSqlitePrototypeFullRollback[] = { |
| {"phase", "full_rollback"}}; |
| |
| const FeatureEntry::FeatureVariation kTabStorageSqlitePrototypeVariations[] = { |
| {"- Full Rollback", kTabStorageSqlitePrototypeFullRollback, nullptr}, |
| {"- Only Shadow", kTabStorageSqlitePrototypeOnlyShadow, nullptr}, |
| {"- Authoritative Read Source", |
| kTabStorageSqlitePrototypeAuthoritativeReads, nullptr}, |
| {"- Full Migration", kTabStorageSqlitePrototypeFullMigration, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kPdfV2EnableFormFillingParam[] = { |
| {"enable_form_filling", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kInlinePdfV2Variations[] = { |
| {"with form filling", kPdfV2EnableFormFillingParam, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kOnDemandBackgroundTabContextCaptureOptimization_ZeroDelay[] = { |
| {"enable_first_paint", "true"}, |
| {"first_paint_delay_ms", "0"}}; |
| const FeatureEntry::FeatureParam |
| kOnDemandBackgroundTabContextCaptureOptimization_1000MsDelay[] = { |
| {"enable_first_paint", "true"}, |
| {"first_paint_delay_ms", "1000"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kOnDemandBackgroundTabContextCaptureOptimizationVariations[] = { |
| {"EnableFirstPaintWithZeroDelay", |
| kOnDemandBackgroundTabContextCaptureOptimization_ZeroDelay, nullptr}, |
| {"EnableFirstPaintWith1000MsDelay", |
| kOnDemandBackgroundTabContextCaptureOptimization_1000MsDelay, |
| nullptr}}; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kRenderDocument_Subframe[] = { |
| {"level", "subframe"}}; |
| const FeatureEntry::FeatureParam kRenderDocument_AllFrames[] = { |
| {"level", "all-frames"}}; |
| |
| const FeatureEntry::FeatureVariation kRenderDocumentVariations[] = { |
| {"Swap RenderFrameHosts on same-site navigations from subframes and " |
| "crashed frames (experimental)", |
| kRenderDocument_Subframe, nullptr}, |
| {"Swap RenderFrameHosts on same-site navigations from any frame " |
| "(experimental)", |
| kRenderDocument_AllFrames, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::Choice kWebOtpBackendChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kWebOtpBackendSmsVerification, switches::kWebOtpBackend, |
| switches::kWebOtpBackendSmsVerification}, |
| {flag_descriptions::kWebOtpBackendUserConsent, switches::kWebOtpBackend, |
| switches::kWebOtpBackendUserConsent}, |
| {flag_descriptions::kWebOtpBackendAuto, switches::kWebOtpBackend, |
| switches::kWebOtpBackendAuto}, |
| }; |
| |
| const FeatureEntry::FeatureParam kEnableAndroidSidePanel_NoAnimations[] = { |
| {"disable_animations", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kEnableAndroidSidePanelVariations[] = { |
| {"Without Animations", kEnableAndroidSidePanel_NoAnimations, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| // The choices for the Send Tab To Self enhanced handoff experiment. |
| const FeatureEntry::Choice kSendTabToSelfEnhancedHandoffChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "SendTabToSelfAutoOpen," |
| "SendTabToSelfExtraEntryPoints," |
| "SendTabToSelfImprovedLastActiveLabels," |
| "SendTabToSelfPropagateFormFields," |
| "SendTabToSelfPropagateScrollPosition," |
| "SendTabToSelfEnhancedDesktopUI," |
| "SendTabToSelfPostSendToast," |
| "SendTabToSelfEnhancedBottomsheet," |
| "SyncSimplifyDeviceNaming," |
| "SyncUseServerDeterminedDeviceName," |
| "SyncSessionsUsePreferredDisplayName"}, |
| {"Enabled with fast-follows", switches::kEnableFeatures, |
| "IPH_SendTabToSelfOmnibox," |
| "IPH_SendTabToSelfTutorial," |
| "SendTabToSelfAutoOpen," |
| "SendTabToSelfExtraEntryPoints," |
| "SendTabToSelfEnhancedDesktopUIv2," |
| "SendTabToSelfImprovedLastActiveLabels," |
| "SendTabToSelfPropagateFormFields," |
| "SendTabToSelfPropagateScrollPosition," |
| "SendTabToSelfEnhancedDesktopUI," |
| "SendTabToSelfPostSendToast," |
| "SendTabToSelfEnhancedBottomsheet," |
| "SendTabToSelfDynamicShortcuts," |
| "SendTabToSelfOpenNativeApp," |
| "SendTabToSelfSupportAutoOpenInTabGrid," |
| "SyncSimplifyDeviceNaming," |
| "SyncDisambiguateDeviceNamesWithChannel," |
| "SyncUseServerDeterminedDeviceName," |
| "SyncSessionsUsePreferredDisplayName," |
| "SendTabToSelfMultiTabShare"}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "IPH_SendTabToSelfOmnibox," |
| "SendTabToSelfAutoOpen," |
| "SendTabToSelfExtraEntryPoints," |
| "SendTabToSelfEnhancedDesktopUIv2," |
| "SendTabToSelfImprovedLastActiveLabels," |
| "SendTabToSelfPropagateFormFields," |
| "SendTabToSelfPropagateScrollPosition," |
| "SendTabToSelfEnhancedDesktopUI," |
| "SendTabToSelfPostSendToast," |
| "SendTabToSelfEnhancedBottomsheet," |
| "SendTabToSelfDynamicShortcuts," |
| "SendTabToSelfOpenNativeApp," |
| "SendTabToSelfSupportAutoOpenInTabGrid," |
| "SyncSimplifyDeviceNaming," |
| "SyncDisambiguateDeviceNamesWithChannel," |
| "SyncUseServerDeterminedDeviceName," |
| "SyncSessionsUsePreferredDisplayName," |
| "SendTabToSelfMultiTabShare"}, |
| }; |
| |
| const FeatureEntry::Choice kPrerender2CrossOriginIframesChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {"Enabled (Version 1)", switches::kEnableFeatures, |
| "Prerender2CrossOriginIframes"}, |
| {"Enabled (Version 2:nesting/true)", switches::kEnableFeatures, |
| "Prerender2CrossOriginIframes:nesting/true"}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "Prerender2CrossOriginIframes"}, |
| }; |
| |
| // The choices for --enable-experimental-cookie-features. This really should |
| // just be a SINGLE_VALUE_TYPE, but it is misleading to have the choices be |
| // labeled "Disabled"/"Enabled". So instead this is made to be a |
| // MULTI_VALUE_TYPE with choices "Default"/"Enabled". |
| const FeatureEntry::Choice kEnableExperimentalCookieFeaturesChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, |
| switches::kEnableExperimentalCookieFeatures, ""}, |
| }; |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::Choice kForceControlFaceAeChoices[] = { |
| {"Default", "", ""}, |
| {"Enable", media::switches::kForceControlFaceAe, "enable"}, |
| {"Disable", media::switches::kForceControlFaceAe, "disable"}}; |
| |
| const FeatureEntry::Choice kAutoFramingOverrideChoices[] = { |
| {"Default", "", ""}, |
| {"Force enabled", media::switches::kAutoFramingOverride, |
| media::switches::kAutoFramingForceEnabled}, |
| {"Force disabled", media::switches::kAutoFramingOverride, |
| media::switches::kAutoFramingForceDisabled}}; |
| |
| const FeatureEntry::Choice kFaceRetouchOverrideChoices[] = { |
| {"Default", "", ""}, |
| {"Enabled with relighting", media::switches::kFaceRetouchOverride, |
| media::switches::kFaceRetouchForceEnabledWithRelighting}, |
| {"Enabled without relighting", media::switches::kFaceRetouchOverride, |
| media::switches::kFaceRetouchForceEnabledWithoutRelighting}, |
| {"Disabled", media::switches::kFaceRetouchOverride, |
| media::switches::kFaceRetouchForceDisabled}}; |
| |
| const FeatureEntry::Choice kCrostiniContainerChoices[] = { |
| {"Default", "", ""}, |
| {"Buster", crostini::kCrostiniContainerFlag, "buster"}, |
| {"Bullseye", crostini::kCrostiniContainerFlag, "bullseye"}, |
| {"Bookworm", crostini::kCrostiniContainerFlag, "bookworm"}, |
| }; |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_10[] = { |
| {"confidence_threshold", "10"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_20[] = { |
| {"confidence_threshold", "20"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_30[] = { |
| {"confidence_threshold", "30"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_40[] = { |
| {"confidence_threshold", "40"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_50[] = { |
| {"confidence_threshold", "50"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_60[] = { |
| {"confidence_threshold", "60"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_70[] = { |
| {"confidence_threshold", "70"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_80[] = { |
| {"confidence_threshold", "80"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_90[] = { |
| {"confidence_threshold", "90"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_100[] = { |
| {"confidence_threshold", "100"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_110[] = { |
| {"confidence_threshold", "110"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchConfidence_120[] = { |
| {"confidence_threshold", "120"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kLauncherLocalImageSearchConfidenceVariations[] = { |
| {"threshold 10", kLauncherLocalImageSearchConfidence_10, nullptr}, |
| {"threshold 20", kLauncherLocalImageSearchConfidence_20, nullptr}, |
| {"threshold 30", kLauncherLocalImageSearchConfidence_30, nullptr}, |
| {"threshold 40", kLauncherLocalImageSearchConfidence_40, nullptr}, |
| {"threshold 50", kLauncherLocalImageSearchConfidence_50, nullptr}, |
| {"threshold 60", kLauncherLocalImageSearchConfidence_60, nullptr}, |
| {"threshold 70", kLauncherLocalImageSearchConfidence_70, nullptr}, |
| {"threshold 80", kLauncherLocalImageSearchConfidence_80, nullptr}, |
| {"threshold 90", kLauncherLocalImageSearchConfidence_90, nullptr}, |
| {"threshold 100", kLauncherLocalImageSearchConfidence_100, nullptr}, |
| {"threshold 110", kLauncherLocalImageSearchConfidence_110, nullptr}, |
| {"threshold 120", kLauncherLocalImageSearchConfidence_120, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_10[] = { |
| {"relevance_threshold", "0.1"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_20[] = { |
| {"relevance_threshold", "0.2"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_30[] = { |
| {"relevance_threshold", "0.3"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_40[] = { |
| {"relevance_threshold", "0.4"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_50[] = { |
| {"relevance_threshold", "0.5"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_60[] = { |
| {"relevance_threshold", "0.6"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_70[] = { |
| {"relevance_threshold", "0.7"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_80[] = { |
| {"relevance_threshold", "0.8"}}; |
| const FeatureEntry::FeatureParam kLauncherLocalImageSearchRelevance_90[] = { |
| {"relevance_threshold", "0.9"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kLauncherLocalImageSearchRelevanceVariations[] = { |
| {"threshold 0.1", kLauncherLocalImageSearchRelevance_10, nullptr}, |
| {"threshold 0.2", kLauncherLocalImageSearchRelevance_20, nullptr}, |
| {"threshold 0.3", kLauncherLocalImageSearchRelevance_30, nullptr}, |
| {"threshold 0.4", kLauncherLocalImageSearchRelevance_40, nullptr}, |
| {"threshold 0.5", kLauncherLocalImageSearchRelevance_50, nullptr}, |
| {"threshold 0.6", kLauncherLocalImageSearchRelevance_60, nullptr}, |
| {"threshold 0.7", kLauncherLocalImageSearchRelevance_70, nullptr}, |
| {"threshold 0.8", kLauncherLocalImageSearchRelevance_80, nullptr}, |
| {"threshold 0.9", kLauncherLocalImageSearchRelevance_90, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kCampbell9dot[] = {{"icon", "9dot"}}; |
| const FeatureEntry::FeatureParam kCampbellHero[] = {{"icon", "hero"}}; |
| const FeatureEntry::FeatureParam kCampbellAction[] = {{"icon", "action"}}; |
| const FeatureEntry::FeatureParam kCampbellText[] = {{"icon", "text"}}; |
| |
| const FeatureEntry::FeatureVariation kCampbellGlyphVariations[] = { |
| {"9dot", kCampbell9dot, nullptr}, |
| {"hero", kCampbellHero, nullptr}, |
| {"action", kCampbellAction, nullptr}, |
| {"text", kCampbellText, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kCaptureModeEducationShortcutNudge[] = { |
| {"CaptureModeEducationParam", "ShortcutNudge"}}; |
| const FeatureEntry::FeatureParam kCaptureModeEducationShortcutTutorial[] = { |
| {"CaptureModeEducationParam", "ShortcutTutorial"}}; |
| const FeatureEntry::FeatureParam kCaptureModeEducationQuickSettingsNudge[] = { |
| {"CaptureModeEducationParam", "QuickSettingsNudge"}}; |
| |
| const FeatureEntry::FeatureVariation kCaptureModeEducationVariations[] = { |
| {"Shortcut Nudge", kCaptureModeEducationShortcutNudge, nullptr}, |
| {"Shortcut Tutorial", kCaptureModeEducationShortcutTutorial, nullptr}, |
| {"Quick Settings Nudge", kCaptureModeEducationQuickSettingsNudge, nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kSystemShortcutBehaviorIgnoreCommonVdiShortcuts[] = { |
| {"behavior_type", "ignore_common_vdi_shortcuts"}}; |
| const FeatureEntry::FeatureParam |
| kSystemShortcutBehaviorIgnoreCommonVdiShortcutsFullscreenOnly[] = { |
| {"behavior_type", "ignore_common_vdi_shortcut_fullscreen_only"}}; |
| const FeatureEntry::FeatureParam |
| kSystemShortcutBehaviorAllowSearchBasedPassthrough[] = { |
| {"behavior_type", "allow_search_based_passthrough"}}; |
| const FeatureEntry::FeatureParam |
| kSystemShortcutBehaviorAllowSearchBasedPassthroughFullscreenOnly[] = { |
| {"behavior_type", "allow_search_based_passthrough_fullscreen_only"}}; |
| |
| const FeatureEntry::FeatureVariation kSystemShortcutBehaviorVariations[] = { |
| {"Ignore Common VDI Shortcuts", |
| kSystemShortcutBehaviorIgnoreCommonVdiShortcuts, nullptr}, |
| {"Ignore Common VDI Shortcuts while Fullscreen", |
| kSystemShortcutBehaviorIgnoreCommonVdiShortcutsFullscreenOnly, nullptr}, |
| {"Allow Search Based Passthrough", |
| kSystemShortcutBehaviorAllowSearchBasedPassthrough, nullptr}, |
| {"Allow Search Based Passthrough while Fullscreen", |
| kSystemShortcutBehaviorAllowSearchBasedPassthroughFullscreenOnly, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| constexpr char kWallpaperFastRefreshInternalName[] = "wallpaper-fast-refresh"; |
| constexpr char kGlanceablesTimeManagementClassroomStudentViewInternalName[] = |
| "glanceables-time-management-classroom-student-view"; |
| constexpr char kGlanceablesTimeManagementTasksViewInternalName[] = |
| "glanceables-time-management-tasks-view"; |
| constexpr char kBackgroundListeningName[] = "background-listening"; |
| constexpr char kBorealisBigGlInternalName[] = "borealis-big-gl"; |
| constexpr char kBorealisDGPUInternalName[] = "borealis-dgpu"; |
| constexpr char kBorealisEnableUnsupportedHardwareInternalName[] = |
| "borealis-enable-unsupported-hardware"; |
| constexpr char kBorealisForceBetaClientInternalName[] = |
| "borealis-force-beta-client"; |
| constexpr char kBorealisForceDoubleScaleInternalName[] = |
| "borealis-force-double-scale"; |
| constexpr char kBorealisLinuxModeInternalName[] = "borealis-linux-mode"; |
| // This differs slightly from its symbol's name since "enabled" is used |
| // internally to refer to whether borealis is installed or not. |
| constexpr char kBorealisPermittedInternalName[] = "borealis-enabled"; |
| constexpr char kBorealisProvisionInternalName[] = "borealis-provision"; |
| constexpr char kBorealisScaleClientByDPIInternalName[] = |
| "borealis-scale-client-by-dpi"; |
| constexpr char kBorealisZinkGlDriverInternalName[] = "borealis-zink-gl-driver"; |
| constexpr char kBluetoothUseLLPrivacyInternalName[] = "bluetooth-use-llprivacy"; |
| constexpr char kAssistantIphInternalName[] = "assistant-iph"; |
| constexpr char kGrowthCampaigns[] = "growth-campaigns"; |
| constexpr char kGrowthCampaignsTestTag[] = "campaigns-test-tag"; |
| constexpr char kVcTrayMicIndicatorInternalName[] = "vc-tray-mic-indicator"; |
| constexpr char kVcTrayTitleHeaderInternalName[] = "vc-tray-title-header"; |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kLensOverlayNoOmniboxEntryPoint[] = { |
| {"omnibox-entry-point", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kLensOverlayResponsiveOmniboxEntryPoint[] = { |
| {"omnibox-entry-point", "true"}, |
| {"omnibox-entry-point-always-visible", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kLensOverlayPersistentOmniboxEntryPoint[] = { |
| {"omnibox-entry-point", "true"}, |
| {"omnibox-entry-point-always-visible", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kLensOverlayVariations[] = { |
| {"with no omnibox entry point", kLensOverlayNoOmniboxEntryPoint, nullptr}, |
| {"with responsive chip omnibox entry point", |
| kLensOverlayResponsiveOmniboxEntryPoint, nullptr}, |
| {"with persistent icon omnibox entry point", |
| kLensOverlayPersistentOmniboxEntryPoint, nullptr}, |
| }; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kLensOverlayAndroidAGSAIntent[] = { |
| {"implementation_type", lens::features::kLensOverlayAndroidImplIntent}}; |
| const FeatureEntry::FeatureParam kLensOverlayAndroidWebUI[] = { |
| {"implementation_type", lens::features::kLensOverlayAndroidImplWebUI}}; |
| |
| const FeatureEntry::FeatureVariation kLensOverlayAndroidVariations[] = { |
| {"(AGSA Intent)", kLensOverlayAndroidAGSAIntent, nullptr}, |
| {"(WebUI Overlay)", kLensOverlayAndroidWebUI, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kLensOverlayImageContextMenuActionsCopy[] = { |
| {"enable-copy-as-image", "true"}, |
| {"enable-save-as-image", "false"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kLensOverlayImageContextMenuActionsSave[] = { |
| {"enable-copy-as-image", "false"}, |
| {"enable-save-as-image", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kLensOverlayImageContextMenuActionsCopyAndSave[] = { |
| {"enable-copy-as-image", "true"}, |
| {"enable-save-as-image", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kLensOverlayImageContextMenuActionsVariations[] = { |
| {"copy as image", kLensOverlayImageContextMenuActionsCopy, nullptr}, |
| {"save as image", kLensOverlayImageContextMenuActionsSave, nullptr}, |
| {"copy and save as image", |
| kLensOverlayImageContextMenuActionsCopyAndSave, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kLensOverlayTextSelectionContextMenuEntrypointContextualized[] = { |
| {"contextualize", "true"}}; |
| const FeatureEntry::FeatureParam |
| kLensOverlayTextSelectionContextMenuEntrypointNonContextualized[] = { |
| {"contextualize", "false"}}; |
| const FeatureEntry::FeatureVariation |
| kLensOverlayTextSelectionContextMenuEntrypointVariations[] = { |
| {"contextualized", |
| kLensOverlayTextSelectionContextMenuEntrypointContextualized, nullptr}, |
| {"non-contextualized", |
| kLensOverlayTextSelectionContextMenuEntrypointNonContextualized, |
| nullptr}, |
| }; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::Choice kAlwaysEnableHdcpChoices[] = { |
| {flag_descriptions::kAlwaysEnableHdcpDefault, "", ""}, |
| {flag_descriptions::kAlwaysEnableHdcpType0, |
| ash::switches::kAlwaysEnableHdcp, "type0"}, |
| {flag_descriptions::kAlwaysEnableHdcpType1, |
| ash::switches::kAlwaysEnableHdcp, "type1"}, |
| }; |
| |
| const FeatureEntry::Choice kPrintingPpdChannelChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {ash::switches::kPrintingPpdChannelProduction, |
| ash::switches::kPrintingPpdChannel, |
| ash::switches::kPrintingPpdChannelProduction}, |
| {ash::switches::kPrintingPpdChannelStaging, |
| ash::switches::kPrintingPpdChannel, |
| ash::switches::kPrintingPpdChannelStaging}, |
| {ash::switches::kPrintingPpdChannelDev, ash::switches::kPrintingPpdChannel, |
| ash::switches::kPrintingPpdChannelDev}, |
| {ash::switches::kPrintingPpdChannelLocalhost, |
| ash::switches::kPrintingPpdChannel, |
| ash::switches::kPrintingPpdChannelLocalhost}}; |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| // Feature variations for kIsolateSandboxedIframes. |
| const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerSite[] = { |
| {"grouping", "per-site"}}; |
| const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerOrigin[] = { |
| {"grouping", "per-origin"}}; |
| const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerDocument[] = |
| {{"grouping", "per-document"}}; |
| const FeatureEntry::FeatureVariation |
| kIsolateSandboxedIframesGroupingVariations[] = { |
| {"with grouping by URL's site", kIsolateSandboxedIframesGroupingPerSite, |
| nullptr}, |
| {"with grouping by URL's origin", |
| kIsolateSandboxedIframesGroupingPerOrigin, nullptr}, |
| {"with each sandboxed frame document in its own process", |
| kIsolateSandboxedIframesGroupingPerDocument, nullptr}, |
| }; |
| |
| // Feature variation for kPdfInk2. |
| #if BUILDFLAG(ENABLE_PDF_INK2) |
| const FeatureEntry::FeatureParam kPdfInk2TextAnnotations[] = { |
| {"text-annotations", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kPdfInk2TextAnnotationsExtraStyles[] = { |
| {"text-annotations", "true"}, |
| {"text-annotations-extra-styles", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kPdfInk2Variations[] = { |
| {"with text annotations", kPdfInk2TextAnnotations, nullptr}, |
| {"with text annotations and extra styles", |
| kPdfInk2TextAnnotationsExtraStyles, nullptr}, |
| }; |
| #endif // BUILDFLAG(ENABLE_PDF_INK2) |
| |
| const FeatureEntry::FeatureParam kWebRtcApmDownmixMethodAverage[] = { |
| {"method", "average"}}; |
| const FeatureEntry::FeatureParam kWebRtcApmDownmixMethodFirstChannel[] = { |
| {"method", "first"}}; |
| const FeatureEntry::FeatureVariation kWebRtcApmDownmixMethodVariations[] = { |
| {"- Average all the input channels", kWebRtcApmDownmixMethodAverage, |
| nullptr}, |
| {"- Use first channel", kWebRtcApmDownmixMethodFirstChannel, nullptr}}; |
| |
| #if BUILDFLAG(IS_WIN) |
| const FeatureEntry::FeatureParam kSPCDiscoveryModeDatabaseOnly[] = { |
| {"mode", |
| payments::features::CredentialDiscoveryModeToString( |
| payments::features::CredentialDiscoveryMode::kUserDatabaseOnly)}}; |
| const FeatureEntry::FeatureParam kSPCDiscoveryModeHybrid[] = { |
| {"mode", payments::features::CredentialDiscoveryModeToString( |
| payments::features::CredentialDiscoveryMode::kHybrid)}}; |
| const FeatureEntry::FeatureParam kSPCDiscoveryModeOsOnly[] = { |
| {"mode", payments::features::CredentialDiscoveryModeToString( |
| payments::features::CredentialDiscoveryMode::kOsOnly)}}; |
| const FeatureEntry::FeatureVariation kSPCDiscoveryModeVariations[] = { |
| {"Database Only", kSPCDiscoveryModeDatabaseOnly, nullptr}, |
| {"Hybrid (OS and Database)", kSPCDiscoveryModeHybrid, nullptr}, |
| {"OS Store Only", kSPCDiscoveryModeOsOnly, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kTextClassifierTimeout100ms[] = { |
| {"timeout_ms", "100"}}; |
| const FeatureEntry::FeatureParam kTextClassifierTimeout200ms[] = { |
| {"timeout_ms", "200"}}; |
| const FeatureEntry::FeatureParam kTextClassifierTimeout500ms[] = { |
| {"timeout_ms", "500"}}; |
| const FeatureEntry::FeatureParam kTextClassifierTimeout1000ms[] = { |
| {"timeout_ms", "1000"}}; |
| |
| const FeatureEntry::FeatureVariation kTextClassifierTimeoutVariations[] = { |
| {"100ms", kTextClassifierTimeout100ms, nullptr}, |
| {"200ms", kTextClassifierTimeout200ms, nullptr}, |
| {"500ms", kTextClassifierTimeout500ms, nullptr}, |
| {"1000ms", kTextClassifierTimeout1000ms, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kSafetyCheckUnusedSitePermissionsNoDelayParam[] = { |
| {"unused-site-permissions-no-delay-for-testing", "true"}}; |
| |
| const FeatureEntry::FeatureParam |
| kSafetyCheckUnusedSitePermissionsWithDelayParam[] = { |
| {"unused-site-permissions-with-delay-for-testing", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kSafetyCheckUnusedSitePermissionsVariations[] = { |
| {"for testing no delay", kSafetyCheckUnusedSitePermissionsNoDelayParam, |
| nullptr}, |
| {"for testing with delay", |
| kSafetyCheckUnusedSitePermissionsWithDelayParam, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::FeatureParam kVcInferenceBackendAuto[] = { |
| {"inference_backend", "AUTO"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kVcInferenceBackendGpu[] = { |
| {"inference_backend", "GPU"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kVcInferenceBackendNpu[] = { |
| {"inference_backend", "NPU"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kVcRelightingInferenceBackendVariations[] = |
| {{"AUTO", kVcInferenceBackendAuto, nullptr}, |
| {"GPU", kVcInferenceBackendGpu, nullptr}, |
| {"NPU", kVcInferenceBackendNpu, nullptr}}; |
| |
| const FeatureEntry::FeatureVariation kVcRetouchInferenceBackendVariations[] = { |
| {"AUTO", kVcInferenceBackendAuto, nullptr}, |
| {"GPU", kVcInferenceBackendGpu, nullptr}, |
| {"NPU", kVcInferenceBackendNpu, nullptr}}; |
| |
| const FeatureEntry::FeatureVariation |
| kVcSegmentationInferenceBackendVariations[] = { |
| {"AUTO", kVcInferenceBackendAuto, nullptr}, |
| {"GPU", kVcInferenceBackendGpu, nullptr}, |
| {"NPU", kVcInferenceBackendNpu, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kVcSegmentationModelHighResolution[] = { |
| {"segmentation_model", "high_resolution"}, |
| }; |
| |
| const FeatureEntry::FeatureParam kVcSegmentationModelLowerResolution[] = { |
| {"segmentation_model", "lower_resolution"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kVcSegmentationModelVariations[] = { |
| {"High resolution model", kVcSegmentationModelHighResolution, nullptr}, |
| {"Lower resolution model", kVcSegmentationModelLowerResolution, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kCrOSLateBootMissiveDisableStorageDegradation[] = { |
| {"controlled_degradation", "false"}}; |
| const FeatureEntry::FeatureParam |
| kCrOSLateBootMissiveEnableStorageDegradation[] = { |
| {"controlled_degradation", "true"}}; |
| const FeatureEntry::FeatureParam kCrOSLateBootMissiveDisableLegacyStorage[] = { |
| {"legacy_storage_enabled", |
| "UNDEFINED_PRIORITY"}}; // All others are multi-generation action state. |
| const FeatureEntry::FeatureParam kCrOSLateBootMissiveEnableLegacyStorage[] = { |
| {"legacy_storage_enabled", |
| "SECURITY," |
| "IMMEDIATE," |
| "FAST_BATCH," |
| "SLOW_BATCH," |
| "BACKGROUND_BATCH," |
| "MANUAL_BATCH," |
| "MANUAL_BATCH_LACROS,"}}; |
| const FeatureEntry::FeatureParam kCrOSLateBootMissivePartialLegacyStorage[] = { |
| {"legacy_storage_enabled", |
| "SECURITY," |
| "IMMEDIATE,"}}; |
| const FeatureEntry::FeatureParam kCrOSLateBootMissiveSecurityLegacyStorage[] = { |
| {"legacy_storage_enabled", "SECURITY,"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kCrOSLateBootMissiveStorageDefaultVariations[] = { |
| {"Enable storage degradation", |
| kCrOSLateBootMissiveEnableStorageDegradation, nullptr}, |
| {"Disable storage degradation", |
| kCrOSLateBootMissiveDisableStorageDegradation, nullptr}, |
| {"Enable all queues legacy", kCrOSLateBootMissiveEnableLegacyStorage, |
| nullptr}, |
| {"Disable all queues legacy", kCrOSLateBootMissiveDisableLegacyStorage, |
| nullptr}, |
| {"Enable SECURITY and IMMEDIATE queues legacy only", |
| kCrOSLateBootMissivePartialLegacyStorage, nullptr}, |
| {"Enable SECURITY queues legacy only", |
| kCrOSLateBootMissiveSecurityLegacyStorage, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::Choice kCastMirroringTargetPlayoutDelayChoices[] = { |
| {flag_descriptions::kCastMirroringTargetPlayoutDelayDefault, "", ""}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay100ms, |
| switches::kCastMirroringTargetPlayoutDelay, "100"}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay150ms, |
| switches::kCastMirroringTargetPlayoutDelay, "150"}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay250ms, |
| switches::kCastMirroringTargetPlayoutDelay, "250"}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay300ms, |
| switches::kCastMirroringTargetPlayoutDelay, "300"}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay350ms, |
| switches::kCastMirroringTargetPlayoutDelay, "350"}, |
| {flag_descriptions::kCastMirroringTargetPlayoutDelay400ms, |
| switches::kCastMirroringTargetPlayoutDelay, "400"}}; |
| |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam sAndroidThemeModuleParams[] = { |
| {"force_theme_module_dependencies", "true"}}; |
| const FeatureEntry::FeatureVariation kAndroidThemeModuleVariations[] = { |
| {"force dependencies", sAndroidThemeModuleParams, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam sAndroidThemeResourceProviderParams[] = { |
| {"force_light_theme", "true"}}; |
| const FeatureEntry::FeatureVariation kAndroidThemeResourceProviderVariations[] = |
| { |
| {"force light theme", sAndroidThemeResourceProviderParams, nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOn[] = |
| {{"link_capturing_state", "on_by_default"}}; |
| const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOff[] = |
| {{"link_capturing_state", "off_by_default"}}; |
| const flags_ui::FeatureEntry::FeatureParam |
| kPwaNavigationCapturingReimplDefaultOn[] = { |
| {"link_capturing_state", "reimpl_default_on"}}; |
| const flags_ui::FeatureEntry::FeatureParam |
| kPwaNavigationCapturingReimplDefaultOff[] = { |
| {"link_capturing_state", "reimpl_default_off"}}; |
| const flags_ui::FeatureEntry::FeatureParam |
| kPwaNavigationCapturingReimplOnViaClientMode[] = { |
| {"link_capturing_state", "reimpl_on_via_client_mode"}}; |
| const flags_ui::FeatureEntry::FeatureVariation |
| kPwaNavigationCapturingVariations[] = { |
| {"V1, On by default", kPwaNavigationCapturingDefaultOn, nullptr}, |
| {"V1, Off by default", kPwaNavigationCapturingDefaultOff, nullptr}, |
| {"V2, On by default", kPwaNavigationCapturingReimplDefaultOn, nullptr}, |
| {"V2, Off by default", kPwaNavigationCapturingReimplDefaultOff, |
| nullptr}, |
| {"V2, On by app client_mode", |
| kPwaNavigationCapturingReimplOnViaClientMode, nullptr}}; |
| |
| const flags_ui::FeatureEntry::FeatureVariation |
| kPwaNavigationCapturingVariationsForTesting[] = { |
| {"V2, On by default", kPwaNavigationCapturingReimplDefaultOn, nullptr}, |
| {"V2, On by app client_mode", |
| kPwaNavigationCapturingReimplOnViaClientMode, nullptr}}; |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| const char kReplaceSyncPromosWithSignInPromosDesktopFeatures[] = |
| "ReplaceSyncPromosWithSignInPromos," |
| "IPH_SignInBenefits," |
| "SyncEnableContactInfoDataTypeForCustomPassphraseUsers"; |
| |
| const FeatureEntry::Choice kReplaceSyncPromosWithSignInPromosDesktopChoices[] = |
| {{"Default", "", ""}, |
| {"Disabled", switches::kDisableFeatures, |
| kReplaceSyncPromosWithSignInPromosDesktopFeatures}, |
| {"Enabled", switches::kEnableFeatures, |
| kReplaceSyncPromosWithSignInPromosDesktopFeatures}}; |
| |
| const char kReplaceSyncPromosWithSigninPromosNewSigninFeatures[] = |
| "ReplaceSyncPromosWithSigninPromosNewSignin," |
| "IPH_SignInBenefitsNewSignin"; |
| |
| const FeatureEntry::Choice |
| kReplaceSyncPromosWithSigninPromosNewSigninChoices[] = { |
| {"Default", "", ""}, |
| {"Disabled", switches::kDisableFeatures, |
| kReplaceSyncPromosWithSigninPromosNewSigninFeatures}, |
| {"Enabled", switches::kEnableFeatures, |
| kReplaceSyncPromosWithSigninPromosNewSigninFeatures}}; |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| |
| const FeatureEntry::FeatureParam kGroupSuggestionEnableRecentlyOpenedOnly[] = { |
| {"group_suggestion_enable_recently_opened", "true"}, |
| {"group_suggestion_enable_switch_between", "false"}, |
| {"group_suggestion_enable_similar_source", "false"}, |
| {"group_suggestion_enable_same_origin", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kGroupSuggestionEnableSwitchBetweenOnly[] = { |
| {"group_suggestion_enable_recently_opened", "false"}, |
| {"group_suggestion_enable_switch_between", "true"}, |
| {"group_suggestion_enable_similar_source", "false"}, |
| {"group_suggestion_enable_same_origin", "false"}, |
| {"group_suggestion_trigger_calculation_on_page_load", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kGroupSuggestionEnableSimilarSourceOnly[] = { |
| {"group_suggestion_enable_recently_opened", "false"}, |
| {"group_suggestion_enable_switch_between", "false"}, |
| {"group_suggestion_enable_similar_source", "true"}, |
| {"group_suggestion_enable_same_origin", "false"}, |
| {"group_suggestion_trigger_calculation_on_page_load", "false"}, |
| }; |
| const FeatureEntry::FeatureParam kGroupSuggestionEnableSameOriginOnly[] = { |
| {"group_suggestion_enable_recently_opened", "false"}, |
| {"group_suggestion_enable_switch_between", "false"}, |
| {"group_suggestion_enable_similar_source", "false"}, |
| {"group_suggestion_enable_same_origin", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kGroupSuggestionEnableTabSwitcherOnly[] = { |
| {"group_suggestion_enable_tab_switcher_only", "true"}, |
| }; |
| const FeatureEntry::FeatureVariation kGroupSuggestionVariations[] = { |
| {"Recently Opened Only", kGroupSuggestionEnableRecentlyOpenedOnly, nullptr}, |
| {"Switch Between Only", kGroupSuggestionEnableSwitchBetweenOnly, nullptr}, |
| {"Similar Source Only", kGroupSuggestionEnableSimilarSourceOnly, nullptr}, |
| {"Same Origin Only", kGroupSuggestionEnableSameOriginOnly, nullptr}, |
| {"Tab Switcher Only", kGroupSuggestionEnableTabSwitcherOnly, nullptr}, |
| }; |
| |
| #if BUILDFLAG(ENABLE_COMPOSE) |
| // Variations of the Compose selection nudge. |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_1[] = { |
| {"selection_nudge_length", "1"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_15[] = { |
| {"selection_nudge_length", "15"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_30[] = { |
| {"selection_nudge_length", "30"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_30_1s[] = { |
| {"selection_nudge_length", "30"}, |
| {"selection_nudge_delay_milliseconds", "1000"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_30_2s[] = { |
| {"selection_nudge_length", "30"}, |
| {"selection_nudge_delay_milliseconds", "2000"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_50[] = { |
| {"selection_nudge_length", "50"}}; |
| |
| const FeatureEntry::FeatureParam kComposeSelectionNudge_100[] = { |
| {"selection_nudge_length", "100"}}; |
| |
| const FeatureEntry::FeatureVariation kComposeSelectionNudgeVariations[] = { |
| {"1 Char", kComposeSelectionNudge_1, nullptr}, |
| {"15 Char", kComposeSelectionNudge_15, nullptr}, |
| {"30 Char", kComposeSelectionNudge_30, nullptr}, |
| {"50 Char", kComposeSelectionNudge_50, nullptr}, |
| {"100 Char", kComposeSelectionNudge_100, nullptr}, |
| {"30 Char - 1sec", kComposeSelectionNudge_30_1s, nullptr}, |
| {"30 char - 2sec", kComposeSelectionNudge_30_2s, nullptr}}; |
| #endif // ENABLE_COMPOSE |
| |
| #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| const FeatureEntry::FeatureParam kLocationProviderManagerModeNetworkOnly[] = { |
| {"LocationProviderManagerMode", "NetworkOnly"}}; |
| const FeatureEntry::FeatureParam kLocationProviderManagerModePlatformOnly[] = { |
| {"LocationProviderManagerMode", "PlatformOnly"}}; |
| const FeatureEntry::FeatureParam kLocationProviderManagerModeHybridPlatform[] = |
| {{"LocationProviderManagerMode", "HybridPlatform"}}; |
| const FeatureEntry::FeatureParam kLocationProviderManagerModeHybridPlatform2[] = |
| {{"LocationProviderManagerMode", "HybridPlatform2"}}; |
| |
| const FeatureEntry::FeatureVariation kLocationProviderManagerVariations[] = { |
| {"Network only", kLocationProviderManagerModeNetworkOnly, nullptr}, |
| {"Platform only", kLocationProviderManagerModePlatformOnly, nullptr}, |
| {"Wi-Fi fallback", kLocationProviderManagerModeHybridPlatform, nullptr}, |
| {"Fallback on error", kLocationProviderManagerModeHybridPlatform2, |
| nullptr}}; |
| #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| |
| const FeatureEntry::FeatureParam kVisitedURLRankingDomainDeduplicationParam[] = |
| {{"url_deduplication_include_title", "false"}}; |
| |
| const FeatureEntry::FeatureParam |
| kVisitedURLRankingDomainDeduplicationIncludeQueryParam[] = { |
| {"url_deduplication_include_title", "false"}, |
| {"url_deduplication_fallback", "false"}}; |
| |
| const FeatureEntry::FeatureParam |
| kVisitedURLRankingDomainDeduplicationIncludePathQueryParam[] = { |
| {"url_deduplication_include_title", "false"}, |
| {"url_deduplication_clear_path", "false"}, |
| {"url_deduplication_fallback", "false"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kVisitedURLRankingDomainDeduplicationVariations[] = { |
| {"- Domain Deduplication", kVisitedURLRankingDomainDeduplicationParam, |
| nullptr}, |
| {"- Domain Deduplication - Include Query", |
| kVisitedURLRankingDomainDeduplicationIncludeQueryParam, nullptr}, |
| {"- Domain Deduplication - Include Path and Query", |
| kVisitedURLRankingDomainDeduplicationIncludePathQueryParam, nullptr}}; |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| constexpr char kExtensionAiDataInternalName[] = |
| "enable-extension-ai-data-collection"; |
| #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
| |
| const FeatureEntry::FeatureParam kDiscountOnShoppyPage[] = { |
| {commerce::kDiscountOnShoppyPageParam, "true"}}; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureVariation kDiscountsVariations[] = { |
| {"Discount on Shoppy page", kDiscountOnShoppyPage, nullptr}}; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kDiscountIconOnAndroidUseAlternateColor[] = { |
| {commerce::kDiscountOnShoppyPageParam, "true"}, |
| {"action_chip_with_different_color", "true"}}; |
| const FeatureEntry::FeatureVariation kDiscountsVariationsOnAndroid[] = { |
| {"Discount on Shoppy page", kDiscountOnShoppyPage, nullptr}, |
| {"action chip different color", kDiscountIconOnAndroidUseAlternateColor, |
| nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kSkiaGraphite_ValidationEnabled[] = { |
| {"dawn_skip_validation", "false"}}; |
| const FeatureEntry::FeatureParam kSkiaGraphite_ValidationDisabled[] = { |
| {"dawn_skip_validation", "true"}}; |
| const FeatureEntry::FeatureParam kSkiaGraphite_DebugLabelsEnabled[] = { |
| {"dawn_backend_debug_labels", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kSkiaGraphiteVariations[] = { |
| {"dawn frontend validation enabled", kSkiaGraphite_ValidationEnabled, |
| nullptr}, |
| {"dawn frontend validation disabled", kSkiaGraphite_ValidationDisabled, |
| nullptr}, |
| {"dawn debug labels enabled", kSkiaGraphite_DebugLabelsEnabled, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kSensitiveContentUsePwmHeuristics[] = { |
| {"sensitive_content_use_pwm_heuristics", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kSensitiveContentVariations[] = { |
| {"with password manager heuristics", kSensitiveContentUsePwmHeuristics, |
| nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kContextualCueingEnabledNoEngagementCap[] = { |
| {"BackoffTime", "0h"}, |
| {"BackoffMultiplierBase", "0.0"}, |
| {"NudgeCapTime", "0h"}, |
| {"NudgeCapTimePerDomain", "0h"}, |
| {"MinPageCountBetweenNudges", "0"}, |
| {"MinTimeBetweenNudges", "0h"}}; |
| const FeatureEntry::FeatureVariation kContextualCueingEnabledOptions[] = { |
| {"no engagement caps", kContextualCueingEnabledNoEngagementCap, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kContextualCueingV2DisableCueBackoff[] = { |
| {"ContextualCueingV2DisableCueBackoff", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kContextualCueingV2Options[] = { |
| {"disable backoff", kContextualCueingV2DisableCueBackoff, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| #if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserOnly[] = { |
| {"enabled-processes", "browser-only"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserAndRenderer[] = { |
| {"enabled-processes", "browser-and-renderer"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_NonRenderer[] = { |
| {"enabled-processes", "non-renderer"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_GPUOnly[] = { |
| {"enabled-processes", "gpu-only"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserAndGPU[] = { |
| {"enabled-processes", "browser-and-gpu"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_AllProcesses[] = { |
| {"enabled-processes", "all-processes"}}; |
| const FeatureEntry::FeatureVariation |
| kPartitionAllocWithAdvancedChecksEnabledProcessesOptions[] = { |
| {"on browser process only", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserOnly, |
| nullptr}, |
| {"on browser and renderer processes", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserAndRenderer, |
| nullptr}, |
| {"on non renderer processes", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_NonRenderer, |
| nullptr}, |
| {"on gpu process only", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_GPUOnly, nullptr}, |
| {"on browser and gpu processes", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_BrowserAndGPU, |
| nullptr}, |
| {"on all processes", |
| kPartitionAllocWithAdvancedChecksEnabledProcesses_AllProcesses, |
| nullptr}}; |
| #endif // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| |
| #if BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(HAS_MEMORY_TAGGING) && \ |
| PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| // Feature variations for kPartitionAllocMemoryTagging. |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_AsyncBrowserOnly[] = { |
| {"enabled-processes", "browser-only"}, |
| {"memtag-mode", "async"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_AsyncNonRenderer[] = { |
| {"enabled-processes", "non-renderer"}, |
| {"memtag-mode", "async"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_AsyncAllProcesses[] = { |
| {"enabled-processes", "all-processes"}, |
| {"memtag-mode", "async"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_SyncBrowserOnly[] = { |
| {"enabled-processes", "browser-only"}, |
| {"memtag-mode", "sync"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_SyncNonRenderer[] = { |
| {"enabled-processes", "non-renderer"}, |
| {"memtag-mode", "sync"}}; |
| const FeatureEntry::FeatureParam |
| kPartitionAllocMemoryTaggingParams_SyncAllProcesses[] = { |
| {"enabled-processes", "all-processes"}, |
| {"memtag-mode", "sync"}}; |
| const FeatureEntry::FeatureVariation |
| kPartitionAllocMemoryTaggingEnabledProcessesOptions[] = { |
| {"ASYNC mode on browser process only", |
| kPartitionAllocMemoryTaggingParams_AsyncBrowserOnly, nullptr}, |
| {"ASYNC mode on non renderer processes", |
| kPartitionAllocMemoryTaggingParams_AsyncNonRenderer, nullptr}, |
| {"ASYNC mode on all processes", |
| kPartitionAllocMemoryTaggingParams_AsyncAllProcesses, nullptr}, |
| {"SYNC mode on browser process only", |
| kPartitionAllocMemoryTaggingParams_SyncBrowserOnly, nullptr}, |
| {"SYNC mode on non renderer processes", |
| kPartitionAllocMemoryTaggingParams_SyncNonRenderer, nullptr}, |
| {"SYNC mode on all processes", |
| kPartitionAllocMemoryTaggingParams_SyncAllProcesses, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(HAS_MEMORY_TAGGING) && |
| // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam |
| kMaliciousApkDownloadCheckTelemetryOnlyParams[] = { |
| {"telemetry_only", "true"}}; |
| const FeatureEntry::FeatureVariation kMaliciousApkDownloadCheckChoices[] = { |
| {"Telemetry only", kMaliciousApkDownloadCheckTelemetryOnlyParams, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| constexpr char kDisableFacilitatedPaymentsMerchantAllowlistInternalName[] = |
| "disable-facilitated-payments-merchant-allowlist"; |
| constexpr char kSettingsInTabUrlNavInternalName[] = "settings-in-tab-url-nav"; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kStandardBoundSessionCredentialsForDevelopers[] = { |
| {"RequireOriginTrialTokens", "false"}, |
| {"RefreshQuota", "false"}, |
| {"CheckSubdomainRegistration", "false"}, |
| {"OriginTrialFeedback", "true"}, |
| {"SchemaVersion", "2"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kStandardBoundSessionCredentialsVariations[] = { |
| {"- For developers", kStandardBoundSessionCredentialsForDevelopers, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kStandardBoundSessionCredentialsFederatedSessionsForDevelopers[] = { |
| {"CheckWellKnown", "false"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kStandardBoundSessionCredentialsFederatedSessionsVariations[] = { |
| {"- For developers", |
| kStandardBoundSessionCredentialsFederatedSessionsForDevelopers, |
| nullptr}}; |
| |
| // Variations on pre-warming delays. |
| const FeatureEntry::FeatureParam kGlicWarmingShorterDelays[] = { |
| {"glic-warming-delay-ms", "5000"}, |
| {"glic-panel-reset-delay-ms", "2000"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicWarmingVariations[] = { |
| {"with shorter delays", kGlicWarmingShorterDelays, nullptr}}; |
| |
| #if BUILDFLAG(ENABLE_PDF) |
| const FeatureEntry::FeatureParam kPdfGlicSummarizeLongButtonText[] = { |
| {"use_long_button_text", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kPdfGlicSummarizeVariations[] = { |
| {"with \"Summarize with Gemini\" button text", |
| kPdfGlicSummarizeLongButtonText, nullptr}}; |
| #endif // BUILDFLAG(ENABLE_PDF) |
| |
| const FeatureEntry::FeatureParam kGlicActorTransientTasksForceTransient[] = { |
| {"force_transient", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicActorTransientTasksVariations[] = { |
| {"(force transient)", kGlicActorTransientTasksForceTransient, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kGlicButtonPressedStateForceSolidIcon[] = { |
| {"glic-button-pressed-force-solid-icon", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicButtonPressedStateVariations[] = { |
| {"force solid color icon when pressed", |
| kGlicButtonPressedStateForceSolidIcon, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kGlicToolbarButtonLocation_LeftOfProfile[] = { |
| {"glic-toolbar-button-location", "LeftOfProfileChip"}}; |
| const FeatureEntry::FeatureParam kGlicToolbarButtonLocation_RightOfOmnibox[] = { |
| {"glic-toolbar-button-location", "RightOfOmnibox"}}; |
| const FeatureEntry::FeatureParam |
| kGlicToolbarButtonLocation_LeftOfProfileChipWithBackground[] = { |
| {"glic-toolbar-button-location", "LeftOfProfileChipWithBackground"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicToolbarButtonLocationVariations[] = { |
| {"Left of Profile", kGlicToolbarButtonLocation_LeftOfProfile, nullptr}, |
| {"Right of Omnibox", kGlicToolbarButtonLocation_RightOfOmnibox, nullptr}, |
| {"Left of Profile with Background", |
| kGlicToolbarButtonLocation_LeftOfProfileChipWithBackground, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kGlicMarketingAutoOpenAllowlistedUrls[] = { |
| {"allowlisted_urls", |
| "https://www.google.com/chrome/ai-innovations/gemini-in-chrome/," |
| "https://www.google.com/chrome/campaigns/gic-on-android/"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicMarketingAutoOpenVariations[] = { |
| {"with promotional landing pages allowlist", |
| kGlicMarketingAutoOpenAllowlistedUrls, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kGlicGuestUrlPresetTypeAutopush[] = { |
| {"glic-guest-url-preset-type", "0"}}; |
| const FeatureEntry::FeatureParam kGlicGuestUrlPresetTypeStaging[] = { |
| {"glic-guest-url-preset-type", "1"}}; |
| const FeatureEntry::FeatureParam kGlicGuestUrlPresetTypePreprod[] = { |
| {"glic-guest-url-preset-type", "2"}}; |
| const FeatureEntry::FeatureParam kGlicGuestUrlPresetTypeProd[] = { |
| {"glic-guest-url-preset-type", "3"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicGuestUrlPresetTypes[] = { |
| {"Auto-push", kGlicGuestUrlPresetTypeAutopush, nullptr}, |
| {"Staging", kGlicGuestUrlPresetTypeStaging, nullptr}, |
| {"Pre-prod", kGlicGuestUrlPresetTypePreprod, nullptr}, |
| {"Prod", kGlicGuestUrlPresetTypeProd, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kGlicOSIconVariant_0[] = {{"variant", "0"}}; |
| const FeatureEntry::FeatureParam kGlicOSIconVariant_1[] = {{"variant", "1"}}; |
| const FeatureEntry::FeatureParam kGlicOSIconVariant_2[] = {{"variant", "2"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicOSIconVariantVariations[] = { |
| {"Variant 0 (Tab)", kGlicOSIconVariant_0, nullptr}, |
| {"Variant 1 (Ball)", kGlicOSIconVariant_1, nullptr}, |
| {"Variant 2 (Square)", kGlicOSIconVariant_2, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kGlicTabGroups_FullTabEmbedder[] = { |
| {"use_full_tab_embedder", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kGlicTabGroupsVariations[] = { |
| {"with full tab embedder", kGlicTabGroups_FullTabEmbedder, nullptr}}; |
| |
| const FeatureEntry::Choice kGlicSelectionPromptChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {"Enabled (Defaults: Explain CTA + Settings)", switches::kEnableFeatures, |
| "GlicSelectionPrompt:updates_only/false"}, |
| {"Enabled with Updates Only", switches::kEnableFeatures, |
| "GlicSelectionPrompt"}, |
| {"Enabled with Copy Buttons", switches::kEnableFeatures, |
| "GlicSelectionPrompt:show_copy_buttons/true/updates_only/false"}, |
| {"Enabled (CTA: Tell me about this)", switches::kEnableFeatures, |
| "GlicSelectionPrompt:cta/tell_me_about_this/updates_only/false"}, |
| {"Enabled (Inline Fulfillment)", switches::kEnableFeatures, |
| "GlicSelectionPrompt:inline_fulfillment/true/updates_only/false"}}; |
| |
| const FeatureEntry::FeatureParam kAutofillShowTypePredictionsAsTitle[] = { |
| {"as-title", "true"}}; |
| const FeatureEntry::FeatureVariation kAutofillShowTypePredictionsVariations[] = |
| {{"- show predictions as title", kAutofillShowTypePredictionsAsTitle, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kInvalidateChoiceOnRestoreIsRetroactiveOption[] = { |
| {"is_retroactive", "true"}}; |
| const FeatureEntry::FeatureVariation |
| kInvalidateSearchEngineChoiceOnRestoreVariations[] = { |
| {"(retroactive)", kInvalidateChoiceOnRestoreIsRetroactiveOption, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAILangsParam[] = {{"langs", "*"}}; |
| |
| const FeatureEntry::FeatureVariation kAILangsVariation[] = { |
| {"Multilingual", kAILangsParam, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kTouchToSearchCalloutIphParams[] = { |
| {"iph", "true"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kTouchToSearchCalloutSnippetAsSubtitleParams[] = { |
| {"snippet_as_subtitle", "true"}, |
| }; |
| const FeatureEntry::FeatureVariation kTouchToSearchCalloutVariations[] = { |
| {"Default", {}, nullptr}, |
| {"IPH", kTouchToSearchCalloutIphParams, nullptr}, |
| {"Snippet As Subtitle", kTouchToSearchCalloutSnippetAsSubtitleParams, |
| nullptr}, |
| }; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kEnableNtpBrowserPromosVariationSimple[] = { |
| {"promo-type", "simple"}}; |
| |
| const FeatureEntry::FeatureParam kEnableNtpBrowserPromosVariationSetupList[] = { |
| {"promo-type", "setuplist"}}; |
| |
| const FeatureEntry::FeatureVariation kEnableNtpBrowserPromosVariations[] = { |
| {"Single-promo", kEnableNtpBrowserPromosVariationSimple}, |
| {"Setup List", kEnableNtpBrowserPromosVariationSetupList}, |
| }; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::Choice kForceAiSubscriptionTierChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kForceAiSubscriptionTier1, |
| subscription_eligibility::kForceAiSubscriptionTier, "1"}, |
| {flag_descriptions::kForceAiSubscriptionTier2, |
| subscription_eligibility::kForceAiSubscriptionTier, "2"}, |
| {flag_descriptions::kForceAiSubscriptionTier3, |
| subscription_eligibility::kForceAiSubscriptionTier, "3"}, |
| }; |
| |
| // LINT.IfChange(DataSharingVersioningChoices) |
| const FeatureEntry::Choice kDataSharingVersioningStateChoices[] = { |
| {"Default", "", ""}, |
| {flag_descriptions::kDataSharingSharedDataTypesEnabled, |
| switches::kEnableFeatures, "SharedDataTypesKillSwitch"}, |
| {flag_descriptions::kDataSharingSharedDataTypesEnabledWithUi, |
| switches::kEnableFeatures, |
| "SharedDataTypesKillSwitch,DataSharingEnableUpdateChromeUI"}, |
| {"Disabled", switches::kDisableFeatures, |
| "SharedDataTypesKillSwitch, DataSharingEnableUpdateChromeUI"}, |
| }; |
| // LINT.ThenChange(//ios/chrome/browser/flags/about_flags.mm:DataSharingVersioningChoices) |
| |
| const FeatureEntry::FeatureParam |
| kDiskCacheBackendExperimentVariations_Default[] = {{"backend", "default"}}; |
| const FeatureEntry::FeatureParam |
| kDiskCacheBackendExperimentVariations_Simple[] = {{"backend", "simple"}}; |
| #if !BUILDFLAG(IS_ANDROID) |
| // Block file backend is not supported on Android to reduce the binary size. |
| const FeatureEntry::FeatureParam |
| kDiskCacheBackendExperimentVariations_Blockfile[] = { |
| {"backend", "blockfile"}}; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kDiskCacheBackendExperimentVariations_Sql[] = { |
| {"backend", "sql"}}; |
| |
| const FeatureEntry::FeatureVariation kDiskCacheBackendExperimentVariations[] = { |
| {"default backend", kDiskCacheBackendExperimentVariations_Default, nullptr}, |
| {"simple backend", kDiskCacheBackendExperimentVariations_Simple, nullptr}, |
| #if !BUILDFLAG(IS_ANDROID) |
| {"blockfile backend", kDiskCacheBackendExperimentVariations_Blockfile, |
| nullptr}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| {"experimental sql backend", kDiskCacheBackendExperimentVariations_Sql, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam |
| kSafetyHubDisruptiveNotificationRevocationVariations_RevokeAll[] = { |
| {"shadow_run", "false"}, |
| {"max_engagement_score", "100.0"}, |
| {"min_notification_count", "0"}, |
| {"waiting_time_as_proposed", "0d"}, |
| {"waiting_for_metrics_days", "0"}}; |
| const FeatureEntry::FeatureParam |
| kSafetyHubDisruptiveNotificationRevocationVariations_Moderate[] = { |
| {"shadow_run", "false"}, |
| {"max_engagement_score", "0.0"}, |
| {"min_notification_count", "4"}, |
| {"waiting_time_as_proposed", "4d"}, |
| {"waiting_for_metrics_days", "0"}}; |
| const FeatureEntry::FeatureVariation |
| kSafetyHubDisruptiveNotificationRevocationVariations[] = { |
| {"- Revoke all for testing", |
| kSafetyHubDisruptiveNotificationRevocationVariations_RevokeAll, |
| nullptr}, |
| {"- Moderate", |
| kSafetyHubDisruptiveNotificationRevocationVariations_Moderate, |
| nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kCCTResetTimeoutParams_1min[] = { |
| {"reset_timeout_mins_override", "1"}, |
| }; |
| const FeatureEntry::FeatureParam kCCTResetTimeoutParams_3min[] = { |
| {"reset_timeout_mins_override", "3"}, |
| }; |
| const FeatureEntry::FeatureParam kCCTResetTimeoutParams_15min[] = { |
| {"reset_timeout_mins_override", "15"}, |
| }; |
| const FeatureEntry::FeatureParam kCCTResetTimeoutParams_30min[] = { |
| {"reset_timeout_mins_override", "30"}, |
| }; |
| const FeatureEntry::FeatureVariation kCCTResetTimeoutVariations[] = { |
| {"- Force timeout 1 minute", kCCTResetTimeoutParams_1min, nullptr}, |
| {"- Force timeout 3 minutes", kCCTResetTimeoutParams_3min, nullptr}, |
| {"- Force timeout 15 minutes", kCCTResetTimeoutParams_15min, nullptr}, |
| {"- Force timeout 30 minutes", kCCTResetTimeoutParams_30min, nullptr}, |
| }; |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kAndroidBottomBarDisableOnNtpParam[] = { |
| {"disable_on_ntp", "false"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam kAndroidBottomBarKeepAppMenuInToolbarParam[] = |
| {{"keep_app_menu_in_toolbar", "true"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidBottomBarKeepAppMenuInToolbarWithNtpParam[] = { |
| {"keep_app_menu_in_toolbar", "true"}, |
| {"disable_on_ntp", "false"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam kAndroidBottomBarKeepBothInToolbarParam[] = { |
| {"keep_app_menu_in_toolbar", "true"}, |
| {"keep_home_button_in_toolbar", "true"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidBottomBarKeepBothInToolbarWithNtpParam[] = { |
| {"keep_app_menu_in_toolbar", "true"}, |
| {"keep_home_button_in_toolbar", "true"}, |
| {"disable_on_ntp", "false"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidBottomBar1AWithNtpAndGlicFilledParam[] = { |
| {"disable_on_ntp", "false"}, |
| {"always_use_filled_glic_icon", "true"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidBottomBar1AWithNtpGtsAndGlicFilledParam[] = { |
| {"disable_on_ntp", "false"}, |
| {"always_use_filled_glic_icon", "true"}, |
| {"show_bottom_bar_on_gts", "true"}, |
| {"show_glic_setting_toggle", "true"}}; |
| const FeatureEntry::FeatureVariation kAndroidBottomBarVariations[] = { |
| {"- 1A with NTP", kAndroidBottomBarDisableOnNtpParam, nullptr}, |
| {"- 1A with NTP and GLIC filled", |
| kAndroidBottomBar1AWithNtpAndGlicFilledParam, nullptr}, |
| {"- 1A with NTP, GTS and GLIC filled", |
| kAndroidBottomBar1AWithNtpGtsAndGlicFilledParam, nullptr}, |
| {"- 1B", kAndroidBottomBarKeepAppMenuInToolbarParam, nullptr}, |
| {"- 1B with NTP", kAndroidBottomBarKeepAppMenuInToolbarWithNtpParam, |
| nullptr}, |
| {"- 1C", kAndroidBottomBarKeepBothInToolbarParam, nullptr}, |
| {"- 1C with NTP", kAndroidBottomBarKeepBothInToolbarWithNtpParam, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kHomeButtonRemovalEverywhereParam[] = { |
| {"remove_home_button_everywhere", "true"}}; |
| |
| const FeatureEntry::FeatureParam kHomeButtonRemovalKeepOnNtpParam[] = { |
| {"keep_home_button_on_ntp", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kHomeButtonRemovalVariations[] = { |
| {"Remove home button everywhere (US only)", |
| kHomeButtonRemovalEverywhereParam, nullptr}, |
| {"Keep home button on NTP (US only)", kHomeButtonRemovalKeepOnNtpParam, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAndroidTipsNotificationsTrustAndSafety[] = { |
| {"trust_and_safety", "true"}}; |
| const FeatureEntry::FeatureParam kAndroidTipsNotificationsEssential[] = { |
| {"essential", "true"}}; |
| const FeatureEntry::FeatureParam kAndroidTipsNotificationsNewFeatures[] = { |
| {"new_features", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidTipsNotificationsAlwaysShowOptInPromo[] = { |
| {"always_show_opt_in_promo", "true"}, |
| {"trust_and_safety", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidTipsNotificationsScheduleInstantNotification[] = { |
| {"start_time_minutes", "0"}, |
| {"window_time_minutes", "1"}, |
| {"trust_and_safety", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidTipsNotificationsScheduleDelayedNotification[] = { |
| {"start_time_minutes", "2"}, |
| {"window_time_minutes", "4"}, |
| {"trust_and_safety", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidTipsNotificationsResetFeatureTipShown[] = { |
| {"reset_feature_tip_shown", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kAndroidTipsNotificationsVariations[] = { |
| {" - Trust and Safety", kAndroidTipsNotificationsTrustAndSafety, nullptr}, |
| {" - Essential", kAndroidTipsNotificationsEssential, nullptr}, |
| {" - New Features", kAndroidTipsNotificationsNewFeatures, nullptr}, |
| {" - Always Show Opt In", kAndroidTipsNotificationsAlwaysShowOptInPromo, |
| nullptr}, |
| {" - Schedule Instant Notification", |
| kAndroidTipsNotificationsScheduleInstantNotification, nullptr}, |
| {" - Schedule Delayed Notification", |
| kAndroidTipsNotificationsScheduleDelayedNotification, nullptr}, |
| {" - Reset Feature Tip Shown", |
| kAndroidTipsNotificationsResetFeatureTipShown, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kAndroidTipsNotificationsV2EcosystemLockIn[] = |
| {{"ecosystem_lock_in", "true"}}; |
| const FeatureEntry::FeatureParam |
| kAndroidTipsNotificationsV2UtilityAndOrganization[] = { |
| {"utility_and_organization", "true"}}; |
| const FeatureEntry::FeatureVariation kAndroidTipsNotificationsV2Variations[] = { |
| {" - Ecosystem Lock In", kAndroidTipsNotificationsV2EcosystemLockIn, |
| nullptr}, |
| {" - Utility and Organization", |
| kAndroidTipsNotificationsV2UtilityAndOrganization, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kRobustWindowManagementExperimentalOpenAdjacently[] = { |
| {"open_adjacently", "false"}}; |
| const FeatureEntry::FeatureVariation |
| kRobustWindowManagementExperimentalVariations[] = { |
| {"Open Fullscreen", kRobustWindowManagementExperimentalOpenAdjacently, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAndroidNavigationBlurSkipSrpParams[] = { |
| {"skip_srp", "true"}}; |
| const FeatureEntry::FeatureVariation kNavigationBlurVariations[] = { |
| {"- Skip SRP", kAndroidNavigationBlurSkipSrpParams, nullptr}}; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| constexpr char kWebiumFlag[] = "webium"; |
| constexpr char kWebiumFeatures[] = |
| "Webium,SurfaceEmbed,ExtensionsMenuAccessControl"; |
| constexpr char kWebUIToolbarFlag[] = "webui-toolbar"; |
| constexpr char kWebUIToolbarEnableFeatures[] = |
| "InitialWebUI:high_stream_priority/true," |
| "WebUIReloadButton:WebUIReloadButtonDeferBrowserViewShow/false/" |
| "WebUIReloadButtonKeepVisibleUntilPaint/true/" |
| "WebUIReloadButtonRestartUnresponsive/true/" |
| "WebUIReloadButtonRestartUnresponsiveRenderersTimeout/5s/" |
| "WebUIReloadButtonPrewarmWebUI/true/" |
| "WebUIReloadButtonPrewarmWebUIPreNavigate/true," |
| "WebUIToolbar," |
| "SkipIPCChannelPausingForNonGuests,WebUIInProcessResourceLoadingV2," |
| "InitialWebUISyncNavStartToCommit,InitialWebUIWithoutExtensions," |
| "WebUIBundledCodeCache," |
| "InitialWebUISurfaceSync:deadline_in_frames/12000/" |
| "renderer_commit_delay_ms/100000," |
| "BypassOutdatedSurfaceActivation,SendGPUChannelEarly"; |
| constexpr char kWebUIToolbarDisableFeatures[] = |
| "InitialWebUI,WebUIReloadButton,WebUIBackForwardButton,WebUIHomeButton," |
| "WebUIToolbar,WebUILocationBar," |
| "WebUISplitTabsButton,SkipIPCChannelPausingForNonGuests," |
| "WebUIInProcessResourceLoadingV2,InitialWebUISyncNavStartToCommit," |
| "InitialWebUIWithoutExtensions,WebUIBundledCodeCache," |
| "InitialWebUISurfaceSync,BypassOutdatedSurfaceActivation," |
| "SendGPUChannelEarly"; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kMobileNTPPromoOnDesktopGeneral[] = { |
| {kMobileNTPPromoOnDesktopVariationParam, "0"}}; |
| const FeatureEntry::FeatureParam kMobileNTPPromoOnDesktopPasswords[] = { |
| {kMobileNTPPromoOnDesktopVariationParam, "1"}}; |
| const FeatureEntry::FeatureParam kMobileNTPPromoOnDesktopAll[] = { |
| {kMobileNTPPromoOnDesktopVariationParam, "2"}}; |
| |
| const FeatureEntry::FeatureVariation kMobileNTPPromoOnDesktopVariations[] = { |
| {"General", kMobileNTPPromoOnDesktopGeneral, nullptr}, |
| {"Passwords", kMobileNTPPromoOnDesktopPasswords, nullptr}, |
| {"All", kMobileNTPPromoOnDesktopAll, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopForcePromoTypeQRCode[] = { |
| {kMobilePromoOnDesktopForcePromoTypeParam, "0"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopForcePromoTypeReminder[] = |
| {{kMobilePromoOnDesktopForcePromoTypeParam, "1"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kMobilePromoOnDesktopForcePromoTypeVariations[] = { |
| {"QRCode", kMobilePromoOnDesktopForcePromoTypeQRCode, nullptr}, |
| {"Reminder", kMobilePromoOnDesktopForcePromoTypeReminder, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopLens[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "1"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopLensNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "1"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopESB[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "2"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopESBNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "2"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopAutofill[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "3"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopAutofillNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "3"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopTabGroups[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "4"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopTabGroupsNotification[] = |
| {{kMobilePromoOnDesktopPromoTypeParam, "4"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopPriceTracking[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "5"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam |
| kMobilePromoOnDesktopPriceTrackingNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "5"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopSafety[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "6"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopSafetyNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "6"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopBestOfGoogle[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "7"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam |
| kMobilePromoOnDesktopBestOfGoogleNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "7"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopAI[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "8"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopAINotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "8"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopYourChrome[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "9"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopYourChromeNotification[] = |
| {{kMobilePromoOnDesktopPromoTypeParam, "9"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopShopping[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "10"}, |
| {kMobilePromoOnDesktopNotificationParam, "false"}}; |
| const FeatureEntry::FeatureParam kMobilePromoOnDesktopShoppingNotification[] = { |
| {kMobilePromoOnDesktopPromoTypeParam, "10"}, |
| {kMobilePromoOnDesktopNotificationParam, "true"}}; |
| |
| const FeatureEntry::FeatureVariation kMobilePromoOnDesktopVariations[] = { |
| {" - ESB", kMobilePromoOnDesktopESB, nullptr}, |
| {" - ESB with push notification", kMobilePromoOnDesktopESBNotification, |
| nullptr}, |
| {" - PW Autofill", kMobilePromoOnDesktopAutofill, nullptr}, |
| {" - PW Autofill with push notification", |
| kMobilePromoOnDesktopAutofillNotification, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kMobilePromoOnDesktopWithQRCodeVariations[] = { |
| {" - ESB", kMobilePromoOnDesktopESB, nullptr}, |
| {" - PW Autofill", kMobilePromoOnDesktopAutofill, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kMobilePromoOnDesktopVariationsWave1[] = { |
| {" - Tab Groups", kMobilePromoOnDesktopTabGroups, nullptr}, |
| {" - Tab Groups with push notification", |
| kMobilePromoOnDesktopTabGroupsNotification, nullptr}, |
| {" - Price Tracking", kMobilePromoOnDesktopPriceTracking, nullptr}, |
| {" - Price Tracking with push notification", |
| kMobilePromoOnDesktopPriceTrackingNotification, nullptr}, |
| {" - Lens Promo", kMobilePromoOnDesktopLens, nullptr}, |
| {" - Lens Promo with push notification", |
| kMobilePromoOnDesktopLensNotification, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kMobilePromoOnDesktopWithQRCodeVariationsWave1[] = { |
| {" - Tab Groups", kMobilePromoOnDesktopTabGroups, nullptr}, |
| {" - Price Tracking", kMobilePromoOnDesktopPriceTracking, nullptr}, |
| {" - Lens Promo", kMobilePromoOnDesktopLens, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kMobilePromoOnDesktopVariationsWave2[] = { |
| {" - Safety", kMobilePromoOnDesktopSafety, nullptr}, |
| {" - Safety with push notification", |
| kMobilePromoOnDesktopSafetyNotification, nullptr}, |
| {" - Best of Google", kMobilePromoOnDesktopBestOfGoogle, nullptr}, |
| {" - Best of Google with push notification", |
| kMobilePromoOnDesktopBestOfGoogleNotification, nullptr}, |
| {" - AI", kMobilePromoOnDesktopAI, nullptr}, |
| {" - AI with push notification", kMobilePromoOnDesktopAINotification, |
| nullptr}, |
| {" - Your Chrome", kMobilePromoOnDesktopYourChrome, nullptr}, |
| {" - Your Chrome with push notification", |
| kMobilePromoOnDesktopYourChromeNotification, nullptr}, |
| {" - Shopping", kMobilePromoOnDesktopShopping, nullptr}, |
| {" - Shopping with push notification", |
| kMobilePromoOnDesktopShoppingNotification, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kMobilePromoOnDesktopWithQRCodeVariationsWave2[] = { |
| {" - Safety", kMobilePromoOnDesktopSafety, nullptr}, |
| {" - Best of Google", kMobilePromoOnDesktopBestOfGoogle, nullptr}, |
| {" - AI", kMobilePromoOnDesktopAI, nullptr}, |
| {" - Your Chrome", kMobilePromoOnDesktopYourChrome, nullptr}, |
| {" - Shopping", kMobilePromoOnDesktopShopping, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| const FeatureEntry::FeatureParam kNtpCustomizeChromeAutoOpenOnEveryNTP[] = { |
| {"max_customize_chrome_auto_shown_count", "5"}, |
| {"max_customize_chrome_auto_shown_session_count", "5"}}; |
| const FeatureEntry::FeatureParam kNtpCustomizeChromeAutoOpenOnFirstNTPOnly[] = { |
| {"max_customize_chrome_auto_shown_count", "5"}, |
| {"max_customize_chrome_auto_shown_session_count", "1"}}; |
| const FeatureEntry::FeatureParam kNtpCustomizeChromeAutoOpenIPHOnly[] = { |
| {"max_customize_chrome_auto_shown_count", "0"}, |
| {"max_customize_chrome_auto_shown_session_count", "0"}}; |
| const FeatureEntry::FeatureVariation kNtpCustomizeChromeAutoOpenVariations[] = { |
| {"- On every NTP", kNtpCustomizeChromeAutoOpenOnEveryNTP, nullptr}, |
| {"- First NTP only", kNtpCustomizeChromeAutoOpenOnFirstNTPOnly, nullptr}, |
| {"- IPH only", kNtpCustomizeChromeAutoOpenIPHOnly, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| const FeatureEntry::FeatureParam kPolicyRegistrationDelay2m[] = { |
| {"PolicyRegistrationDelay", "2m"}}; |
| const FeatureEntry::FeatureParam kPolicyRegistrationDelay1h[] = { |
| {"PolicyRegistrationDelay", "1h"}}; |
| const FeatureEntry::FeatureParam kPolicyRegistrationDelay6h[] = { |
| {"PolicyRegistrationDelay", "6h"}}; |
| const FeatureEntry::FeatureParam kPolicyRegistrationDelay12h[] = { |
| {"PolicyRegistrationDelay", "12h"}}; |
| const FeatureEntry::FeatureParam kPolicyRegistrationDelay24h[] = { |
| {"PolicyRegistrationDelay", "24h"}}; |
| |
| const FeatureEntry::FeatureVariation kPolicyRegistrationDelayVariations[] = { |
| {"2 minutes", kPolicyRegistrationDelay2m, nullptr}, |
| {"1 hour", kPolicyRegistrationDelay1h, nullptr}, |
| {"6 hours", kPolicyRegistrationDelay6h, nullptr}, |
| {"12 hours", kPolicyRegistrationDelay12h, nullptr}, |
| {"24 hours", kPolicyRegistrationDelay24h, nullptr}, |
| }; |
| |
| #if BUILDFLAG(ENABLE_DICE_SUPPORT) |
| const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay2m[] = { |
| {"PolicyDisclaimerRegistrationRetryDelay", "2m"}}; |
| const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay1h[] = { |
| {"PolicyDisclaimerRegistrationRetryDelay", "1h"}}; |
| const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay6h[] = { |
| {"PolicyDisclaimerRegistrationRetryDelay", "6h"}}; |
| const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay12h[] = |
| {{"PolicyDisclaimerRegistrationRetryDelay", "12h"}}; |
| const FeatureEntry::FeatureParam kPolicyDisclaimerRegistrationRetryDelay24h[] = |
| {{"PolicyDisclaimerRegistrationRetryDelay", "24h"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kPolicyDisclaimerRegistrationRetryDelayVariations[] = { |
| {"Enabled - Retry every 2 minutes", |
| kPolicyDisclaimerRegistrationRetryDelay2m, nullptr}, |
| {"Enabled - Retry every 1 hour", |
| kPolicyDisclaimerRegistrationRetryDelay1h, nullptr}, |
| {"Enabled - Retry every 6 hours", |
| kPolicyDisclaimerRegistrationRetryDelay6h, nullptr}, |
| {"Enabled - Retry every 12 hours", |
| kPolicyDisclaimerRegistrationRetryDelay12h, nullptr}, |
| {"Enabled - Retry every 24 hours", |
| kPolicyDisclaimerRegistrationRetryDelay24h, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kOAuthMultiloginYoutubeCookieBindingWithoutEnforcement[] = { |
| {"OAuthMultiloginYoutubeCookieBindingEnforced", "false"}}; |
| const FeatureEntry::FeatureParam |
| kOAuthMultiloginYoutubeCookieBindingWithEnforcement[] = { |
| {"OAuthMultiloginYoutubeCookieBindingEnforced", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kOAuthMultiloginYoutubeCookieBindingEnforcementVariations[] = { |
| {"without enforcement", |
| kOAuthMultiloginYoutubeCookieBindingWithoutEnforcement, nullptr}, |
| {"with enforcement", |
| kOAuthMultiloginYoutubeCookieBindingWithEnforcement, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kRefreshTokenBindingUpgradeDarkLaunch[] = { |
| {"upgrade-type", "dark-launch"}}; |
| const FeatureEntry::FeatureParam kRefreshTokenBindingUpgradeLiveLaunch[] = { |
| {"upgrade-type", "live-launch"}}; |
| |
| const FeatureEntry::FeatureVariation kRefreshTokenBindingUpgradeVariations[] = { |
| {"(Dark Launch)", kRefreshTokenBindingUpgradeDarkLaunch, nullptr}, |
| {"(Live Launch)", kRefreshTokenBindingUpgradeLiveLaunch, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kMagiChromePasskeySignInAutofill[] = { |
| {"flow_type", "autofill"}}; |
| const FeatureEntry::FeatureParam kMagiChromePasskeySignInBanner[] = { |
| {"flow_type", "banner"}}; |
| |
| const FeatureEntry::FeatureVariation kMagiChromePasskeySignInVariations[] = { |
| {"Autofill flow", kMagiChromePasskeySignInAutofill, nullptr}, |
| {"Banner flow", kMagiChromePasskeySignInBanner, nullptr}, |
| }; |
| #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kSeamlessSigninTwoButtonsContinue[] = { |
| {"seamless-signin-promo-type", "twoButtons"}, |
| {"seamless-signin-string-type", "continueButton"}}; |
| const FeatureEntry::FeatureParam kSeamlessSigninCompactContinue[] = { |
| {"seamless-signin-promo-type", "compact"}, |
| {"seamless-signin-string-type", "continueButton"}}; |
| const FeatureEntry::FeatureParam kSeamlessSigninTwoButtonsSignin[] = { |
| {"seamless-signin-promo-type", "twoButtons"}, |
| {"seamless-signin-string-type", "signinButton"}}; |
| const FeatureEntry::FeatureParam kSeamlessSigninCompactSignin[] = { |
| {"seamless-signin-promo-type", "compact"}, |
| {"seamless-signin-string-type", "signinButton"}}; |
| const FeatureEntry::FeatureVariation kSeamlessSigninVariations[] = { |
| {"with two buttons layout and \"Continue as\" button (group 1)", |
| kSeamlessSigninTwoButtonsContinue, nullptr}, |
| {"with compact layout and \"Continue as\" button (group 2)", |
| kSeamlessSigninCompactContinue, nullptr}, |
| {"with two buttons layout and \"Sign in as\" button (group 3)", |
| kSeamlessSigninTwoButtonsSignin, nullptr}, |
| {"with compact layout and \"Sign in as\" button (group 4)", |
| kSeamlessSigninCompactSignin, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kCrossDeviceSigninDefaultUrl[] = { |
| {"url", "https://www.google.com/chrome/go-mobile"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kCrossDeviceSigninVariations[] = { |
| {"Default URL (https://www.google.com/chrome/go-mobile)", |
| kCrossDeviceSigninDefaultUrl, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCrossWindowTabGroupOperationsRemoteGroup[] = { |
| {"remote_group_operations", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kCrossWindowTabGroupOperationsVariations[] = { |
| {"Remote group operations", kCrossWindowTabGroupOperationsRemoteGroup, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kXplatSyncedSetupThemes_ObservationOnly[] = { |
| {"observation_only", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kXplatSyncedSetupThemesVariations[] = { |
| {"Observation only", kXplatSyncedSetupThemes_ObservationOnly, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| const FeatureEntry::FeatureParam kCrossDeviceSigninFromDesktopDefaultUrl[] = { |
| {"url", |
| "https://www.google.com/chrome/go-mobile?entry_point_id=1&email=$1"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kCrossDeviceSigninFromDesktopVariations[] = |
| { |
| {"Default URL " |
| "(https://www.google.com/chrome/go-mobile?entry_point_id=1&email=$1)", |
| kCrossDeviceSigninFromDesktopDefaultUrl, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kDeviceSignalsBackfillDisclaimer_ClearPermissionOnStartup[] = { |
| {"clear_device_signals_permission_on_startup", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kDeviceSignalsBackfillDisclaimerVariations[] = { |
| {"with clearing permission on startup", |
| kDeviceSignalsBackfillDisclaimer_ClearPermissionOnStartup, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam |
| kAndroidDeviceSignalsDisclaimer_ClearPermissionOnStartup[] = { |
| {"clear_device_signals_permission_on_startup", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kAndroidDeviceSignalsDisclaimerVariations[] = { |
| {"with clearing permission on startup", |
| kAndroidDeviceSignalsDisclaimer_ClearPermissionOnStartup, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kDefaultBrowserPromoEntryPointSettingsOnly[] = |
| {{"show_app_menu_item", "false"}}; |
| const FeatureEntry::FeatureVariation |
| kDefaultBrowserPromoEntryPointVariations[] = { |
| {"(Settings Only - No App Menu)", |
| kDefaultBrowserPromoEntryPointSettingsOnly, nullptr}}; |
| const FeatureEntry::FeatureParam kDefaultBrowserPromoFrePrimerNoInstructions[] = |
| {{"fre_promo_arm", "primer_no_instructions"}}; |
| const FeatureEntry::FeatureParam |
| kDefaultBrowserPromoFrePrimerWithPromotionalText[] = { |
| {"fre_promo_arm", "primer_with_promotional_text"}}; |
| const FeatureEntry::FeatureVariation kDefaultBrowserPromoFreVariations[] = { |
| {"(Primer - no instructions)", kDefaultBrowserPromoFrePrimerNoInstructions, |
| nullptr}, |
| {"(Primer - with promotional text)", |
| kDefaultBrowserPromoFrePrimerWithPromotionalText, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kSafetyFrePromoPasswordManager[] = { |
| {"safety_fre_promo_arm", "1"}}; |
| const FeatureEntry::FeatureParam kSafetyFrePromoHistoryQuickDelete[] = { |
| {"safety_fre_promo_arm", "2"}}; |
| const FeatureEntry::FeatureParam |
| kSafetyFrePromoPasswordManagerAndHistoryQuickDelete[] = { |
| {"safety_fre_promo_arm", "3"}}; |
| const FeatureEntry::FeatureParam kSafetyFrePromoAnimatedIllustration[] = { |
| {"safety_fre_promo_arm", "4"}}; |
| |
| const FeatureEntry::FeatureVariation kSafetyFrePromoVariations[] = { |
| {"(Password Manager, ESB, Incognito)", kSafetyFrePromoPasswordManager, |
| nullptr}, |
| {"(History, ESB, Incognito)", kSafetyFrePromoHistoryQuickDelete, nullptr}, |
| {"(Password Manager, History, ESB)", |
| kSafetyFrePromoPasswordManagerAndHistoryQuickDelete, nullptr}, |
| {"(Animated illustration)", kSafetyFrePromoAnimatedIllustration, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAndroidDesktopZoomScalingFactorSmall[] = { |
| {"desktop-zoom-scaling-factor", "109"}, |
| {"monitor-zoom-scaling-factor", "120"}}; |
| const FeatureEntry::FeatureParam kAndroidDesktopZoomScalingFactorMedium[] = { |
| {"desktop-zoom-scaling-factor", "115"}, |
| {"monitor-zoom-scaling-factor", "125"}}; |
| const FeatureEntry::FeatureParam kAndroidDesktopZoomScalingFactorLarge[] = { |
| {"desktop-zoom-scaling-factor", "120"}, |
| {"monitor-zoom-scaling-factor", "130"}}; |
| const FeatureEntry::FeatureVariation kAndroidDesktopZoomScalingVariations[] = { |
| {"with 109 scaling, 120 monitor", kAndroidDesktopZoomScalingFactorSmall, |
| nullptr}, |
| {"with 115 scaling, 125 monitor", kAndroidDesktopZoomScalingFactorMedium, |
| nullptr}, |
| {"with 120 scaling, 130 monitor", kAndroidDesktopZoomScalingFactorLarge, |
| nullptr}}; |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam kSmartTabSharingEnabled[] = { |
| {"ContextualTasksContextSmartTabSharing", "true"}}; |
| |
| const FeatureEntry::FeatureVariation kContextualTaskContextVariations[] = { |
| {" - With Smart Tab Sharing", kSmartTabSharingEnabled, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kEphemeralBrandedEntryPointEnabled[] = { |
| {"ContextualTasksEntryPoint", "toolbar-ephemeral-branded"}}; |
| |
| const FeatureEntry::FeatureVariation kEphemeralBrandedEntryPointVariations[] = { |
| {"Enabled with branded entry point", kEphemeralBrandedEntryPointEnabled, |
| nullptr}}; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kAnimatedProgressBar30FpsCap[] = { |
| {"fps_cap", "30"}}; |
| const FeatureEntry::FeatureParam kAnimatedProgressBar60FpsCap[] = { |
| {"fps_cap", "60"}}; |
| const FeatureEntry::FeatureParam |
| kAnimatedProgressBarJumpToCompletionWithFade[] = { |
| {"jump_to_completion_with_fade", "true"}}; |
| const FeatureEntry::FeatureParam kAnimatedProgressBarJumpToCompletionNoFade[] = |
| {{"jump_to_completion_no_fade", "true"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kAndroidAnimatedProgressBarInBrowserVariations[] = { |
| {"with 30fps cap", kAnimatedProgressBar30FpsCap, nullptr}, |
| {"with 60fsp cap", kAnimatedProgressBar60FpsCap, nullptr}, |
| {"jump to completion with fade", |
| kAnimatedProgressBarJumpToCompletionWithFade, nullptr}, |
| {"jump to completion no fade", |
| kAnimatedProgressBarJumpToCompletionNoFade, nullptr}}; |
| #endif // BUILDFLAG(IS_ANDROID) |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam |
| kCastStreamingExponentialVideoBitrateAlgorithmDefault[] = { |
| {"window_size", "30"}, |
| {"drop_threshold", "1"}, |
| {"increase_factor", "1.05"}, |
| {"decrease_factor", "0.9"}, |
| {"dynamic_window_multiplier", "0.0"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kCastStreamingExponentialVideoBitrateAlgorithmAggressive[] = { |
| {"window_size", "30"}, |
| {"drop_threshold", "1"}, |
| {"increase_factor", "1.1"}, |
| {"decrease_factor", "0.9"}, |
| {"dynamic_window_multiplier", "0.0"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kCastStreamingExponentialVideoBitrateAlgorithmConservative[] = { |
| {"window_size", "30"}, |
| {"drop_threshold", "1"}, |
| {"increase_factor", "1.05"}, |
| {"decrease_factor", "0.8"}, |
| {"dynamic_window_multiplier", "0.0"}, |
| }; |
| |
| const FeatureEntry::FeatureParam |
| kCastStreamingExponentialVideoBitrateAlgorithmLargeWindow[] = { |
| {"window_size", "60"}, |
| {"drop_threshold", "2"}, |
| {"increase_factor", "1.05"}, |
| {"decrease_factor", "0.9"}, |
| {"dynamic_window_multiplier", "0.0"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kCastStreamingExponentialVideoBitrateAlgorithmVariations[] = { |
| {"Default (30, 1, 1.05, 0.9)", |
| kCastStreamingExponentialVideoBitrateAlgorithmDefault, nullptr}, |
| {"Aggressive Increase (1.1)", |
| kCastStreamingExponentialVideoBitrateAlgorithmAggressive, nullptr}, |
| {"Conservative Decrease (0.8)", |
| kCastStreamingExponentialVideoBitrateAlgorithmConservative, nullptr}, |
| {"Large Window (60)", |
| kCastStreamingExponentialVideoBitrateAlgorithmLargeWindow, nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kCastStreamingMaxVideoBitrate5Mbps[] = { |
| {"max_bitrate_mbps", "5"}, |
| }; |
| const FeatureEntry::FeatureParam kCastStreamingMaxVideoBitrate10Mbps[] = { |
| {"max_bitrate_mbps", "10"}, |
| }; |
| const FeatureEntry::FeatureParam kCastStreamingMaxVideoBitrate25Mbps[] = { |
| {"max_bitrate_mbps", "25"}, |
| }; |
| const FeatureEntry::FeatureParam kCastStreamingMaxVideoBitrate50Mbps[] = { |
| {"max_bitrate_mbps", "50"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kCastStreamingMaxVideoBitrateVariations[] = |
| { |
| {"5 Mbps", kCastStreamingMaxVideoBitrate5Mbps, nullptr}, |
| {"10 Mbps", kCastStreamingMaxVideoBitrate10Mbps, nullptr}, |
| {"25 Mbps", kCastStreamingMaxVideoBitrate25Mbps, nullptr}, |
| {"50 Mbps", kCastStreamingMaxVideoBitrate50Mbps, nullptr}, |
| }; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kPermissionsGestureGatedPromptsMuteNotifications[] = { |
| {"mute_notifications", "true"}, |
| {"exclude_same_origin_navigations", "true"}, |
| }; |
| const FeatureEntry::FeatureParam |
| kPermissionsGestureGatedPromptsMuteGeolocation[] = { |
| {"mute_geolocation", "true"}, |
| {"exclude_same_origin_navigations", "true"}, |
| }; |
| const FeatureEntry::FeatureParam kPermissionsGestureGatedPromptsMuteBoth[] = { |
| {"mute_notifications", "true"}, |
| {"mute_geolocation", "true"}, |
| {"exclude_same_origin_navigations", "true"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation |
| kPermissionsGestureGatedPromptsVariations[] = { |
| {"Mute Notifications", kPermissionsGestureGatedPromptsMuteNotifications, |
| nullptr}, |
| {"Mute Geolocation", kPermissionsGestureGatedPromptsMuteGeolocation, |
| nullptr}, |
| {"Mute Both", kPermissionsGestureGatedPromptsMuteBoth, nullptr}, |
| }; |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) |
| const FeatureEntry::FeatureParam kSearchEngineExplicitChoiceDialogEscapable[] = |
| {{"escapable", "true"}}; |
| const FeatureEntry::FeatureParam |
| kSearchEngineExplicitChoiceDialogShowOncePerSession[] = { |
| {"unlimited_shows", "false"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kSearchEngineExplicitChoiceDialogVariations[] = { |
| {"Escapable", kSearchEngineExplicitChoiceDialogEscapable, nullptr}, |
| {"Show Once Per Session", |
| kSearchEngineExplicitChoiceDialogShowOncePerSession, nullptr}, |
| }; |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) |
| |
| #if BUILDFLAG(ENABLE_DICE_SUPPORT) |
| const FeatureEntry::FeatureParam kSigninPromoOnAvatarPillShortDelays[] = { |
| {"startup_delay_for_promo_show", "3s"}, |
| {"delay_for_next_promo_allowed", "15s"}, |
| }; |
| |
| const FeatureEntry::FeatureVariation kSigninPromoOnAvatarPillVariation[] = { |
| {"Short delays (for testing)", kSigninPromoOnAvatarPillShortDelays, |
| nullptr}, |
| }; |
| #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) |
| |
| // The choices for the connection allowlists feature. |
| const FeatureEntry::Choice kConnectionAllowlistsChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "ConnectionAllowlists"}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "ConnectionAllowlists"}, |
| }; |
| |
| #if BUILDFLAG(ENABLE_SYMPHONIA) |
| // The choices for the Symphonia audio decoding feature. |
| const FeatureEntry::Choice kSymphoniaAudioDecodingChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {"Enabled (All Codecs)", switches::kEnableFeatures, |
| "SymphoniaAudioDecoding,SymphoniaMp3Decoding,SymphoniaPcmDecoding," |
| "SymphoniaVorbisDecoding"}, |
| {"Disabled (Overrides Finch)", switches::kDisableFeatures, |
| "SymphoniaAudioDecoding,SymphoniaMp3Decoding,SymphoniaPcmDecoding," |
| "SymphoniaVorbisDecoding"}}; |
| #endif |
| |
| #if BUILDFLAG(ENABLE_SYMPHONIA_DEMUXER) |
| constexpr char kSymphoniaDemuxingFeatureList[] = |
| "SymphoniaDemuxing,SymphoniaAacDemuxing,SymphoniaFlacDemuxing," |
| "SymphoniaIsomDemuxing,SymphoniaMkvDemuxing,SymphoniaMp3Demuxing," |
| "SymphoniaOggDemuxing,SymphoniaRiffDemuxing"; |
| |
| // The choices for the Symphonia demuxer feature. |
| const FeatureEntry::Choice kSymphoniaDemuxingChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {"Enabled (All Containers)", switches::kEnableFeatures, |
| kSymphoniaDemuxingFeatureList}, |
| {"Disabled (All Containers)", switches::kDisableFeatures, |
| kSymphoniaDemuxingFeatureList}}; |
| #endif |
| |
| // Proofreader requires Manifest Broker. |
| const FeatureEntry::Choice kAIProofreaderChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "AIProofreadingAPI,OptimizationGuideManifestBroker"}}; |
| |
| // Summarizer Performance Preference requires Manifest Broker. |
| const FeatureEntry::Choice kAISummarizationPerformancePreferenceChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "AISummarizationPerformancePreference,OptimizationGuideManifestBroker"}}; |
| |
| // Semantic Embedder. Enables the API for both Window and Worker contexts. |
| const FeatureEntry::Choice kAISemanticEmbedderChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "AIEmbeddingsAPI,AIEmbeddingsAPIForWorkers"}}; |
| |
| const FeatureEntry::Choice kPromptAPIToolUseChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "AIPromptAPIToolUse,OnDeviceModelConversationBackend," |
| "AIApiFoundationalModel:model_version/v4"}}; |
| |
| const FeatureEntry::Choice kGemma4Choices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "OptimizationGuideManifestBroker," |
| "AIApiFoundationalModel:model_version/v4"}}; |
| |
| const FeatureEntry::Choice kSpeculativeDecodingChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "OnDeviceModelSpeculativeDecoding,OptimizationGuideManifestBroker," |
| "AIApiFoundationalModel:model_version/v4,AIPromptAPIParams"}}; |
| |
| const FeatureEntry::Choice kOnDeviceWebSpeechSmallExpertModelChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceEnabled, switches::kEnableFeatures, |
| "OnDeviceWebSpeech,OnDeviceWebSpeechSmallExpertModel," |
| "OptimizationGuideManifestBroker"}}; |
| |
| const FeatureEntry::FeatureParam kWalletApiPrivatePassesUrl[] = { |
| {"wallet_pass_save_url", "https://wallet1ppasses.pa.googleapis.com"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kWalletApiPrivatePassesEnabledVariations[] = { |
| {"Debug", kWalletApiPrivatePassesUrl, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kBookmarksEncryptionStage1[] = { |
| {"stage", "write_both_read_only_clear"}}; |
| const FeatureEntry::FeatureParam kBookmarksEncryptionStage2[] = { |
| {"stage", "write_both_read_prefer_encrypted"}}; |
| const FeatureEntry::FeatureParam kBookmarksEncryptionStage3[] = { |
| {"stage", "write_only_encrypted_read_prefer_encrypted"}}; |
| const FeatureEntry::FeatureVariation kBookmarksEncryptionVariations[] = { |
| {"Stage1", kBookmarksEncryptionStage1, nullptr}, |
| {"Stage2", kBookmarksEncryptionStage2, nullptr}, |
| {"Stage3", kBookmarksEncryptionStage3, nullptr}}; |
| |
| const FeatureEntry::FeatureParam kSessionEncryptionStage1[] = { |
| {"stage", "write_both_read_only_clear"}}; |
| const FeatureEntry::FeatureParam kSessionEncryptionStage2[] = { |
| {"stage", "write_both_read_prefer_encrypted"}}; |
| const FeatureEntry::FeatureParam kSessionEncryptionStage3[] = { |
| {"stage", "write_encrypted_read_prefer_encrypted"}}; |
| const FeatureEntry::FeatureVariation kSessionEncryptionVariations[] = { |
| {"Stage1", kSessionEncryptionStage1, nullptr}, |
| {"Stage2", kSessionEncryptionStage2, nullptr}, |
| {"Stage3", kSessionEncryptionStage3, nullptr}}; |
| |
| #if BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kGestureUserEducationPageDelay2Seconds[] = { |
| {"gesture-user-education-page-delay", "2000"}}; |
| const FeatureEntry::FeatureParam kGestureUserEducationPageDelay4Seconds[] = { |
| {"gesture-user-education-page-delay", "4000"}}; |
| const FeatureEntry::FeatureParam kGestureUserEducationPageDelay6Seconds[] = { |
| {"gesture-user-education-page-delay", "6000"}}; |
| const FeatureEntry::FeatureParam kGestureUserEducationPageDelay8Seconds[] = { |
| {"gesture-user-education-page-delay", "8000"}}; |
| const FeatureEntry::FeatureParam kGestureUserEducationPageDelay10Seconds[] = { |
| {"gesture-user-education-page-delay", "10000"}}; |
| |
| const FeatureEntry::FeatureVariation kGestureUserEducationVariations[] = { |
| {"2000ms delay", kGestureUserEducationPageDelay2Seconds, nullptr}, |
| {"4000ms delay", kGestureUserEducationPageDelay4Seconds, nullptr}, |
| {"6000ms delay", kGestureUserEducationPageDelay6Seconds, nullptr}, |
| {"8000ms delay", kGestureUserEducationPageDelay8Seconds, nullptr}, |
| {"10000ms delay", kGestureUserEducationPageDelay10Seconds, nullptr}, |
| }; |
| const FeatureEntry::Choice kSendTabToSelfGestureChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "SendTabToSelfGesture"}, |
| {"Enabled Low Sensitivity", switches::kEnableFeatures, |
| "SendTabToSelfGesture:sensitivity/low"}, |
| {"Enabled Medium Sensitivity", switches::kEnableFeatures, |
| "SendTabToSelfGesture:sensitivity/medium"}, |
| {"Enabled High Sensitivity", switches::kEnableFeatures, |
| "SendTabToSelfGesture:sensitivity/high"}, |
| {"Enabled Very High Sensitivity", switches::kEnableFeatures, |
| "SendTabToSelfGesture:sensitivity/very_high"}, |
| }; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| // The choices for Rust-based ChildProcessSecurityPolicy feature. |
| const FeatureEntry::Choice kChildProcessSecurityPolicyRustChoices[] = { |
| {flags_ui::kGenericExperimentChoiceDefault, "", ""}, |
| {flag_descriptions::kChildProcessSecurityPolicyRustChoiceRustOnly, |
| switches::kEnableFeatures, |
| "ChildProcessSecurityPolicyRust:policy/rust-only"}, |
| {flag_descriptions::kChildProcessSecurityPolicyRustChoiceRustAndCpp, |
| switches::kEnableFeatures, |
| "ChildProcessSecurityPolicyRust:policy/rust-and-cpp"}, |
| {flag_descriptions:: |
| kChildProcessSecurityPolicyRustChoiceRustOnlyWithProcessState, |
| switches::kEnableFeatures, |
| "ChildProcessSecurityPolicyRust:policy/rust-only," |
| "ChildProcessSecurityPolicyRustProcessState"}, |
| {flag_descriptions:: |
| kChildProcessSecurityPolicyRustChoiceRustAndCppWithProcessState, |
| switches::kEnableFeatures, |
| "ChildProcessSecurityPolicyRust:policy/rust-and-cpp," |
| "ChildProcessSecurityPolicyRustProcessState"}, |
| {flags_ui::kGenericExperimentChoiceDisabled, switches::kDisableFeatures, |
| "ChildProcessSecurityPolicyRust," |
| "ChildProcessSecurityPolicyRustProcessState"}, |
| }; |
| |
| |
| const FeatureEntry::FeatureParam kCanvasAccessibilityBasic[] = { |
| {"CanvasAccessibilityMode", "Basic"}}; |
| const FeatureEntry::FeatureParam kCanvasAccessibilityAdvanced[] = { |
| {"CanvasAccessibilityMode", "Advanced"}}; |
| |
| const FeatureEntry::FeatureVariation kCanvasAccessibilityChoices[] = { |
| {"Basic (Rendered Text)", kCanvasAccessibilityBasic, nullptr}, |
| {"Advanced (Rendered Text + OCR)", kCanvasAccessibilityAdvanced, nullptr}}; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kSplitViewHorizontalDirectAccess[] = { |
| {"split_view_horizontal_direct_access", "true"}}; |
| const FeatureEntry::FeatureParam kSplitViewHorizontalIndirectAccess[] = { |
| {"split_view_horizontal_direct_access", "false"}}; |
| const FeatureEntry::FeatureParam kSplitViewHorizontalDirectTabAccess[] = { |
| {"split_view_horizontal_direct_tab_access", "true"}}; |
| const FeatureEntry::FeatureVariation kSplitViewHorizontalVariations[] = { |
| {"Direct Access", kSplitViewHorizontalDirectAccess, nullptr}, |
| {"Indirect Access", kSplitViewHorizontalIndirectAccess, nullptr}, |
| {"Direct Access for Tab Context Menu", kSplitViewHorizontalDirectTabAccess, |
| nullptr}}; |
| #endif |
| |
| const FeatureEntry::FeatureParam kToolbarGlowUpNoReload[] = { |
| {"reload", "false"}}; |
| const FeatureEntry::FeatureParam kToolbarGlowUpNoReloadBackForward[] = { |
| {"reload", "false"}, |
| {"back-forward", "false"}}; |
| const FeatureEntry::FeatureVariation kToolbarGlowUpVariations[] = { |
| {"no reload animation", kToolbarGlowUpNoReload, nullptr}, |
| {"no reload, back, or forward animations", |
| kToolbarGlowUpNoReloadBackForward, nullptr}}; |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| const FeatureEntry::FeatureParam kDictationEvalModeParam[] = { |
| {"eval_mode", "true"}}; |
| const FeatureEntry::FeatureParam kDictationSessionEndsOnStreamEndParam[] = { |
| {"session_ends_on_stream_end", "true"}}; |
| const FeatureEntry::FeatureParam kDictationShowPartialsParam[] = { |
| {"show_partials", "true"}}; |
| const FeatureEntry::FeatureParam kDictationWebSpeechApiBackendParam[] = { |
| {"web_speech_api_backend", "true"}}; |
| const FeatureEntry::FeatureParam |
| kDictationWebSpeechApiBackendWithPartialsParam[] = { |
| {"web_speech_api_backend", "true"}, |
| {"show_partials", "true"}}; |
| const FeatureEntry::FeatureVariation kDictationVariations[] = { |
| {"with close UI after output", kDictationSessionEndsOnStreamEndParam, |
| nullptr}, |
| {"with evaluation mode", kDictationEvalModeParam, nullptr}, |
| {"with shown partials", kDictationShowPartialsParam, nullptr}, |
| {"with Web Speech API backend", kDictationWebSpeechApiBackendParam, |
| nullptr}, |
| {"with Web Speech API backend and partials", |
| kDictationWebSpeechApiBackendWithPartialsParam, nullptr}}; |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| const FeatureEntry::FeatureParam |
| kAutofillEnableResurrectingPaymentsUsersSecurity[] = { |
| {"autofill_enable_resurrecting_payments_churned_users_treatment", "1"}}; |
| const FeatureEntry::FeatureParam |
| kAutofillEnableResurrectingPaymentsUsersConvenience[] = { |
| {"autofill_enable_resurrecting_payments_churned_users_treatment", "2"}}; |
| const FeatureEntry::FeatureVariation |
| kAutofillEnableResurrectingPaymentsUsersVariations[] = { |
| {"Security", kAutofillEnableResurrectingPaymentsUsersSecurity, nullptr}, |
| {"Convenience", kAutofillEnableResurrectingPaymentsUsersConvenience, |
| nullptr}}; |
| |
| const FeatureEntry::FeatureParam kAutofillAiWalletPassBranding2026Variant1[] = { |
| {"string_variant", "1"}}; |
| const FeatureEntry::FeatureParam kAutofillAiWalletPassBranding2026Variant2[] = { |
| {"string_variant", "2"}}; |
| |
| const FeatureEntry::FeatureVariation |
| kAutofillAiWalletPassBranding2026Variations[] = { |
| {"Variant 1 (Securely + Wallet)", |
| kAutofillAiWalletPassBranding2026Variant1, nullptr}, |
| {"Variant 2 (Securely only)", kAutofillAiWalletPassBranding2026Variant2, |
| nullptr}, |
| }; |
| |
| const FeatureEntry::FeatureParam kAutofillUpstreamEnforceStrikeDelay1Day[] = { |
| {"autofill_upstream_enforce_strike_delay_days", "1"}}; |
| const FeatureEntry::FeatureParam kAutofillUpstreamEnforceStrikeDelay3Days[] = { |
| {"autofill_upstream_enforce_strike_delay_days", "3"}}; |
| const FeatureEntry::FeatureParam kAutofillUpstreamEnforceStrikeDelay7Days[] = { |
| {"autofill_upstream_enforce_strike_delay_days", "7"}}; |
| const FeatureEntry::FeatureVariation |
| kAutofillUpstreamEnforceStrikeDelayVariations[] = { |
| {"1 day", kAutofillUpstreamEnforceStrikeDelay1Day, nullptr}, |
| {"3 days", kAutofillUpstreamEnforceStrikeDelay3Days, nullptr}, |
| {"7 days", kAutofillUpstreamEnforceStrikeDelay7Days, nullptr}}; |
| |
| #if BUILDFLAG(ENTERPRISE_PROXY) |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForced403[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "403"}}; |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForced500[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "500"}}; |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForced502[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "502"}}; |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForced503[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "503"}}; |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForced504[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "504"}}; |
| |
| const FeatureEntry::FeatureParam kEnterpriseProxyErrorForcedUnsupported429[] = { |
| {enterprise_net::kForcedDisguisedErrorCodeParamName, "429"}}; |
| |
| const FeatureEntry::FeatureVariation kEnterpriseProxyErrorHandlingVariations[] = |
| { |
| {"Force 403 (Authorization / Block)", kEnterpriseProxyErrorForced403, |
| nullptr}, |
| {"Force 500 (Internal Server Error)", kEnterpriseProxyErrorForced500, |
| nullptr}, |
| {"Force 502 (Bad Gateway)", kEnterpriseProxyErrorForced502, nullptr}, |
| {"Force 503 (Service Unavailable)", kEnterpriseProxyErrorForced503, |
| nullptr}, |
| {"Force 504 (Gateway Timeout)", kEnterpriseProxyErrorForced504, |
| nullptr}, |
| {"Force Unsupported HTTP Code (429)", |
| kEnterpriseProxyErrorForcedUnsupported429, nullptr}, |
| }; |
| #endif // BUILDFLAG(ENTERPRISE_PROXY) |
| |
| // RECORDING USER METRICS FOR FLAGS: |
| // ----------------------------------------------------------------------------- |
| // The first line of the entry is the internal name. |
| // |
| // To add a new entry, add to the end of kFeatureEntries. There are two |
| // distinct types of entries: |
| // . SINGLE_VALUE: entry is either on or off. Use the SINGLE_VALUE_TYPE |
| // macro for this type supplying the command line to the macro. |
| // . MULTI_VALUE: a list of choices, the first of which should correspond to a |
| // deactivated state for this lab (i.e. no command line option). To specify |
| // this type of entry use the macro MULTI_VALUE_TYPE supplying it the |
| // array of choices. |
| // See the documentation of FeatureEntry for details on the fields. |
| // |
| // Usage of about:flags is logged on startup via the "Launch.FlagsAtStartup" |
| // UMA histogram. This histogram shows the number of startups with a given flag |
| // enabled. If you'd like to see user counts instead, make sure to switch to |
| // "count users" view on the dashboard. When adding new entries, the enum |
| // "LoginCustomFlags" must be updated in histograms/enums.xml. See note in |
| // enums.xml and don't forget to run AboutFlagsHistogramTest unit test to |
| // calculate and verify checksum. |
| // |
| constexpr char kEnterpriseIsolatedModeInternalName[] = |
| "force-enterprise-isolated-mode"; |
| |
| // When adding a new choice, add it to the end of the list. |
| const FeatureEntry kFeatureEntries[] = { |
| // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and |
| // //tools/flags/generate_unexpire_flags.py. |
| #include "build/chromeos_buildflags.h" |
| #include "chrome/browser/unexpire_flags_gen.inc" |
| {switches::kEnableBenchmarking, flag_descriptions::kEnableBenchmarkingName, |
| flag_descriptions::kEnableBenchmarkingDescription, kOsAll, |
| MULTI_VALUE_TYPE(kEnableBenchmarkingChoices)}, |
| {"ignore-gpu-blocklist", flag_descriptions::kIgnoreGpuBlocklistName, |
| flag_descriptions::kIgnoreGpuBlocklistDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlocklist)}, |
| {"enable-accessibility-on-screen-mode", |
| flag_descriptions::kAccessibilityOnScreenModeName, |
| flag_descriptions::kAccessibilityOnScreenModeDescription, kOsAll, |
| FEATURE_VALUE_TYPE(::features::kAccessibilityOnScreenMode)}, |
| {"disable-accelerated-2d-canvas", |
| flag_descriptions::kAccelerated2dCanvasName, |
| flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, |
| {"overlay-strategies", flag_descriptions::kOverlayStrategiesName, |
| flag_descriptions::kOverlayStrategiesDescription, |
| kOsLinux | kOsCrOS | kOsFuchsia, |
| MULTI_VALUE_TYPE(kOverlayStrategiesChoices)}, |
| {"tint-composited-content", flag_descriptions::kTintCompositedContentName, |
| flag_descriptions::kTintCompositedContentDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kTintCompositedContent)}, |
| {"show-overdraw-feedback", flag_descriptions::kShowOverdrawFeedbackName, |
| flag_descriptions::kShowOverdrawFeedbackDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kShowOverdrawFeedback)}, |
| {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, |
| flag_descriptions::kUiPartialSwapDescription, kOsAll, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, |
| {"webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName, |
| flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kWebRtcHWDecoding)}, |
| {"webrtc-hw-encoding", flag_descriptions::kWebrtcHwEncodingName, |
| flag_descriptions::kWebrtcHwEncodingDescription, kOsAndroid | kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kWebRtcHWEncoding)}, |
| {"webrtc-pqc-for-dtls", flag_descriptions::kWebRtcPqcForDtlsName, |
| flag_descriptions::kWebRtcPqcForDtlsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kWebRtcPqcForDtls)}, |
| {"enable-webrtc-allow-input-volume-adjustment", |
| flag_descriptions::kWebRtcAllowInputVolumeAdjustmentName, |
| flag_descriptions::kWebRtcAllowInputVolumeAdjustmentDescription, |
| kOsWin | kOsMac | kOsLinux, |
| FEATURE_VALUE_TYPE(features::kWebRtcAllowInputVolumeAdjustment)}, |
| {"enable-webrtc-apm-downmix-capture-audio-method", |
| flag_descriptions::kWebRtcApmDownmixCaptureAudioMethodName, |
| flag_descriptions::kWebRtcApmDownmixCaptureAudioMethodDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kWebRtcApmDownmixCaptureAudioMethod, |
| kWebRtcApmDownmixMethodVariations, |
| "WebRtcApmDownmixCaptureAudioMethod")}, |
| {"enable-webrtc-hide-local-ips-with-mdns", |
| flag_descriptions::kWebrtcHideLocalIpsWithMdnsName, |
| flag_descriptions::kWebrtcHideLocalIpsWithMdnsDecription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kWebRtcHideLocalIpsWithMdns)}, |
| {"enable-webrtc-use-min-max-vea-dimensions", |
| flag_descriptions::kWebrtcUseMinMaxVEADimensionsName, |
| flag_descriptions::kWebrtcUseMinMaxVEADimensionsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kWebRtcUseMinMaxVEADimensions)}, |
| #if defined(WEBRTC_USE_PIPEWIRE) |
| {"enable-webrtc-pipewire-camera", |
| flag_descriptions::kWebrtcPipeWireCameraName, |
| flag_descriptions::kWebrtcPipeWireCameraDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(features::kWebRtcPipeWireCamera)}, |
| #endif // defined(WEBRTC_USE_PIPEWIRE) |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| {"web-hid-in-web-view", flag_descriptions::kEnableWebHidInWebViewName, |
| flag_descriptions::kEnableWebHidInWebViewDescription, kOsAll, |
| FEATURE_VALUE_TYPE(extensions_features::kEnableWebHidInWebView)}, |
| {"extensions-on-chrome-urls", |
| flag_descriptions::kExtensionsOnChromeUrlsName, |
| flag_descriptions::kExtensionsOnChromeUrlsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, |
| {"extensions-on-extension-urls", |
| flag_descriptions::kExtensionsOnExtensionUrlsName, |
| flag_descriptions::kExtensionsOnExtensionUrlsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnExtensionURLs)}, |
| {"extension-telemetry-enterprise-short-reporting-interval", |
| flag_descriptions::kExtensionTelemetryEnterpriseShortReportingIntervalName, |
| flag_descriptions:: |
| kExtensionTelemetryEnterpriseShortReportingIntervalDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| safe_browsing::kExtensionTelemetryEnterpriseShortReportingInterval)}, |
| {"optimize-web-request-proxy", |
| flag_descriptions::kOptimizeWebRequestProxyName, |
| flag_descriptions::kOptimizeWebRequestProxyDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kOptimizeWebRequestProxy)}, |
| {"web-request-security-info", |
| flag_descriptions::kWebRequestSecurityInfoName, |
| flag_descriptions::kWebRequestSecurityInfoDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kWebRequestSecurityInfo)}, |
| #endif // ENABLE_EXTENSIONS |
| #if BUILDFLAG(IS_ANDROID) |
| {"contextual-panel-close-button", |
| flag_descriptions::kContextualPanelCloseButtonName, |
| flag_descriptions::kContextualPanelCloseButtonDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kContextualPanelCloseButton)}, |
| {"contextual-search-suppress-short-view", |
| flag_descriptions::kContextualSearchSuppressShortViewName, |
| flag_descriptions::kContextualSearchSuppressShortViewDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kContextualSearchSuppressShortView, |
| kContextualSearchSuppressShortViewVariations, |
| "ContextualSearchSuppressShortView")}, |
| {"contextual-search-with-credentials-for-debug", |
| flag_descriptions::kContextualSearchWithCredentialsForDebugName, |
| flag_descriptions::kContextualSearchWithCredentialsForDebugDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(kContextualSearchWithCredentialsForDebug)}, |
| {"controls-in-browser-toolbar-swipe-mock", |
| flag_descriptions::kControlsInBrowserToolbarSwipeMockName, |
| flag_descriptions::kControlsInBrowserToolbarSwipeMockDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kControlsInBrowserToolbarSwipeMock)}, |
| {"edge-to-edge-automotive", flag_descriptions::kEdgeToEdgeAutomotiveName, |
| flag_descriptions::kEdgeToEdgeAutomotiveDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kEdgeToEdgeAutomotive)}, |
| {"related-searches-all-language", |
| flag_descriptions::kRelatedSearchesAllLanguageName, |
| flag_descriptions::kRelatedSearchesAllLanguageDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kRelatedSearchesAllLanguage)}, |
| {"related-searches-switch", flag_descriptions::kRelatedSearchesSwitchName, |
| flag_descriptions::kRelatedSearchesSwitchDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kRelatedSearchesSwitch)}, |
| {"safe-browsing-scam-detection-keyboard-lock-trigger-android", |
| flag_descriptions:: |
| kSafeBrowsingScamDetectionKeyboardLockTriggerAndroidName, |
| flag_descriptions:: |
| kSafeBrowsingScamDetectionKeyboardLockTriggerAndroidDescription, |
| kOsAndroid, |
| SINGLE_VALUE_TYPE( |
| safe_browsing::switches::kScamDetectionKeyboardLockTriggerAndroid)}, |
| {"safe-browsing-sync-checker-check-allowlist", |
| flag_descriptions::kSafeBrowsingSyncCheckerCheckAllowlistName, |
| flag_descriptions::kSafeBrowsingSyncCheckerCheckAllowlistDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(safe_browsing::kSafeBrowsingSyncCheckerCheckAllowlist)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-content-analysis-clipboard-copy", |
| flag_descriptions::kEnableContentAnalysisClipboardCopyName, |
| flag_descriptions::kEnableContentAnalysisClipboardCopyDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(enterprise_connectors::kContentAnalysisClipboardCopy)}, |
| |
| {"show-autofill-type-predictions", |
| flag_descriptions::kShowAutofillTypePredictionsName, |
| flag_descriptions::kShowAutofillTypePredictionsDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| autofill::features::debug::kAutofillShowTypePredictions, |
| kAutofillShowTypePredictionsVariations, |
| "AutofillShowTypePredictions")}, |
| {"autofill-ambient-autofill", |
| flag_descriptions::kAutofillAmbientAutofillName, |
| flag_descriptions::kAutofillAmbientAutofillDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAmbientAutofill)}, |
| {"autofill-payments-field-swapping", |
| flag_descriptions::kAutofillPaymentsFieldSwappingName, |
| flag_descriptions::kAutofillPaymentsFieldSwappingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillPaymentsFieldSwapping)}, |
| {"smooth-scrolling", flag_descriptions::kSmoothScrollingName, |
| flag_descriptions::kSmoothScrollingDescription, |
| // Mac has a separate implementation with its own setting to disable. |
| kOsLinux | kOsCrOS | kOsWin | kOsAndroid, |
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling, |
| switches::kDisableSmoothScrolling)}, |
| {"fractional-scroll-offsets", |
| flag_descriptions::kFractionalScrollOffsetsName, |
| flag_descriptions::kFractionalScrollOffsetsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFractionalScrollOffsets)}, |
| {"overlay-scrollbars", flag_descriptions::kOverlayScrollbarsName, |
| flag_descriptions::kOverlayScrollbarsDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kOverlayScrollbar, |
| kScrollbarModeVariations, |
| "OverlayScrollbar")}, |
| #if defined(USE_AURA) |
| {"overlay-scrollbars-flash-when-mouse-enter", |
| flag_descriptions::kOverlayScrollbarsFlashWhenMouseEnterName, |
| flag_descriptions::kOverlayScrollbarsFlashWhenMouseEnterDescription, |
| kOsAura, |
| FEATURE_VALUE_TYPE(features::kOverlayScrollbarFlashWhenMouseEnter)}, |
| {"overlay-scrollbars-flash-once-visible-on-viewport", |
| flag_descriptions::kOverlayScrollbarsFlashOnceVisibleOnViewportName, |
| flag_descriptions::kOverlayScrollbarsFlashOnceVisibleOnViewportDescription, |
| kOsAura, |
| FEATURE_VALUE_TYPE( |
| features::kOverlayScrollbarFlashOnlyOnceVisibleOnViewport)}, |
| #endif // USE_AURA |
| #if BUILDFLAG(ENABLE_JXL_DECODER) |
| {"enable-jxl-image-format", flag_descriptions::kJxlImageFormatName, |
| flag_descriptions::kJxlImageFormatDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kJXLImageFormat)}, |
| #endif // BUILDFLAG(ENABLE_JXL_DECODER) |
| {"enable-rusty-bmp", flag_descriptions::kRustyBmpName, |
| flag_descriptions::kRustyBmpDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kRustyBmpFeature)}, |
| {"enable-rusty-ico", flag_descriptions::kRustyIcoName, |
| flag_descriptions::kRustyIcoDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kRustyIcoFeature)}, |
| {"enable-rusty-jpeg", flag_descriptions::kRustyJpegName, |
| flag_descriptions::kRustyJpegDescription, kOsAll, |
| FEATURE_VALUE_TYPE(skia::kRustyJpegFeature)}, |
| {"soft-navigation-heuristics", |
| flag_descriptions::kSoftNavigationHeuristicsName, |
| flag_descriptions::kSoftNavigationHeuristicsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kSoftNavigationHeuristics)}, |
| {"blocking-focus-without-user-activation", |
| flag_descriptions::kBlockingFocusWithoutUserActivationName, |
| flag_descriptions::kBlockingFocusWithoutUserActivationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kBlockingFocusWithoutUserActivation)}, |
| {"enable-quic", flag_descriptions::kQuicName, |
| flag_descriptions::kQuicDescription, kOsAll, |
| ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)}, |
| {"webtransport-developer-mode", |
| flag_descriptions::kWebTransportDeveloperModeName, |
| flag_descriptions::kWebTransportDeveloperModeDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kWebTransportDeveloperMode)}, |
| {"structured-dns-errors", flag_descriptions::kStructuredDnsErrorsName, |
| flag_descriptions::kStructuredDnsErrorsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kUseStructuredDnsErrors)}, |
| {"disable-javascript-harmony-shipping", |
| flag_descriptions::kJavascriptHarmonyShippingName, |
| flag_descriptions::kJavascriptHarmonyShippingDescription, kOsAll, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableJavaScriptHarmonyShipping)}, |
| {"enable-javascript-harmony", flag_descriptions::kJavascriptHarmonyName, |
| flag_descriptions::kJavascriptHarmonyDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kJavaScriptHarmony)}, |
| {"enable-experimental-webassembly-features", |
| flag_descriptions::kExperimentalWebAssemblyFeaturesName, |
| flag_descriptions::kExperimentalWebAssemblyFeaturesDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebAssemblyFeatures)}, |
| {"enable-experimental-webassembly-shared-everything", |
| flag_descriptions::kExperimentalWebAssemblySharedEverythingName, |
| flag_descriptions::kExperimentalWebAssemblySharedEverythingDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| features::kEnableExperimentalWebAssemblySharedEverything)}, |
| {"enable-experimental-webassembly-stack-switching", |
| flag_descriptions::kEnableWasmStackSwitchingName, |
| flag_descriptions::kEnableWasmStackSwitchingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kWebAssemblyStackSwitching)}, |
| {"enable-webassembly-baseline", flag_descriptions::kEnableWasmBaselineName, |
| flag_descriptions::kEnableWasmBaselineDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kWebAssemblyBaseline)}, |
| {"enable-webassembly-lazy-compilation", |
| flag_descriptions::kEnableWasmLazyCompilationName, |
| flag_descriptions::kEnableWasmLazyCompilationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kWebAssemblyLazyCompilation)}, |
| {"enable-webassembly-tiering", flag_descriptions::kEnableWasmTieringName, |
| flag_descriptions::kEnableWasmTieringDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kWebAssemblyTiering)}, |
| {"enable-future-v8-vm-features", flag_descriptions::kV8VmFutureName, |
| flag_descriptions::kV8VmFutureDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kV8VmFuture)}, |
| {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, |
| flag_descriptions::kGpuRasterizationDescription, kOsAll, |
| MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) |
| {"fallback-to-sw-if-gles3-not-supported", |
| flag_descriptions::kFallbackToSWIfGLES3NotSupportedName, |
| flag_descriptions::kFallbackToSWIfGLES3NotSupportedDescription, |
| kOsWin | kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kFallbackToSWIfGLES3NotSupported)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) |
| #if BUILDFLAG(IS_WIN) |
| {"variable-system-font-support-on-windows", |
| flag_descriptions::kVariableSystemFontSupportOnWindowsName, |
| flag_descriptions::kVariableSystemFontSupportOnWindowsDescription, kOsWin, |
| FEATURE_VALUE_TYPE(blink::features::kVariableSystemFontSupportOnWindows)}, |
| #endif // BUILDFLAG(IS_WIN) |
| {"enable-experimental-web-platform-features", |
| flag_descriptions::kExperimentalWebPlatformFeaturesName, |
| flag_descriptions::kExperimentalWebPlatformFeaturesDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures)}, |
| {"top-chrome-touch-ui", flag_descriptions::kTopChromeTouchUiName, |
| flag_descriptions::kTopChromeTouchUiDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kTopChromeTouchUiChoices)}, |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"allow-apn-modification-policy", |
| flag_descriptions::kAllowApnModificationPolicyName, |
| flag_descriptions::kAllowApnModificationPolicyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAllowApnModificationPolicy)}, |
| {"alt-click-and-six-pack-customization", |
| flag_descriptions::kAltClickAndSixPackCustomizationName, |
| flag_descriptions::kAltClickAndSixPackCustomizationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAltClickAndSixPackCustomization)}, |
| {"apn-revamp", flag_descriptions::kApnRevampName, |
| flag_descriptions::kApnRevampDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kApnRevamp)}, |
| {"apply-managed-proxy-bypass-list-verbatim", |
| flag_descriptions::kApplyManagedProxyBypassListVerbatimName, |
| flag_descriptions::kApplyManagedProxyBypassListVerbatimDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kApplyManagedProxyBypassListVerbatim)}, |
| {"audio-selection-improvement", |
| flag_descriptions::kAudioSelectionImprovementName, |
| flag_descriptions::kAudioSelectionImprovementDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAudioSelectionImprovement)}, |
| {"cras-processor-wav-dump", flag_descriptions::kCrasProcessorWavDumpName, |
| flag_descriptions::kCrasProcessorWavDumpDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootCrasProcessorWavDump")}, |
| {"disable-explicit-dma-fences", |
| flag_descriptions::kDisableExplicitDmaFencesName, |
| flag_descriptions::kDisableExplicitDmaFencesDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(switches::kDisableExplicitDmaFences)}, |
| // TODO(crbug.com/40652358): Remove this flag and provision when HDR is |
| // fully |
| // supported on ChromeOS. |
| {"use-hdr-transfer-function", |
| flag_descriptions::kUseHDRTransferFunctionName, |
| flag_descriptions::kUseHDRTransferFunctionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kUseHDRTransferFunction)}, |
| {"enable-external-display-hdr10", |
| flag_descriptions::kEnableExternalDisplayHdr10Name, |
| flag_descriptions::kEnableExternalDisplayHdr10Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kEnableExternalDisplayHDR10Mode)}, |
| {"ash-capture-mode-education", flag_descriptions::kCaptureModeEducationName, |
| flag_descriptions::kCaptureModeEducationDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kCaptureModeEducation, |
| kCaptureModeEducationVariations, |
| "CaptureModeEducation")}, |
| {"ash-limit-shelf-items-to-active-desk", |
| flag_descriptions::kLimitShelfItemsToActiveDeskName, |
| flag_descriptions::kLimitShelfItemsToActiveDeskDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kPerDeskShelf)}, |
| {"ash-enable-unified-desktop", |
| flag_descriptions::kAshEnableUnifiedDesktopName, |
| flag_descriptions::kAshEnableUnifiedDesktopDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(switches::kEnableUnifiedDesktop)}, |
| {"bluetooth-audio-le-audio-only", |
| flag_descriptions::kBluetoothAudioLEAudioOnlyName, |
| flag_descriptions::kBluetoothAudioLEAudioOnlyDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootBluetoothAudioLEAudioOnly")}, |
| {"bluetooth-btsnoop-internals", |
| flag_descriptions::kBluetoothBtsnoopInternalsName, |
| flag_descriptions::kBluetoothBtsnoopInternalsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| chromeos::bluetooth::features::kBluetoothBtsnoopInternals)}, |
| {"bluetooth-floss-telephony", |
| flag_descriptions::kBluetoothFlossTelephonyName, |
| flag_descriptions::kBluetoothFlossTelephonyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| chromeos::bluetooth::features::kBluetoothFlossTelephony)}, |
| {kBluetoothUseLLPrivacyInternalName, |
| flag_descriptions::kBluetoothUseLLPrivacyName, |
| flag_descriptions::kBluetoothUseLLPrivacyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(bluez::features::kLinkLayerPrivacy)}, |
| {"campbell-glyph", flag_descriptions::kCampbellGlyphName, |
| flag_descriptions::kCampbellGlyphDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kCampbellGlyph, |
| kCampbellGlyphVariations, |
| "GampbellGlyph")}, |
| {"campbell-key", flag_descriptions::kCampbellKeyName, |
| flag_descriptions::kCampbellKeyDescription, kOsCrOS, |
| STRING_VALUE_TYPE(ash::switches::kCampbellKey, "")}, |
| {"cellular-bypass-esim-installation-connectivity-check", |
| flag_descriptions::kCellularBypassESimInstallationConnectivityCheckName, |
| flag_descriptions:: |
| kCellularBypassESimInstallationConnectivityCheckDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| ash::features::kCellularBypassESimInstallationConnectivityCheck)}, |
| {"cellular-use-second-euicc", |
| flag_descriptions::kCellularUseSecondEuiccName, |
| flag_descriptions::kCellularUseSecondEuiccDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCellularUseSecondEuicc)}, |
| {"enable-cros-separate-geo-api-key", |
| flag_descriptions::kCrosSeparateGeoApiKeyName, |
| flag_descriptions::kCrosSeparateGeoApiKeyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrosSeparateGeoApiKey)}, |
| {"enable-cros-cached-location-provider", |
| flag_descriptions::kCrosCachedLocationProviderName, |
| flag_descriptions::kCrosCachedLocationProviderDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kCachedLocationProvider)}, |
| {"cros-components", flag_descriptions::kCrosComponentsName, |
| flag_descriptions::kCrosComponentsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kCrosComponents)}, |
| {"disable-cancel-all-touches", |
| flag_descriptions::kDisableCancelAllTouchesName, |
| flag_descriptions::kDisableCancelAllTouchesDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(switches::kDisableCancelAllTouches)}, |
| { |
| "enable-brightness-control-in-settings", |
| flag_descriptions::kEnableBrightnessControlInSettingsName, |
| flag_descriptions::kEnableBrightnessControlInSettingsDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableBrightnessControlInSettings), |
| }, |
| {"enable-edid-based-display-ids", |
| flag_descriptions::kEnableEdidBasedDisplayIdsName, |
| flag_descriptions::kEnableEdidBasedDisplayIdsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kEnableEdidBasedDisplayIds)}, |
| {"enable-wifi-qos", flag_descriptions::kEnableWifiQosName, |
| flag_descriptions::kEnableWifiQosDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableWifiQos)}, |
| {"enable-wifi-qos-enterprise", |
| flag_descriptions::kEnableWifiQosEnterpriseName, |
| flag_descriptions::kEnableWifiQosEnterpriseDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableWifiQosEnterprise)}, |
| {"esim-empty-activation-code-support", |
| flag_descriptions::kESimEmptyActivationCodeSupportedName, |
| flag_descriptions::kESimEmptyActivationCodeSupportedDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kESimEmptyActivationCodeSupported)}, |
| {"instant-hotspot-on-nearby", |
| flag_descriptions::kInstantHotspotOnNearbyName, |
| flag_descriptions::kInstantHotspotOnNearbyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kInstantHotspotOnNearby)}, |
| |
| {"instant-tethering", flag_descriptions::kTetherName, |
| flag_descriptions::kTetherDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kInstantTethering)}, |
| {"deprecate-alt-click", flag_descriptions::kDeprecateAltClickName, |
| flag_descriptions::kDeprecateAltClickDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kDeprecateAltClick)}, |
| {"show-bluetooth-debug-log-toggle", |
| flag_descriptions::kShowBluetoothDebugLogToggleName, |
| flag_descriptions::kShowBluetoothDebugLogToggleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kShowBluetoothDebugLogToggle)}, |
| {"show-taps", flag_descriptions::kShowTapsName, |
| flag_descriptions::kShowTapsDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(ash::switches::kShowTaps)}, |
| {"show-touch-hud", flag_descriptions::kShowTouchHudName, |
| flag_descriptions::kShowTouchHudDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)}, |
| {"tiled-display-support", flag_descriptions::kTiledDisplaySupportName, |
| flag_descriptions::kTiledDisplaySupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kTiledDisplaySupport)}, |
| {"wake-on-wifi-allowed", flag_descriptions::kWakeOnWifiAllowedName, |
| flag_descriptions::kWakeOnWifiAllowedDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWakeOnWifiAllowed)}, |
| {"microphone-mute-switch-device", |
| flag_descriptions::kMicrophoneMuteSwitchDeviceName, |
| flag_descriptions::kMicrophoneMuteSwitchDeviceDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE("enable-microphone-mute-switch-device")}, |
| {"wifi-connect-mac-address-randomization", |
| flag_descriptions::kWifiConnectMacAddressRandomizationName, |
| flag_descriptions::kWifiConnectMacAddressRandomizationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWifiConnectMacAddressRandomization)}, |
| {"wifi-concurrency", flag_descriptions::kWifiConcurrencyName, |
| flag_descriptions::kWifiConcurrencyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWifiConcurrency)}, |
| {"enable-rfc-8925", flag_descriptions::kEnableRFC8925Name, |
| flag_descriptions::kEnableRFC8925Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableRFC8925)}, |
| {"enable-root-ns-dns-proxy", flag_descriptions::kEnableRootNsDnsProxyName, |
| flag_descriptions::kEnableRootNsDnsProxyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableRootNsDnsProxy)}, |
| {"disconnect-wifi-on-ethernet-connected", |
| flag_descriptions::kDisconnectWiFiOnEthernetConnectedName, |
| flag_descriptions::kDisconnectWiFiOnEthernetConnectedDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDisconnectWiFiOnEthernetConnected)}, |
| {"use-dhcpcd10", flag_descriptions::kUseDHCPCD10Name, |
| flag_descriptions::kUseDHCPCD10Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUseDHCPCD10)}, |
| {"jupiter-screensaver", flag_descriptions::kJupiterScreensaverName, |
| flag_descriptions::kJupiterScreensaverDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kJupiterScreensaver)}, |
| {"window-preview-on-shelf", flag_descriptions::kWindowPreviewOnShelfName, |
| flag_descriptions::kWindowPreviewOnShelfDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWindowPreviewOnShelf)}, |
| |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| { |
| "disable-accelerated-video-decode", |
| flag_descriptions::kAcceleratedVideoDecodeName, |
| flag_descriptions::kAcceleratedVideoDecodeDescription, |
| kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), |
| }, |
| { |
| "disable-accelerated-video-encode", |
| flag_descriptions::kAcceleratedVideoEncodeName, |
| flag_descriptions::kAcceleratedVideoEncodeDescription, |
| kOsMac | kOsWin | kOsCrOS | kOsAndroid, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoEncode), |
| }, |
| #if BUILDFLAG(IS_WIN) |
| { |
| "enable-hardware-secure-decryption", |
| flag_descriptions::kHardwareSecureDecryptionName, |
| flag_descriptions::kHardwareSecureDecryptionDescription, |
| kOsWin, |
| FEATURE_VALUE_TYPE(media::kHardwareSecureDecryption), |
| }, |
| { |
| "enable-hardware-secure-decryption-fallback", |
| flag_descriptions::kHardwareSecureDecryptionFallbackName, |
| flag_descriptions::kHardwareSecureDecryptionFallbackDescription, |
| kOsWin, |
| FEATURE_VALUE_TYPE(media::kHardwareSecureDecryptionFallback), |
| }, |
| { |
| "enable-media-foundation-camera-usage-monitoring", |
| flag_descriptions::kMediaFoundationCameraUsageMonitoringName, |
| flag_descriptions::kMediaFoundationCameraUsageMonitoringDescription, |
| kOsWin, |
| FEATURE_VALUE_TYPE(features::kMediaFoundationCameraUsageMonitoring), |
| }, |
| { |
| "enable-waitable-swap-chain", |
| flag_descriptions::kUseWaitableSwapChainName, |
| flag_descriptions::kUseWaitableSwapChainDescription, |
| kOsWin, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kDXGIWaitableSwapChain, |
| kDXGIWaitableSwapChainVariations, |
| "DXGIWaitableSwapChain"), |
| }, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| { |
| "zero-copy-video-capture", |
| flag_descriptions::kZeroCopyVideoCaptureName, |
| flag_descriptions::kZeroCopyVideoCaptureDescription, |
| kOsCrOS, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( |
| switches::kVideoCaptureUseGpuMemoryBuffer, |
| "1", |
| switches::kDisableVideoCaptureUseGpuMemoryBuffer, |
| "1"), |
| }, |
| { |
| "ash-debug-shortcuts", |
| flag_descriptions::kDebugShortcutsName, |
| flag_descriptions::kDebugShortcutsDescription, |
| kOsAll, |
| SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts), |
| }, |
| {"ui-slow-animations", flag_descriptions::kUiSlowAnimationsName, |
| flag_descriptions::kUiSlowAnimationsDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(switches::kUISlowAnimations)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| #if BUILDFLAG(IS_WIN) |
| { |
| "zero-copy-video-capture", |
| flag_descriptions::kZeroCopyVideoCaptureName, |
| flag_descriptions::kZeroCopyVideoCaptureDescription, |
| kOsWin, |
| FEATURE_VALUE_TYPE(media::kMediaFoundationD3D11VideoCapture), |
| }, |
| #endif // BUILDFLAG(IS_WIN) |
| #if BUILDFLAG(IS_ANDROID) |
| {"zero-copy-video-capture", flag_descriptions::kZeroCopyVideoCaptureName, |
| flag_descriptions::kZeroCopyVideoCaptureDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kAndroidZeroCopyVideoCapture)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"enable-show-autofill-signatures", |
| flag_descriptions::kShowAutofillSignaturesName, |
| flag_descriptions::kShowAutofillSignaturesDescription, kOsAll, |
| SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillSignatures)}, |
| {"wallet-api-private-passes-enabled", |
| flag_descriptions::kWalletApiPrivatePassesEnabledName, |
| flag_descriptions::kWalletApiPrivatePassesEnabledDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| wallet::features::kWalletApiPrivatePassesEnabled, |
| kWalletApiPrivatePassesEnabledVariations, |
| "WalletApiPrivatePassesEnabled")}, |
| |
| {"wallet-service-use-sandbox", |
| flag_descriptions::kWalletServiceUseSandboxName, |
| flag_descriptions::kWalletServiceUseSandboxDescription, |
| kOsAndroid | kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( |
| autofill::switches::kWalletServiceUseSandbox, |
| "1", |
| autofill::switches::kWalletServiceUseSandbox, |
| "0")}, |
| {"enable-web-bluetooth", flag_descriptions::kWebBluetoothName, |
| flag_descriptions::kWebBluetoothDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(features::kWebBluetooth)}, |
| {"enable-web-bluetooth-new-permissions-backend", |
| flag_descriptions::kWebBluetoothNewPermissionsBackendName, |
| flag_descriptions::kWebBluetoothNewPermissionsBackendDescription, |
| kOsAndroid | kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebBluetoothNewPermissionsBackend)}, |
| {"enable-webusb-device-detection", |
| flag_descriptions::kWebUsbDeviceDetectionName, |
| flag_descriptions::kWebUsbDeviceDetectionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebUsbDeviceDetection)}, |
| #if defined(USE_AURA) |
| {"overscroll-history-navigation", |
| flag_descriptions::kOverscrollHistoryNavigationName, |
| flag_descriptions::kOverscrollHistoryNavigationDescription, kOsAura, |
| FEATURE_VALUE_TYPE(features::kOverscrollHistoryNavigation)}, |
| {"pull-to-refresh", flag_descriptions::kPullToRefreshName, |
| flag_descriptions::kPullToRefreshDescription, kOsAura, |
| MULTI_VALUE_TYPE(kPullToRefreshChoices)}, |
| #endif // USE_AURA |
| {"enable-touch-drag-drop", flag_descriptions::kTouchDragDropName, |
| flag_descriptions::kTouchDragDropDescription, kOsLinux | kOsWin | kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kTouchDragAndDrop)}, |
| {"touch-selection-strategy", flag_descriptions::kTouchSelectionStrategyName, |
| flag_descriptions::kTouchSelectionStrategyDescription, |
| kOsAndroid, // TODO(mfomitchev): Add CrOS/Win/Linux support soon. |
| MULTI_VALUE_TYPE(kTouchTextSelectionStrategyChoices)}, |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-virtual-keyboard", flag_descriptions::kVirtualKeyboardName, |
| flag_descriptions::kVirtualKeyboardDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard)}, |
| {"disable-virtual-keyboard", |
| flag_descriptions::kVirtualKeyboardDisabledName, |
| flag_descriptions::kVirtualKeyboardDisabledDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(keyboard::switches::kDisableVirtualKeyboard)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| {"enable-webgl-developer-extensions", |
| flag_descriptions::kWebglDeveloperExtensionsName, |
| flag_descriptions::kWebglDeveloperExtensionsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableWebGLDeveloperExtensions)}, |
| {"enable-webgl-draft-extensions", |
| flag_descriptions::kWebglDraftExtensionsName, |
| flag_descriptions::kWebglDraftExtensionsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions)}, |
| {"enable-zero-copy", flag_descriptions::kZeroCopyName, |
| flag_descriptions::kZeroCopyDescription, kOsAll, |
| ENABLE_DISABLE_VALUE_TYPE(blink::switches::kEnableZeroCopy, |
| blink::switches::kDisableZeroCopy)}, |
| {"enable-vulkan", flag_descriptions::kEnableVulkanName, |
| flag_descriptions::kEnableVulkanDescription, kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kVulkan)}, |
| {"force-enable-webgpu-interop", flag_descriptions::kWebGpuInteropName, |
| flag_descriptions::kWebGpuInteropDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(features::kForceEnableWebGpuInterop)}, |
| {"default-angle-vulkan", flag_descriptions::kDefaultAngleVulkanName, |
| flag_descriptions::kDefaultAngleVulkanDescription, kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kDefaultANGLEVulkan)}, |
| {"vulkan-from-angle", flag_descriptions::kVulkanFromAngleName, |
| flag_descriptions::kVulkanFromAngleDescription, kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kVulkanFromANGLE)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-ongoing-processes", flag_descriptions::kEnableOngoingProcessesName, |
| flag_descriptions::kEnableOngoingProcessesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kOngoingProcesses)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| #if BUILDFLAG(IS_ANDROID) |
| {"reader-mode-blur-transition-animation", |
| flag_descriptions::kReaderModeBlurTransitionAnimationName, |
| flag_descriptions::kReaderModeBlurTransitionAnimationDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(dom_distiller::kReaderModeBlurTransitionAnimation)}, |
| {"reader-mode-delay-bottomsheet-peek", |
| flag_descriptions::kReaderModeDelayBottomSheetPeekName, |
| flag_descriptions::kReaderModeDelayBottomSheetPeekDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(dom_distiller::kReaderModeDelayBottomSheetPeek)}, |
| {"reader-mode-heuristics", flag_descriptions::kReaderModeHeuristicsName, |
| flag_descriptions::kReaderModeHeuristicsDescription, kOsAndroid, |
| MULTI_VALUE_TYPE(kReaderModeHeuristicsChoices)}, |
| {"reader-mode-support-new-fonts", |
| flag_descriptions::kReaderModeSupportNewFontsName, |
| flag_descriptions::kReaderModeSupportNewFontsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(dom_distiller::kReaderModeSupportNewFonts)}, |
| {"reader-mode-toggle-links", flag_descriptions::kReaderModeToggleLinksName, |
| flag_descriptions::kReaderModeToggleLinksDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(dom_distiller::kReaderModeToggleLinks)}, |
| {"submenus-in-app-menu", flag_descriptions::kSubmenusInAppMenuName, |
| flag_descriptions::kSubmenusInAppMenuDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSubmenusInAppMenu)}, |
| {"submenus-in-app-menu-lff", flag_descriptions::kSubmenusInAppMenuLffName, |
| flag_descriptions::kSubmenusInAppMenuLffDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSubmenusInAppMenuLff)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"in-product-help-demo-mode-choice", |
| flag_descriptions::kInProductHelpDemoModeChoiceName, |
| flag_descriptions::kInProductHelpDemoModeChoiceDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| feature_engagement::kIPHDemoMode, |
| feature_engagement::kIPHDemoModeChoiceVariations, |
| "IPH_DemoMode")}, |
| {"enterprise-tab-title-reporting", |
| flag_descriptions::kEnterpriseTabTitleReportingName, |
| flag_descriptions::kEnterpriseTabTitleReportingDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| enterprise_data_protection::kEnterpriseTabTitleReporting)}, |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enterprise-reporting-ui", flag_descriptions::kEnterpriseReportingUIName, |
| flag_descriptions::kEnterpriseReportingUIDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnterpriseReportingUI)}, |
| {"chromebox-usb-passthrough-restrictions", |
| flag_descriptions::kChromeboxUsbPassthroughRestrictionsName, |
| flag_descriptions::kChromeboxUsbPassthroughRestrictionsDescription, |
| kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE( |
| "CrOSLateBootChromeboxUsbPassthroughRestrictions")}, |
| {"disable-bruschetta-install-checks", |
| flag_descriptions::kDisableBruschettaInstallChecksName, |
| flag_descriptions::kDisableBruschettaInstallChecksDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDisableBruschettaInstallChecks)}, |
| {"crostini-reset-lxd-db", flag_descriptions::kCrostiniResetLxdDbName, |
| flag_descriptions::kCrostiniResetLxdDbDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrostiniResetLxdDb)}, |
| {"terminal-dev", flag_descriptions::kTerminalDevName, |
| flag_descriptions::kTerminalDevDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kTerminalDev)}, |
| {"permissive-usb-passthrough", |
| flag_descriptions::kPermissiveUsbPassthroughName, |
| flag_descriptions::kPermissiveUsbPassthroughDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootPermissiveUsbPassthrough")}, |
| {"crostini-containerless", flag_descriptions::kCrostiniContainerlessName, |
| flag_descriptions::kCrostiniContainerlessDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrostiniContainerless)}, |
| {"crostini-qt-ime-support", flag_descriptions::kCrostiniQtImeSupportName, |
| flag_descriptions::kCrostiniQtImeSupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrostiniQtImeSupport)}, |
| {"crostini-virtual-keyboard-support", |
| flag_descriptions::kCrostiniVirtualKeyboardSupportName, |
| flag_descriptions::kCrostiniVirtualKeyboardSupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrostiniVirtualKeyboardSupport)}, |
| {"notifications-ignore-require-interaction", |
| flag_descriptions::kNotificationsIgnoreRequireInteractionName, |
| flag_descriptions::kNotificationsIgnoreRequireInteractionDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kNotificationsIgnoreRequireInteraction)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-site-isolation-for-password-sites", |
| flag_descriptions::kSiteIsolationForPasswordSitesName, |
| flag_descriptions::kSiteIsolationForPasswordSitesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| site_isolation::features::kSiteIsolationForPasswordSites)}, |
| {"enable-site-per-process", flag_descriptions::kStrictSiteIsolationName, |
| flag_descriptions::kStrictSiteIsolationDescription, kOsAndroid, |
| SINGLE_VALUE_TYPE(switches::kSitePerProcess)}, |
| #endif |
| |
| {kEnterpriseIsolatedModeInternalName, |
| flag_descriptions::kEnterpriseIsolatedModeName, |
| flag_descriptions::kEnterpriseIsolatedModeDescription, kOsAll, |
| SINGLE_VALUE_TYPE(enterprise_isolated_mode::switches:: |
| kForceEnterpriseIsolatedModeReplacesIncognito)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| #if !BUILDFLAG(IS_CHROMEOS) |
| {"enable-isolated-web-apps", flag_descriptions::kEnableIsolatedWebAppsName, |
| flag_descriptions::kEnableIsolatedWebAppsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kIsolatedWebApps)}, |
| #endif // !BUILDFLAG(IS_CHROMEOS) |
| {"direct-sockets-in-service-workers", |
| flag_descriptions::kDirectSocketsInServiceWorkersName, |
| flag_descriptions::kDirectSocketsInServiceWorkersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kDirectSocketsInServiceWorkers)}, |
| {"direct-sockets-in-shared-workers", |
| flag_descriptions::kDirectSocketsInSharedWorkersName, |
| flag_descriptions::kDirectSocketsInSharedWorkersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kDirectSocketsInSharedWorkers)}, |
| {"direct-sockets-udp-send-require-multicast-permission-policy", |
| flag_descriptions:: |
| kDirectSocketsUdpSendRequireMulticastPermissionPolicyName, |
| flag_descriptions:: |
| kDirectSocketsUdpSendRequireMulticastPermissionPolicyDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| network::features:: |
| kDirectSocketsUdpSendRequireMulticastPermissionPolicy)}, |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-set-shape", flag_descriptions::kEnableSetShapeName, |
| flag_descriptions::kEnableSetShapeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(blink::features::kSetShape)}, |
| {"enable-isolated-web-app-unmanaged-install", |
| flag_descriptions::kEnableIsolatedWebAppUnmanagedInstallName, |
| flag_descriptions::kEnableIsolatedWebAppUnmanagedInstallDescription, |
| kOsCrOS, FEATURE_VALUE_TYPE(features::kIsolatedWebAppUnmanagedInstall)}, |
| #endif |
| {"enable-isolated-web-app-dev-mode", |
| flag_descriptions::kEnableIsolatedWebAppDevModeName, |
| flag_descriptions::kEnableIsolatedWebAppDevModeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kIsolatedWebAppDevMode)}, |
| {"enable-isolated-web-app-fast-update-check", |
| flag_descriptions::kEnableIsolatedWebAppFastUpdateCheckName, |
| flag_descriptions::kEnableIsolatedWebAppFastUpdateCheckDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(features::kIsolatedWebAppFastUpdateCheck)}, |
| #if BUILDFLAG(IS_WIN) |
| {"enable-process-isolation-ui", |
| flag_descriptions::kEnableProcessIsolationUiName, |
| flag_descriptions::kEnableProcessIsolationUiDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kProcessIsolationSettings)}, |
| #endif // BUILDFLAG(IS_WIN) |
| #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| {"enable-iwa-key-distribution-component", |
| flag_descriptions::kEnableIwaKeyDistributionComponentName, |
| flag_descriptions::kEnableIwaKeyDistributionComponentDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(component_updater::kIwaKeyDistributionComponent)}, |
| #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| {"iwa-key-distribution-component-exp-cohort", |
| flag_descriptions::kIwaKeyDistributionComponentExpCohortName, |
| flag_descriptions::kIwaKeyDistributionComponentExpCohortDescription, |
| kOsDesktop, |
| MULTI_VALUE_TYPE(kIwaKeyDistributionComponentExpCohortChoices)}, |
| {"enable-unframed-iwa", flag_descriptions::kEnableUnframedIwaName, |
| flag_descriptions::kEnableUnframedIwaDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kUnframedIwa)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-controlled-frame", flag_descriptions::kEnableControlledFrameName, |
| flag_descriptions::kEnableControlledFrameDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kControlledFrame)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"isolate-origins", flag_descriptions::kIsolateOriginsName, |
| flag_descriptions::kIsolateOriginsDescription, kOsAll, |
| ORIGIN_LIST_VALUE_TYPE(switches::kIsolateOrigins, "")}, |
| {about_flags::kSiteIsolationTrialOptOutInternalName, |
| flag_descriptions::kSiteIsolationOptOutName, |
| flag_descriptions::kSiteIsolationOptOutDescription, kOsAll, |
| MULTI_VALUE_TYPE(kSiteIsolationOptOutChoices)}, |
| {"allow-insecure-localhost", flag_descriptions::kAllowInsecureLocalhostName, |
| flag_descriptions::kAllowInsecureLocalhostDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kAllowInsecureLocalhost)}, |
| {"enable-desktop-pwas-app-title", |
| flag_descriptions::kDesktopPWAsAppTitleName, |
| flag_descriptions::kDesktopPWAsAppTitleDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kWebAppEnableAppTitle)}, |
| {"capability-delegation-digital-credentials", |
| flag_descriptions::kCapabilityDelegationDigitalCredentialsName, |
| flag_descriptions::kCapabilityDelegationDigitalCredentialsDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| blink::features::kCapabilityDelegationDigitalCredentials)}, |
| {"tab-strip-declutter", flag_descriptions::kTabStripDeclutterName, |
| flag_descriptions::kTabStripDeclutterDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kTabStripDeclutter)}, |
| {"enable-desktop-pwas-elided-extensions-menu", |
| flag_descriptions::kDesktopPWAsElidedExtensionsMenuName, |
| flag_descriptions::kDesktopPWAsElidedExtensionsMenuDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kDesktopPWAsElidedExtensionsMenu)}, |
| {"enable-desktop-pwas-tab-strip", |
| flag_descriptions::kDesktopPWAsTabStripName, |
| flag_descriptions::kDesktopPWAsTabStripDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kDesktopPWAsTabStrip)}, |
| {"enable-desktop-pwas-tab-strip-settings", |
| flag_descriptions::kDesktopPWAsTabStripSettingsName, |
| flag_descriptions::kDesktopPWAsTabStripSettingsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kDesktopPWAsTabStripSettings)}, |
| {"enable-desktop-pwas-tab-strip-customizations", |
| flag_descriptions::kDesktopPWAsTabStripCustomizationsName, |
| flag_descriptions::kDesktopPWAsTabStripCustomizationsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kDesktopPWAsTabStripCustomizations)}, |
| {"enable-desktop-pwas-additional-windowing-controls", |
| flag_descriptions::kDesktopPWAsAdditionalWindowingControlsName, |
| flag_descriptions::kDesktopPWAsAdditionalWindowingControlsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kDesktopPWAsAdditionalWindowingControls)}, |
| {"record-web-app-debug-info", flag_descriptions::kRecordWebAppDebugInfoName, |
| flag_descriptions::kRecordWebAppDebugInfoDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kRecordWebAppDebugInfo)}, |
| {"use-sync-sandbox", flag_descriptions::kSyncSandboxName, |
| flag_descriptions::kSyncSandboxDescription, kOsAll, |
| SINGLE_VALUE_TYPE_AND_VALUE( |
| syncer::kSyncServiceURL, |
| "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")}, |
| #if !BUILDFLAG(IS_ANDROID) |
| {"media-router-cast-allow-all-ips", |
| flag_descriptions::kMediaRouterCastAllowAllIPsName, |
| flag_descriptions::kMediaRouterCastAllowAllIPsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media_router::kCastAllowAllIPsFeature)}, |
| {"allow-all-sites-to-initiate-mirroring", |
| flag_descriptions::kAllowAllSitesToInitiateMirroringName, |
| flag_descriptions::kAllowAllSitesToInitiateMirroringDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(media_router::kAllowAllSitesToInitiateMirroring)}, |
| {"cast-message-logging", flag_descriptions::kCastMessageLoggingName, |
| flag_descriptions::kCastMessageLoggingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media_router::kCastMessageLogging)}, |
| {"capture-handle-for-standalone-pwas-and-iwas", |
| flag_descriptions::kCaptureHandleForStandalonePwasAndIwasName, |
| flag_descriptions::kCaptureHandleForStandalonePwasAndIwasDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kCaptureHandleForStandalonePwasAndIwas)}, |
| {"cast-streaming-exponential-video-bitrate-algorithm", |
| flag_descriptions::kCastStreamingExponentialVideoBitrateAlgorithmName, |
| flag_descriptions:: |
| kCastStreamingExponentialVideoBitrateAlgorithmDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| media::kCastStreamingExponentialVideoBitrateAlgorithm, |
| kCastStreamingExponentialVideoBitrateAlgorithmVariations, |
| "CastStreamingExponentialVideoBitrateAlgorithm")}, |
| |
| {"cast-streaming-hardware-av1", |
| flag_descriptions::kCastStreamingHardwareAv1Name, |
| flag_descriptions::kCastStreamingHardwareAv1Description, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE( |
| switches::kCastStreamingForceEnableHardwareAv1, |
| switches::kCastStreamingForceDisableHardwareAv1)}, |
| |
| {"cast-streaming-hardware-h264", |
| flag_descriptions::kCastStreamingHardwareH264Name, |
| flag_descriptions::kCastStreamingHardwareH264Description, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE( |
| switches::kCastStreamingForceEnableHardwareH264, |
| switches::kCastStreamingForceDisableHardwareH264)}, |
| |
| {"cast-streaming-hardware-hevc", |
| flag_descriptions::kCastStreamingHardwareHevcName, |
| flag_descriptions::kCastStreamingHardwareHevcDescription, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE( |
| switches::kCastStreamingForceEnableHardwareHevc, |
| switches::kCastStreamingForceDisableHardwareHevc)}, |
| |
| {"cast-streaming-hardware-vp8", |
| flag_descriptions::kCastStreamingHardwareVp8Name, |
| flag_descriptions::kCastStreamingHardwareVp8Description, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE( |
| switches::kCastStreamingForceEnableHardwareVp8, |
| switches::kCastStreamingForceDisableHardwareVp8)}, |
| |
| {"cast-streaming-hardware-vp9", |
| flag_descriptions::kCastStreamingHardwareVp9Name, |
| flag_descriptions::kCastStreamingHardwareVp9Description, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE( |
| switches::kCastStreamingForceEnableHardwareVp9, |
| switches::kCastStreamingForceDisableHardwareVp9)}, |
| |
| {"cast-streaming-performance-overlay", |
| flag_descriptions::kCastStreamingPerformanceOverlayName, |
| flag_descriptions::kCastStreamingPerformanceOverlayDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kCastStreamingPerformanceOverlay)}, |
| |
| {"enable-cast-streaming-60fps", flag_descriptions::kCastStreaming60fpsName, |
| flag_descriptions::kCastStreaming60fpsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(mirroring::features::kCastStreaming60fps)}, |
| |
| {"enable-cast-streaming-av1", flag_descriptions::kCastStreamingAv1Name, |
| flag_descriptions::kCastStreamingAv1Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kCastStreamingAv1)}, |
| |
| #if BUILDFLAG(IS_MAC) |
| {"enable-cast-streaming-mac-hardware-h264", |
| flag_descriptions::kCastStreamingMacHardwareH264Name, |
| flag_descriptions::kCastStreamingMacHardwareH264Description, kOsMac, |
| FEATURE_VALUE_TYPE(media::kCastStreamingMacHardwareH264)}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) |
| {"enable-cast-streaming-win-hardware-h264", |
| flag_descriptions::kCastStreamingWinHardwareH264Name, |
| flag_descriptions::kCastStreamingWinHardwareH264Description, kOsWin, |
| FEATURE_VALUE_TYPE(media::kCastStreamingWinHardwareH264)}, |
| #endif |
| |
| {"enable-cast-streaming-offer-hardware-first", |
| flag_descriptions::kCastStreamingOfferHardwareFirstName, |
| flag_descriptions::kCastStreamingOfferHardwareFirstDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(mirroring::features::kCastStreamingOfferHardwareFirst)}, |
| |
| {"enable-cast-streaming-vp8", flag_descriptions::kCastStreamingVp8Name, |
| flag_descriptions::kCastStreamingVp8Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kCastStreamingVp8)}, |
| |
| {"enable-cast-streaming-vp9", flag_descriptions::kCastStreamingVp9Name, |
| flag_descriptions::kCastStreamingVp9Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kCastStreamingVp9)}, |
| |
| {"cast-streaming-max-video-bitrate", |
| flag_descriptions::kCastStreamingMaxVideoBitrateName, |
| flag_descriptions::kCastStreamingMaxVideoBitrateDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(media::kCastStreamingMaxVideoBitrate, |
| kCastStreamingMaxVideoBitrateVariations, |
| "CastStreamingMaxVideoBitrate")}, |
| |
| {"enable-cast-streaming-with-hidpi", |
| flag_descriptions::kCastEnableStreamingWithHiDPIName, |
| flag_descriptions::kCastEnableStreamingWithHiDPIDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(mirroring::features::kCastEnableStreamingWithHiDPI)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_MAC) |
| {"mac-catap-loopback-audio-for-cast", |
| flag_descriptions::kMacCatapLoopbackAudioForCastName, |
| flag_descriptions::kMacCatapLoopbackAudioForCastDescription, kOsMac, |
| FEATURE_VALUE_TYPE(media::kMacCatapLoopbackAudioForCast)}, |
| |
| {"use-sc-content-sharing-picker", |
| flag_descriptions::kUseSCContentSharingPickerName, |
| flag_descriptions::kUseSCContentSharingPickerDescription, kOsMac, |
| FEATURE_VALUE_TYPE(media::kUseSCContentSharingPicker)}, |
| #endif // BUILDFLAG(IS_MAC) |
| |
| #if BUILDFLAG(IS_LINUX) |
| {"pulseaudio-loopback-for-cast", |
| flag_descriptions::kPulseaudioLoopbackForCastName, |
| flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(media::kPulseaudioLoopbackForCast)}, |
| |
| {"pulseaudio-loopback-for-screen-share", |
| flag_descriptions::kPulseaudioLoopbackForScreenShareName, |
| flag_descriptions::kPulseaudioLoopbackForScreenShareDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(media::kPulseaudioLoopbackForScreenShare)}, |
| |
| {"wayland-session-management", |
| flag_descriptions::kWaylandSessionManagementName, |
| flag_descriptions::kWaylandSessionManagementDescription, kOsLinux, |
| FEATURE_VALUE_TYPE(features::kWaylandSessionManagement)}, |
| #endif // BUILDFLAG(IS_LINUX) |
| |
| #if BUILDFLAG(ENABLE_VR) |
| #if BUILDFLAG(ENABLE_OPENXR) |
| {"spatial-entities-depth-hit-test", |
| flag_descriptions::kSpatialEntitesDepthHitTestName, |
| flag_descriptions::kSpatialEntitesDepthHitTestDescription, |
| kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kSpatialEntitesDepthHitTest)}, |
| #endif // BUILDFLAG(ENABLE_OPENXR) |
| {"webxr-projection-layers", flag_descriptions::kWebXrLayersName, |
| flag_descriptions::kWebXrLayersDescription, kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kWebXRLayers)}, |
| {"webxr-webgpu-binding", flag_descriptions::kWebXrWebGpuBindingName, |
| flag_descriptions::kWebXrWebGpuBindingDescription, kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kWebXRWebGPUBinding)}, |
| {"webxr-incubations", flag_descriptions::kWebXrIncubationsName, |
| flag_descriptions::kWebXrIncubationsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(device::features::kWebXRIncubations)}, |
| {"webxr-internals", flag_descriptions::kWebXrInternalsName, |
| flag_descriptions::kWebXrInternalsDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kWebXrInternals)}, |
| {"webxr-plane-detection", flag_descriptions::kWebXrPlaneDetectionName, |
| flag_descriptions::kWebXrPlaneDetectionDescription, kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kWebXRPlaneDetection)}, |
| {"webxr-mesh-detection", flag_descriptions::kWebXrMeshDetectionName, |
| flag_descriptions::kWebXrMeshDetectionDescription, kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kWebXRMeshDetection)}, |
| {"webxr-runtime", flag_descriptions::kWebXrForceRuntimeName, |
| flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop | kOsAndroid, |
| MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, |
| {"webxr-hand-anonymization", |
| flag_descriptions::kWebXrHandAnonymizationStrategyName, |
| flag_descriptions::kWebXrHandAnonymizationStrategyDescription, |
| kOsDesktop | kOsAndroid, MULTI_VALUE_TYPE(KWebXrHandAnonymizationChoices)}, |
| #if BUILDFLAG(IS_ANDROID) && BUILDFLAG(ENABLE_OPENXR) |
| {"enable-openxr-android", flag_descriptions::kOpenXRName, |
| flag_descriptions::kOpenXRDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kOpenXR)}, |
| {"enable-openxr-android-smooth-depth", |
| flag_descriptions::kOpenXRAndroidSmoothDepthName, |
| flag_descriptions::kOpenXRAndroidSmoothDepthDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(device::features::kOpenXR)}, |
| #endif // BUILDFLAG(IS_ANDROID) && BUILDFLAG(ENABLE_OPENXR) |
| #endif // ENABLE_VR |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"disable-accelerated-mjpeg-decode", |
| flag_descriptions::kAcceleratedMjpegDecodeName, |
| flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, |
| flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"notification-permission-rationale-dialog", |
| flag_descriptions::kNotificationPermissionRationaleName, |
| flag_descriptions::kNotificationPermissionRationaleDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kNotificationPermissionVariant, |
| kNotificationPermissionRationaleVariations, |
| "NotificationPermissionVariant")}, |
| {"reengagement-notification", |
| flag_descriptions::kReengagementNotificationName, |
| flag_descriptions::kReengagementNotificationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kReengagementNotification)}, |
| {"high-priority-site-notifications", |
| flag_descriptions::kHighPrioritySiteNotificationsName, |
| flag_descriptions::kHighPrioritySiteNotificationsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kHighPrioritySiteNotifications)}, |
| |
| // Android Edge to edge |
| {"edgeless-top-inset", flag_descriptions::kEdgelessTopInsetName, |
| flag_descriptions::kEdgelessTopInsetDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kEdgelessTopInset)}, |
| |
| {"android-navigation-blur-transition-animation", |
| flag_descriptions::kAndroidNavigationBlurTransitionAnimationName, |
| flag_descriptions::kAndroidNavigationBlurTransitionAnimationDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kAndroidNavigationBlurTransitionAnimation, |
| kNavigationBlurVariations, |
| "AndroidNavigationBlurTransitionAnimation")}, |
| |
| // Tab closure methods refactor. |
| {"tab-closure-committed-method-refactor", |
| flag_descriptions::kTabClosureCommittedMethodRefactorName, |
| flag_descriptions::kTabClosureCommittedMethodRefactorDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabClosureCommittedMethodRefactor)}, |
| |
| {"tab-closure-method-refactor", |
| flag_descriptions::kTabClosureMethodRefactorName, |
| flag_descriptions::kTabClosureMethodRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabClosureMethodRefactor)}, |
| |
| {"undoable-tab-closure-rework", |
| flag_descriptions::kUndoableTabClosureReworkName, |
| flag_descriptions::kUndoableTabClosureReworkDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kUndoableTabClosureRework)}, |
| |
| {"tab-sharing-toolbar-android", |
| flag_descriptions::kTabSharingToolbarAndroidName, |
| flag_descriptions::kTabSharingToolbarAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabSharingToolbarAndroid)}, |
| |
| {"toolbar-phone-animation-refactor", |
| flag_descriptions::kToolbarPhoneAnimationRefactorName, |
| flag_descriptions::kToolbarPhoneAnimationRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kToolbarPhoneAnimationRefactor)}, |
| |
| {"refactor-min-width-context-override", |
| flag_descriptions::kRefactorMinWidthContextOverrideName, |
| flag_descriptions::kRefactorMinWidthContextOverrideDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(ui::kRefactorMinWidthContextOverride)}, |
| |
| {"android-no-capture-when-scrolling-disabled-on-desktop", |
| flag_descriptions::kAndroidNoCaptureWhenScrollingDisabledOnDesktopName, |
| flag_descriptions:: |
| kAndroidNoCaptureWhenScrollingDisabledOnDesktopDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kAndroidNoCaptureWhenScrollingDisabledOnDesktop)}, |
| |
| {"android-tab-declutter-archive-on-desktop", |
| flag_descriptions::kAndroidTabDeclutterArchiveOnDesktopName, |
| flag_descriptions::kAndroidTabDeclutterArchiveOnDesktopDescription, |
| kOsAndroid, MULTI_VALUE_TYPE(kAndroidTabDeclutterArchiveOnDesktopChoices)}, |
| |
| {"toolbar-capture-fix-for-spas", |
| flag_descriptions::kToolbarCaptureFixForSPAsName, |
| flag_descriptions::kToolbarCaptureFixForSPAsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kToolbarCaptureFixForSPAs)}, |
| |
| {"toolbar-tablet-resize-refactor", |
| flag_descriptions::kToolbarTabletResizeRefactorName, |
| flag_descriptions::kToolbarTabletResizeRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kToolbarTabletResizeRefactor)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"disallow-doc-written-script-loads", |
| flag_descriptions::kDisallowDocWrittenScriptsUiName, |
| flag_descriptions::kDisallowDocWrittenScriptsUiDescription, kOsAll, |
| // NOTE: if we want to add additional experiment entries for other |
| // features controlled by kBlinkSettings, we'll need to add logic to |
| // merge the flag values. |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( |
| blink::switches::kBlinkSettings, |
| "disallowFetchForDocWrittenScriptsInMainFrame=true", |
| blink::switches::kBlinkSettings, |
| "disallowFetchForDocWrittenScriptsInMainFrame=false")}, |
| #if BUILDFLAG(IS_WIN) |
| {"use-winrt-midi-api", flag_descriptions::kUseWinrtMidiApiName, |
| flag_descriptions::kUseWinrtMidiApiDescription, kOsWin, |
| FEATURE_VALUE_TYPE(midi::features::kMidiManagerWinrt)}, |
| {"webrtc-wgc-require-border", |
| flag_descriptions::kWebRtcWgcRequireBorderName, |
| flag_descriptions::kWebRtcWgcRequireBorderDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kWebRtcWgcRequireBorder)}, |
| #endif // BUILDFLAG(IS_WIN) |
| #if defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID) |
| {"enable-autofill-credit-card-upload", |
| flag_descriptions::kAutofillCreditCardUploadName, |
| flag_descriptions::kAutofillCreditCardUploadDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)}, |
| #endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID) |
| {"force-ui-direction", flag_descriptions::kForceUiDirectionName, |
| flag_descriptions::kForceUiDirectionDescription, kOsAll, |
| MULTI_VALUE_TYPE(kForceUIDirectionChoices)}, |
| {"force-text-direction", flag_descriptions::kForceTextDirectionName, |
| flag_descriptions::kForceTextDirectionDescription, kOsAll, |
| MULTI_VALUE_TYPE(kForceTextDirectionChoices)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"force-update-menu-type", flag_descriptions::kUpdateMenuTypeName, |
| flag_descriptions::kUpdateMenuTypeDescription, kOsAndroid, |
| MULTI_VALUE_TYPE(kForceUpdateMenuTypeChoices)}, |
| {"update-menu-item-custom-summary", |
| flag_descriptions::kUpdateMenuItemCustomSummaryName, |
| flag_descriptions::kUpdateMenuItemCustomSummaryDescription, kOsAndroid, |
| SINGLE_VALUE_TYPE_AND_VALUE( |
| switches::kForceShowUpdateMenuItemCustomSummary, |
| "Custom Summary")}, |
| {"force-show-update-menu-badge", flag_descriptions::kUpdateMenuBadgeName, |
| flag_descriptions::kUpdateMenuBadgeDescription, kOsAndroid, |
| SINGLE_VALUE_TYPE(switches::kForceShowUpdateMenuBadge)}, |
| {"set-market-url-for-testing", |
| flag_descriptions::kSetMarketUrlForTestingName, |
| flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid, |
| SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting, |
| "https://play.google.com/store/apps/" |
| "details?id=com.android.chrome")}, |
| {"omaha-min-sdk-version-android", |
| flag_descriptions::kOmahaMinSdkVersionAndroidName, |
| flag_descriptions::kOmahaMinSdkVersionAndroidDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kOmahaMinSdkVersionAndroid, |
| kOmahaMinSdkVersionAndroidVariations, |
| "OmahaMinSdkVersionAndroidStudy")}, |
| {"on-demand-background-tab-context-capture", |
| flag_descriptions::kOnDemandBackgroundTabContextCaptureName, |
| flag_descriptions::kOnDemandBackgroundTabContextCaptureDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kOnDemandBackgroundTabContextCapture)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName, |
| flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)}, |
| {"ct-ignore-scts-from-ocsp", |
| flag_descriptions::kCertificateTransparencyIgnoreOcspSctsName, |
| flag_descriptions::kCertificateTransparencyIgnoreOcspSctsDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kCertificateTransparencyIgnoreOcspScts)}, |
| {"tls-trust-anchor-ids", flag_descriptions::kTLSTrustAnchorIDsName, |
| flag_descriptions::kTLSTrustAnchorIDsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kTLSTrustAnchorIDs)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"feed-loading-placeholder", flag_descriptions::kFeedLoadingPlaceholderName, |
| flag_descriptions::kFeedLoadingPlaceholderDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kFeedLoadingPlaceholder)}, |
| {"feed-signed-out-view-demotion", |
| flag_descriptions::kFeedSignedOutViewDemotionName, |
| flag_descriptions::kFeedSignedOutViewDemotionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kFeedSignedOutViewDemotion)}, |
| {"xsurface-metrics-reporting", |
| flag_descriptions::kXsurfaceMetricsReportingName, |
| flag_descriptions::kXsurfaceMetricsReportingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kXsurfaceMetricsReporting)}, |
| {"feed-containment", flag_descriptions::kFeedContainmentName, |
| flag_descriptions::kFeedContainmentDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kFeedContainment)}, |
| {"feed-discofeed-endpoint", flag_descriptions::kFeedDiscoFeedEndpointName, |
| flag_descriptions::kFeedDiscoFeedEndpointDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kDiscoFeedEndpoint)}, |
| {"refresh-feed-on-start", flag_descriptions::kRefreshFeedOnRestartName, |
| flag_descriptions::kRefreshFeedOnRestartDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kRefreshFeedOnRestart)}, |
| {"feed-audio-overviews", flag_descriptions::kFeedAudioOverviewsName, |
| flag_descriptions::kFeedAudioOverviewsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kFeedAudioOverviews)}, |
| {"wide-screen-feed-for-foldables", |
| flag_descriptions::kWideScreenFeedForFoldablesName, |
| flag_descriptions::kWideScreenFeedForFoldablesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kWideScreenFeedForFoldables)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"enable-force-dark", flag_descriptions::kAutoWebContentsDarkModeName, |
| flag_descriptions::kAutoWebContentsDarkModeDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kForceWebContentsDarkMode)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-accessibility-android-math", |
| flag_descriptions::kAccessibilityAndroidMathName, |
| flag_descriptions::kAccessibilityAndroidMathDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityAndroidMath)}, |
| {"enable-accessibility-deprecate-type-announce", |
| flag_descriptions::kAccessibilityDeprecateTypeAnnounceName, |
| flag_descriptions::kAccessibilityDeprecateTypeAnnounceDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityDeprecateTypeAnnounce)}, |
| {"enable-accessibility-extended-selection", |
| flag_descriptions::kAccessibilityExtendedSelectionName, |
| flag_descriptions::kAccessibilityExtendedSelectionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityExtendedSelection)}, |
| {"enable-accessibility-improve-live-region-announce", |
| flag_descriptions::kAccessibilityImproveLiveRegionAnnounceName, |
| flag_descriptions::kAccessibilityImproveLiveRegionAnnounceDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityImproveLiveRegionAnnounce)}, |
| {"enable-accessibility-atomic-live-regions", |
| flag_descriptions::kAccessibilityAtomicLiveRegionsName, |
| flag_descriptions::kAccessibilityAtomicLiveRegionsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityAtomicLiveRegions)}, |
| {"enable-accessibility-labeledby", |
| flag_descriptions::kEnableAccessibilityLabeledByName, |
| flag_descriptions::kEnableAccessibilityLabeledByDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityLabeledBy)}, |
| {"enable-accessibility-populate-supplemental-description-api", |
| flag_descriptions::kAccessibilityPopulateSupplementalDescriptionApiName, |
| flag_descriptions:: |
| kAccessibilityPopulateSupplementalDescriptionApiDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAccessibilityPopulateSupplementalDescriptionApi)}, |
| {"enable-accessibility-request-scoped-content-changed-events", |
| flag_descriptions::kAccessibilityRequestScopedContentChangedEventsName, |
| flag_descriptions:: |
| kAccessibilityRequestScopedContentChangedEventsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAccessibilityRequestScopedContentChangedEvents)}, |
| {"enable-accessibility-sequential-focus", |
| flag_descriptions::kAccessibilitySequentialFocusName, |
| flag_descriptions::kAccessibilitySequentialFocusDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilitySequentialFocus)}, |
| {"enable-accessibility-set-selectable-on-all-nodes-with-text", |
| flag_descriptions::kAccessibilitySetSelectableOnAllNodesWithTextName, |
| flag_descriptions:: |
| kAccessibilitySetSelectableOnAllNodesWithTextDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAccessibilitySetSelectableOnAllNodesWithText)}, |
| {"enable-accessibility-text-change-types", |
| flag_descriptions::kAccessibilityTextChangeTypesName, |
| flag_descriptions::kAccessibilityTextChangeTypesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityTextChangeTypes)}, |
| {"enable-accessibility-text-formatting", |
| flag_descriptions::kAccessibilityTextFormattingName, |
| flag_descriptions::kAccessibilityTextFormattingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityTextFormatting)}, |
| {"enable-accessibility-manage-broadcast-recevier-on-background", |
| flag_descriptions::kAccessibilityManageBroadcastReceiverOnBackgroundName, |
| flag_descriptions:: |
| kAccessibilityManageBroadcastReceiverOnBackgroundDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAccessibilityManageBroadcastReceiverOnBackground)}, |
| {"enable-accessibility-handle-occluding-views", |
| flag_descriptions::kAccessibilityHandleOccludingViewsName, |
| flag_descriptions::kAccessibilityHandleOccludingViewsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAccessibilityHandleOccludingViews)}, |
| {"enable-smart-zoom", flag_descriptions::kSmartZoomName, |
| flag_descriptions::kSmartZoomDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kSmartZoom)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-cros-autocorrect-params-tuning", |
| flag_descriptions::kAutocorrectParamsTuningName, |
| flag_descriptions::kAutocorrectParamsTuningDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAutocorrectParamsTuning)}, |
| {"enable-cros-autocorrect-by-default", |
| flag_descriptions::kAutocorrectByDefaultName, |
| flag_descriptions::kAutocorrectByDefaultDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAutocorrectByDefault)}, |
| {"enable-cros-hindi-inscript-layout", |
| flag_descriptions::kHindiInscriptLayoutName, |
| flag_descriptions::kHindiInscriptLayoutDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHindiInscriptLayout)}, |
| {"enable-cros-ime-assist-multi-word", |
| flag_descriptions::kImeAssistMultiWordName, |
| flag_descriptions::kImeAssistMultiWordDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAssistMultiWord)}, |
| {"enable-cros-ime-system-emoji-picker-jelly-support", |
| flag_descriptions::kImeSystemEmojiPickerJellySupportName, |
| flag_descriptions::kImeSystemEmojiPickerJellySupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kImeSystemEmojiPickerJellySupport)}, |
| {"enable-cros-ime-system-emoji-picker-mojo-search", |
| flag_descriptions::kImeSystemEmojiPickerMojoSearchName, |
| flag_descriptions::kImeSystemEmojiPickerMojoSearchDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kImeSystemEmojiPickerMojoSearch)}, |
| {"enable-cros-ime-system-emoji-picker-variant-grouping", |
| flag_descriptions::kImeSystemEmojiPickerVariantGroupingName, |
| flag_descriptions::kImeSystemEmojiPickerVariantGroupingDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kImeSystemEmojiPickerVariantGrouping)}, |
| {"enable-cros-ime-switch-check-connection-status", |
| flag_descriptions::kImeSwitchCheckConnectionStatusName, |
| flag_descriptions::kImeSwitchCheckConnectionStatusDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kImeSwitchCheckConnectionStatus)}, |
| {"enable-experimental-accessibility-dictation-context-checking", |
| flag_descriptions::kExperimentalAccessibilityDictationContextCheckingName, |
| flag_descriptions:: |
| kExperimentalAccessibilityDictationContextCheckingDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| features::kExperimentalAccessibilityDictationContextChecking)}, |
| {"enable-experimental-accessibility-manifest-v3", |
| flag_descriptions::kExperimentalAccessibilityManifestV3Name, |
| flag_descriptions::kExperimentalAccessibilityManifestV3Description, |
| kOsCrOS, |
| SINGLE_VALUE_TYPE(::switches::kEnableExperimentalAccessibilityManifestV3)}, |
| {"enable-experimental-accessibility-switch-access-text", |
| flag_descriptions::kExperimentalAccessibilitySwitchAccessTextName, |
| flag_descriptions::kExperimentalAccessibilitySwitchAccessTextDescription, |
| kOsCrOS, |
| SINGLE_VALUE_TYPE( |
| ::switches::kEnableExperimentalAccessibilitySwitchAccessText)}, |
| {"enable-system-proxy-for-system-services", |
| flag_descriptions::kSystemProxyForSystemServicesName, |
| flag_descriptions::kSystemProxyForSystemServicesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSystemProxyForSystemServices)}, |
| {"system-shortcut-behavior", flag_descriptions::kSystemShortcutBehaviorName, |
| flag_descriptions::kSystemShortcutBehaviorDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kSystemShortcutBehavior, |
| kSystemShortcutBehaviorVariations, |
| "SystemShortcutBehavior")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-grammar-check", |
| flag_descriptions::kAndroidGrammarCheckName, |
| flag_descriptions::kAndroidGrammarCheckDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(spellcheck::kAndroidGrammarCheck)}, |
| {"enable-android-media-insertion", |
| flag_descriptions::kAndroidMediaInsertionName, |
| flag_descriptions::kAndroidMediaInsertionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidMediaInsertion)}, |
| {"enable-android-spellcheck-native-ui", |
| flag_descriptions::kAndroidSpellcheckNativeUiName, |
| flag_descriptions::kAndroidSpellcheckNativeUiDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAndroidSpellcheckNativeUi)}, |
| {"enable-android-spellcheck-full-api-blink", |
| flag_descriptions::kAndroidSpellcheckFullApiBlinkName, |
| flag_descriptions::kAndroidSpellcheckFullApiBlinkDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAndroidSpellcheckFullApiBlink)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"enable-cros-touch-text-editing-redesign", |
| flag_descriptions::kTouchTextEditingRedesignName, |
| flag_descriptions::kTouchTextEditingRedesignDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kTouchTextEditingRedesign)}, |
| {"enable-web-payments-experimental-features", |
| flag_descriptions::kWebPaymentsExperimentalFeaturesName, |
| flag_descriptions::kWebPaymentsExperimentalFeaturesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(payments::features::kWebPaymentsExperimentalFeatures)}, |
| {"enable-debug-for-store-billing", |
| flag_descriptions::kAppStoreBillingDebugName, |
| flag_descriptions::kAppStoreBillingDebugDescription, kOsAll, |
| FEATURE_VALUE_TYPE(payments::features::kAppStoreBillingDebug)}, |
| {"enable-spc-locale-validation", |
| flag_descriptions::kSPCLocaleValidationName, |
| flag_descriptions::kSPCLocaleValidationDescription, |
| kOsMac | kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::features::kSPCLocaleValidation)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"show-ready-to-pay-debug-info", |
| flag_descriptions::kShowReadyToPayDebugInfoName, |
| flag_descriptions::kShowReadyToPayDebugInfoDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::android::kShowReadyToPayDebugInfo)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"fill-on-account-select", flag_descriptions::kFillOnAccountSelectName, |
| flag_descriptions::kFillOnAccountSelectDescription, kOsAll, |
| FEATURE_VALUE_TYPE(password_manager::features::kFillOnAccountSelect)}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| {"first-run-desktop-choice-screen-refresh", |
| flag_descriptions::kFirstRunDesktopChoiceScreenRefreshName, |
| flag_descriptions::kFirstRunDesktopChoiceScreenRefreshDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kFirstRunDesktopChoiceScreenRefresh)}, |
| {"first-run-desktop-refresh", |
| flag_descriptions::kFirstRunDesktopRefreshName, |
| flag_descriptions::kFirstRunDesktopRefreshDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kFirstRunDesktopRefresh)}, |
| {"first-run-desktop-revamp", flag_descriptions::kFirstRunDesktopRevampName, |
| flag_descriptions::kFirstRunDesktopRevampDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kFirstRunDesktopRevamp)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"arc-aaudio-mmap-low-latency", |
| flag_descriptions::kArcAAudioMMAPLowLatencyName, |
| flag_descriptions::kArcAAudioMMAPLowLatencyDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootArcVmAAudioMMAPLowLatency")}, |
| {kArcEnableAttestationFlag, flag_descriptions::kArcEnableAttestationName, |
| flag_descriptions::kArcEnableAttestationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kEnableArcAttestation)}, |
| {kArcEnableVirtioBlkForDataInternalName, |
| flag_descriptions::kArcEnableVirtioBlkForDataName, |
| flag_descriptions::kArcEnableVirtioBlkForDataDesc, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kEnableVirtioBlkForData)}, |
| {"arc-extend-intent-anr-timeout", |
| flag_descriptions::kArcExtendIntentAnrTimeoutName, |
| flag_descriptions::kArcExtendIntentAnrTimeoutDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kExtendIntentAnrTimeout)}, |
| {"arc-extend-service-anr-timeout", |
| flag_descriptions::kArcExtendServiceAnrTimeoutName, |
| flag_descriptions::kArcExtendServiceAnrTimeoutDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kExtendServiceAnrTimeout)}, |
| {"arc-friendlier-error-dialog", |
| flag_descriptions::kArcFriendlierErrorDialogName, |
| flag_descriptions::kArcFriendlierErrorDialogDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kEnableFriendlierErrorDialog)}, |
| {"arc-native-bridge-toggle", flag_descriptions::kArcNativeBridgeToggleName, |
| flag_descriptions::kArcNativeBridgeToggleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kNativeBridgeToggleFeature)}, |
| {"arc-per-app-language", flag_descriptions::kArcPerAppLanguageName, |
| flag_descriptions::kArcPerAppLanguageDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kPerAppLanguage)}, |
| {"arc-resize-compat", flag_descriptions::kArcResizeCompatName, |
| flag_descriptions::kArcResizeCompatDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kResizeCompat)}, |
| {"arc-unthrottle-on-active-audio-v2", |
| flag_descriptions::kArcUnthrottleOnActiveAudioV2Name, |
| flag_descriptions::kArcUnthrottleOnActiveAudioV2Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kUnthrottleOnActiveAudioV2)}, |
| {"arc-vmm-swap-keyboard-shortcut", |
| flag_descriptions::kArcVmmSwapKBShortcutName, |
| flag_descriptions::kArcVmmSwapKBShortcutDesc, kOsCrOS, |
| FEATURE_VALUE_TYPE(arc::kVmmSwapKeyboardShortcut)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {ui_devtools::switches::kEnableUiDevTools, |
| flag_descriptions::kUiDevToolsName, |
| flag_descriptions::kUiDevToolsDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(ui_devtools::switches::kEnableUiDevTools)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-touchscreen-calibration", |
| flag_descriptions::kTouchscreenCalibrationName, |
| flag_descriptions::kTouchscreenCalibrationDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(ash::switches::kEnableTouchCalibrationSetting)}, |
| {"enable-touchscreen-mapping", flag_descriptions::kTouchscreenMappingName, |
| flag_descriptions::kTouchscreenMappingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableTouchscreenMappingExperience)}, |
| {"force-control-face-ae", flag_descriptions::kForceControlFaceAeName, |
| flag_descriptions::kForceControlFaceAeDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kForceControlFaceAeChoices)}, |
| {"auto-framing-override", flag_descriptions::kAutoFramingOverrideName, |
| flag_descriptions::kAutoFramingOverrideDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kAutoFramingOverrideChoices)}, |
| {"face-retouch-override", flag_descriptions::kFaceRetouchOverrideName, |
| flag_descriptions::kFaceRetouchOverrideDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kFaceRetouchOverrideChoices)}, |
| {"crostini-gpu-support", flag_descriptions::kCrostiniGpuSupportName, |
| flag_descriptions::kCrostiniGpuSupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrostiniGpuSupport)}, |
| {"files-local-image-search", flag_descriptions::kFilesLocalImageSearchName, |
| flag_descriptions::kFilesLocalImageSearchDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFilesLocalImageSearch)}, |
| {"files-materialized-views", flag_descriptions::kFilesMaterializedViewsName, |
| flag_descriptions::kFilesMaterializedViewsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFilesMaterializedViews)}, |
| {"files-single-partition-format", |
| flag_descriptions::kFilesSinglePartitionFormatName, |
| flag_descriptions::kFilesSinglePartitionFormatDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFilesSinglePartitionFormat)}, |
| {"files-trash-auto-cleanup", flag_descriptions::kFilesTrashAutoCleanupName, |
| flag_descriptions::kFilesTrashAutoCleanupDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFilesTrashDrive)}, |
| {"files-trash-drive", flag_descriptions::kFilesTrashDriveName, |
| flag_descriptions::kFilesTrashDriveDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFilesTrashDrive)}, |
| {"file-system-provider-cloud-file-system", |
| flag_descriptions::kFileSystemProviderCloudFileSystemName, |
| flag_descriptions::kFileSystemProviderCloudFileSystemDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| chromeos::features::kFileSystemProviderCloudFileSystem)}, |
| {"file-system-provider-content-cache", |
| flag_descriptions::kFileSystemProviderContentCacheName, |
| flag_descriptions::kFileSystemProviderContentCacheDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kFileSystemProviderContentCache)}, |
| {"spectre-v2-mitigation", flag_descriptions::kSpectreVariant2MitigationName, |
| flag_descriptions::kSpectreVariant2MitigationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(sandbox::policy::features::kSpectreVariant2Mitigation)}, |
| {"upload-office-to-cloud", flag_descriptions::kUploadOfficeToCloudName, |
| flag_descriptions::kUploadOfficeToCloudName, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kUploadOfficeToCloud)}, |
| {"eap-gtc-wifi-authentication", |
| flag_descriptions::kEapGtcWifiAuthenticationName, |
| flag_descriptions::kEapGtcWifiAuthenticationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEapGtcWifiAuthentication)}, |
| {"eche-swa", flag_descriptions::kEcheSWAName, |
| flag_descriptions::kEcheSWADescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWA)}, |
| {"eche-swa-check-android-network-info", |
| flag_descriptions::kEcheSWACheckAndroidNetworkInfoName, |
| flag_descriptions::kEcheSWACheckAndroidNetworkInfoDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWACheckAndroidNetworkInfo)}, |
| {"eche-swa-debug-mode", flag_descriptions::kEcheSWADebugModeName, |
| flag_descriptions::kEcheSWADebugModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWADebugMode)}, |
| {"eche-swa-disable-stun-server", |
| flag_descriptions::kEcheSWADisableStunServerName, |
| flag_descriptions::kEcheSWADisableStunServerDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWADisableStunServer)}, |
| {"eche-swa-measure-latency", flag_descriptions::kEcheSWAMeasureLatencyName, |
| flag_descriptions::kEcheSWAMeasureLatencyDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWAMeasureLatency)}, |
| {"eche-swa-send-start-signaling", |
| flag_descriptions::kEcheSWASendStartSignalingName, |
| flag_descriptions::kEcheSWASendStartSignalingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEcheSWASendStartSignaling)}, |
| {kGlanceablesTimeManagementClassroomStudentViewInternalName, |
| flag_descriptions::kGlanceablesTimeManagementClassroomStudentViewName, |
| flag_descriptions:: |
| kGlanceablesTimeManagementClassroomStudentViewDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| ash::features::kGlanceablesTimeManagementClassroomStudentView)}, |
| {kGlanceablesTimeManagementTasksViewInternalName, |
| flag_descriptions::kGlanceablesTimeManagementTasksViewName, |
| flag_descriptions::kGlanceablesTimeManagementTasksViewDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kGlanceablesTimeManagementTasksView)}, |
| {"vc-dlc-ui", flag_descriptions::kVcDlcUiName, |
| flag_descriptions::kVcDlcUiDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcDlcUi)}, |
| {"vc-studio-look", flag_descriptions::kVcStudioLookName, |
| flag_descriptions::kVcStudioLookDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcStudioLook)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-app-integration-module", |
| flag_descriptions::kAndroidAppIntegrationModuleName, |
| flag_descriptions::kAndroidAppIntegrationModuleDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| segmentation_platform::features::kAndroidAppIntegrationModule, |
| kAndroidAppIntegrationModuleVariations, |
| "AndroidAppIntegrationModule")}, |
| |
| {"android-app-rating-prompt", |
| flag_descriptions::kAndroidAppRatingPromptName, |
| flag_descriptions::kAndroidAppRatingPromptDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidAppRatingPrompt, |
| kAndroidAppRatingPromptVariations, |
| "AndroidAppRatingPrompt")}, |
| |
| {"android-device-signals-disclaimer", |
| flag_descriptions::kAndroidDeviceSignalsDisclaimerName, |
| flag_descriptions::kAndroidDeviceSignalsDisclaimerDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kAndroidDeviceSignalsDisclaimer, |
| kAndroidDeviceSignalsDisclaimerVariations, |
| "AndroidDeviceSignalsDisclaimer")}, |
| |
| {"android-media-picker", flag_descriptions::kAndroidMediaPickerName, |
| flag_descriptions::kAndroidMediaPickerDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(kAndroidMediaPicker)}, |
| |
| {"android-page-info-as-app-menu-item", |
| flag_descriptions::kAndroidPageInfoAsAppMenuItemName, |
| flag_descriptions::kAndroidPageInfoAsAppMenuItemDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidPageInfoAsAppMenuItem)}, |
| |
| {"user-media-screen-capturing", |
| flag_descriptions::kUserMediaScreenCapturingName, |
| flag_descriptions::kUserMediaScreenCapturingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kUserMediaScreenCapturing)}, |
| |
| {"android-app-integration-multi-data-source", |
| flag_descriptions::kAndroidAppIntegrationMultiDataSourceName, |
| flag_descriptions::kAndroidAppIntegrationMultiDataSourceDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kAndroidAppIntegrationMultiDataSource, |
| kAndroidAppIntegrationMultiDataSourceVariations, |
| "AndroidAppIntegrationMultiDataSource")}, |
| |
| {"android-history-clustering", |
| flag_descriptions::kAndroidHistoryClusteringName, |
| flag_descriptions::kAndroidHistoryClusteringDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidHistoryClustering)}, |
| |
| {"new-tab-page-customization-v2", |
| flag_descriptions::kNewTabPageCustomizationV2Name, |
| flag_descriptions::kNewTabPageCustomizationV2Description, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| segmentation_platform::features::kNewTabPageCustomizationV2, |
| kNewTabPageCustomizationV2Variations, |
| "NewTabPageCustomizationV2")}, |
| |
| {"auxiliary-search-donation", |
| flag_descriptions::kAuxiliarySearchDonationName, |
| flag_descriptions::kAuxiliarySearchDonationDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAuxiliarySearchDonation, |
| kAuxiliarySearchDonationVariations, |
| "AuxiliarySearchDonation")}, |
| |
| {"auxiliary-search-history-donation", |
| flag_descriptions::kAuxiliarySearchHistoryDonationName, |
| flag_descriptions::kAuxiliarySearchHistoryDonationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAuxiliarySearchHistoryDonation)}, |
| |
| {"change-unfocused-priority", |
| flag_descriptions::kChangeUnfocusedPriorityName, |
| flag_descriptions::kChangeUnfocusedPriorityDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kChangeUnfocusedPriority)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"most-visited-tiles-new-scoring", |
| flag_descriptions::kMostVisitedTilesNewScoringName, |
| flag_descriptions::kMostVisitedTilesNewScoringDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(history::kMostVisitedTilesNewScoring, |
| kMostVisitedTilesNewScoringVariations, |
| "MostVisitedTilesNewScoring")}, |
| |
| {"omnibox-local-history-zero-suggest-beyond-ntp", |
| flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPName, |
| flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPDescription, |
| kOsAll, FEATURE_VALUE_TYPE(omnibox::kLocalHistoryZeroSuggestBeyondNTP)}, |
| |
| {"omnibox-zero-suggest-prefetch-debouncing", |
| flag_descriptions::kOmniboxZeroSuggestPrefetchDebouncingName, |
| flag_descriptions::kOmniboxZeroSuggestPrefetchDebouncingDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kZeroSuggestPrefetchDebouncing, |
| kOmniboxZeroSuggestPrefetchDebouncingVariations, |
| "OmniboxZeroSuggestPrefetchDebouncing")}, |
| |
| {"omnibox-zero-suggest-prefetching-on-srp", |
| flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPName, |
| flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnSRP)}, |
| |
| {"omnibox-zero-suggest-prefetching-on-web", |
| flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebName, |
| flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnWeb)}, |
| |
| {"omnibox-ml-log-url-scoring-signals", |
| flag_descriptions::kOmniboxMlLogUrlScoringSignalsName, |
| flag_descriptions::kOmniboxMlLogUrlScoringSignalsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kLogUrlScoringSignals)}, |
| {"omnibox-ml-url-piecewise-mapped-search-blending", |
| flag_descriptions::kOmniboxMlUrlPiecewiseMappedSearchBlendingName, |
| flag_descriptions::kOmniboxMlUrlPiecewiseMappedSearchBlendingDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kMlUrlPiecewiseMappedSearchBlending, |
| kMlUrlPiecewiseMappedSearchBlendingVariations, |
| "MlUrlPiecewiseMappedSearchBlending")}, |
| {"omnibox-ml-url-score-caching", |
| flag_descriptions::kOmniboxMlUrlScoreCachingName, |
| flag_descriptions::kOmniboxMlUrlScoreCachingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kMlUrlScoreCaching)}, |
| {"omnibox-ml-url-scoring", flag_descriptions::kOmniboxMlUrlScoringName, |
| flag_descriptions::kOmniboxMlUrlScoringDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMlUrlScoring, |
| kOmniboxMlUrlScoringVariations, |
| "MlUrlScoring")}, |
| {"omnibox-ml-url-search-blending", |
| flag_descriptions::kOmniboxMlUrlSearchBlendingName, |
| flag_descriptions::kOmniboxMlUrlSearchBlendingDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMlUrlSearchBlending, |
| kMlUrlSearchBlendingVariations, |
| "MlUrlScoring")}, |
| {"omnibox-ml-url-scoring-model", |
| flag_descriptions::kOmniboxMlUrlScoringModelName, |
| flag_descriptions::kOmniboxMlUrlScoringModelDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kUrlScoringModel, |
| kUrlScoringModelVariations, |
| "MlUrlScoring")}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) |
| {"contextual-search-box-uses-contextual-search-provider", |
| flag_descriptions::kContextualSearchBoxUsesContextualSearchProviderName, |
| flag_descriptions:: |
| kContextualSearchBoxUsesContextualSearchProviderDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::ContextualSearch:: |
| kContextualSearchBoxUsesContextualSearchProvider)}, |
| |
| {"contextual-search-open-lens-action-uses-thumbnail", |
| flag_descriptions::kContextualSearchOpenLensActionUsesThumbnailName, |
| flag_descriptions::kContextualSearchOpenLensActionUsesThumbnailDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::ContextualSearch:: |
| kContextualSearchOpenLensActionUsesThumbnail)}, |
| |
| {"contextual-suggestions-ablate-others-when-present", |
| flag_descriptions::kContextualSuggestionsAblateOthersWhenPresentName, |
| flag_descriptions:: |
| kContextualSuggestionsAblateOthersWhenPresentDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::ContextualSearch:: |
| kContextualSuggestionsAblateOthersWhenPresent, |
| kContextualSuggestionsAblateOthersWhenPresentVariations, |
| "ContextualSuggestionsAblateOthersWhenPresent")}, |
| |
| {"omnibox-contextual-search-on-focus-suggestions", |
| flag_descriptions::kOmniboxContextualSearchOnFocusSuggestionsName, |
| flag_descriptions::kOmniboxContextualSearchOnFocusSuggestionsDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::ContextualSearch:: |
| kOmniboxContextualSearchOnFocusSuggestions, |
| kOmniboxContextualSearchOnFocusSuggestionsVariations, |
| "OmniboxContextualSearchOnFocusSuggestions")}, |
| |
| {"searchbox-embedded-permission", |
| flag_descriptions::kEmbeddedPermissionEnabledName, |
| flag_descriptions::kEmbeddedPermissionEnabledDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::kEmbeddedPermissionEnabled)}, |
| |
| {"lens-overlay-omnibox-entry-point", |
| flag_descriptions::kLensOverlayOmniboxEntryPointName, |
| flag_descriptions::kLensOverlayOmniboxEntryPointDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayOmniboxEntryPoint)}, |
| |
| {"hide-aim-omnibox-entrypoint-on-user-input", |
| flag_descriptions::kHideAimOmniboxEntrypointOnUserInputName, |
| flag_descriptions::kHideAimOmniboxEntrypointOnUserInputDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kHideAimEntrypointOnUserInput)}, |
| |
| {"omnibox-allow-ai-mode-matches", |
| flag_descriptions::kOmniboxAllowAiModeMatchesName, |
| flag_descriptions::kOmniboxAllowAiModeMatchesDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::AiMode::kAllowAiModeMatches)}, |
| |
| {"omnibox-force-allowed-to-be-default", |
| flag_descriptions::kOmniboxForceAllowedToBeDefaultName, |
| flag_descriptions::kOmniboxForceAllowedToBeDefaultDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::ForceAllowedToBeDefault:: |
| kForceAllowedToBeDefault)}, |
| {"omnibox-rich-autocompletion-promising", |
| flag_descriptions::kOmniboxRichAutocompletionPromisingName, |
| flag_descriptions::kOmniboxRichAutocompletionPromisingDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kRichAutocompletion, |
| kOmniboxRichAutocompletionPromisingVariations, |
| "OmniboxBundledExperimentV1")}, |
| {"omnibox-starter-pack-expansion", |
| flag_descriptions::kOmniboxStarterPackExpansionName, |
| flag_descriptions::kOmniboxStarterPackExpansionDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kStarterPackExpansion, |
| kOmniboxStarterPackExpansionVariations, |
| "StarterPackExpansion")}, |
| |
| {"omnibox-starter-pack-iph", flag_descriptions::kOmniboxStarterPackIPHName, |
| flag_descriptions::kOmniboxStarterPackIPHDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kStarterPackIPH)}, |
| |
| {"omnibox-focus-triggers-web-and-srp-zero-suggest", |
| flag_descriptions::kOmniboxFocusTriggersWebAndSRPZeroSuggestName, |
| flag_descriptions::kOmniboxFocusTriggersWebAndSRPZeroSuggestDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kFocusTriggersWebAndSRPZeroSuggest)}, |
| |
| {"omnibox-show-popup-on-mouse-released", |
| flag_descriptions::kOmniboxShowPopupOnMouseReleasedName, |
| flag_descriptions::kOmniboxShowPopupOnMouseReleasedDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kShowPopupOnMouseReleased)}, |
| |
| {"omnibox-hide-suggestion-group-headers", |
| flag_descriptions::kOmniboxHideSuggestionGroupHeadersName, |
| flag_descriptions::kOmniboxHideSuggestionGroupHeadersDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kHideSuggestionGroupHeaders)}, |
| |
| {"omnibox-hide-contextual-group-headers", |
| flag_descriptions::kOmniboxHideContextualGroupHeadersName, |
| flag_descriptions::kOmniboxHideContextualGroupHeadersDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kHideContextualGroupHeaders)}, |
| |
| {"omnibox-url-suggestions-on-focus", |
| flag_descriptions::kOmniboxUrlSuggestionsOnFocus, |
| flag_descriptions::kOmniboxUrlSuggestionsOnFocusDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::OmniboxUrlSuggestionsOnFocus:: |
| kOmniboxUrlSuggestionsOnFocus, |
| kOmniboxUrlSuggestionsOnFocusVariations, |
| "OmniboxUrlSuggestionsOnFocus")}, |
| |
| {"omnibox-zps-suggestion-limit", |
| flag_descriptions::kOmniboxZpsSuggestionLimit, |
| flag_descriptions::kOmniboxZpsSuggestionLimitDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::OmniboxZpsSuggestionLimit:: |
| kOmniboxZpsSuggestionLimit, |
| kOmniboxZpsSuggestionLimitVariations, |
| "OmniboxZpsSuggestionLimit")}, |
| |
| {"omnibox-enterprise-search-aggregator", |
| flag_descriptions::kOmniboxSearchAggregatorName, |
| flag_descriptions::kOmniboxSearchAggregatorDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::SearchAggregatorProvider:: |
| kSearchAggregatorProvider)}, |
| |
| {"omnibox-adjust-indentation", |
| flag_descriptions::kOmniboxAdjustIndentationName, |
| flag_descriptions::kOmniboxAdjustIndentationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| omnibox_feature_configs::AdjustOmniboxIndent::kAdjustOmniboxIndent)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) |
| |
| {"omnibox-contextual-suggestions", |
| flag_descriptions::kOmniboxContextualSuggestionsName, |
| flag_descriptions::kOmniboxContextualSuggestionsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::ContextualSearch:: |
| kOmniboxContextualSuggestions)}, |
| |
| {"omnibox-toolbelt", flag_descriptions::kOmniboxToolbeltName, |
| flag_descriptions::kOmniboxToolbeltDescription, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::Toolbelt::kOmniboxToolbelt, |
| kOmniboxToolbeltVariations, |
| "OmniboxToolbelt")}, |
| |
| {"aim-server-eligibility", |
| flag_descriptions::kOmniboxAimServerEligibilityName, |
| flag_descriptions::kOmniboxAimServerEligibilityDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kAimServerEligibilityEnabled)}, |
| |
| {"omnibox-zero-suggest-prefetching-for-composebox", |
| flag_descriptions::kZeroSuggestPrefetchingForComposeboxName, |
| flag_descriptions::kZeroSuggestPrefetchingForComposeboxDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingForComposebox)}, |
| |
| {"aim-server-eligibility-include-client-locale", |
| flag_descriptions::kAimServerEligibilityIncludeClientLocaleName, |
| flag_descriptions::kAimServerEligibilityIncludeClientLocaleDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kAimServerEligibilityIncludeClientLocale, |
| kAimServerEligibilityIncludeClientLocaleVariations, |
| "AimServerEligibilityIncludeClientLocale")}, |
| |
| {"aim-use-pec-api", flag_descriptions::kAimUsePecApiName, |
| flag_descriptions::kAimUsePecApiDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kAimUsePecApi)}, |
| |
| {"aim-eligibility-component-extension", |
| flag_descriptions::kAimEligibilityComponentExtensionName, |
| flag_descriptions::kAimEligibilityComponentExtensionDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kAimEligibilityComponentExtension)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"omnibox-asynchronous-view-inflation", |
| flag_descriptions::kOmniboxAsyncViewInflationName, |
| flag_descriptions::kOmniboxAsyncViewInflationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxAsyncViewInflation)}, |
| |
| {"omnibox-prefetch-selected-suggestions-omt-android", |
| flag_descriptions::kOmniboxPrefetchSelectedSuggestionsOmtAndroidName, |
| flag_descriptions:: |
| kOmniboxPrefetchSelectedSuggestionsOmtAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| omnibox::kOmniboxPrefetchSelectedSuggestionsOmtAndroid)}, |
| |
| {"omnibox-debounce-keyboard-visibility", |
| flag_descriptions::kOmniboxDebounceKeyboardVisibilityName, |
| flag_descriptions::kOmniboxDebounceKeyboardVisibilityDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxDebounceKeyboardVisibility)}, |
| |
| {"omnibox-fusebox-async-inflation", |
| flag_descriptions::kOmniboxFuseboxAsyncInflationName, |
| flag_descriptions::kOmniboxFuseboxAsyncInflationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxFuseboxAsyncInflation)}, |
| |
| {"omnibox-multimodal-input", flag_descriptions::kOmniboxMultimodalInputName, |
| flag_descriptions::kOmniboxMultimodalInputDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxMultimodalInput, |
| kOmniboxMultimodalInputVariants, |
| "OmniboxMultiModalInput")}, |
| |
| {"omnibox-aim-image-downscaling", |
| flag_descriptions::kOmniboxAimImageDownscalingName, |
| flag_descriptions::kOmniboxAimImageDownscalingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxAimImageDownscaling)}, |
| |
| {"android-desktop-aim-gate", flag_descriptions::kAndroidDesktopAimGateName, |
| flag_descriptions::kAndroidDesktopAimGateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kAndroidDesktopAimGate)}, |
| |
| {"omnibox-disable-tabs-for-canvas", |
| flag_descriptions::kOmniboxDisableTabsForCanvasName, |
| flag_descriptions::kOmniboxDisableTabsForCanvasDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxDisableTabsForCanvas)}, |
| |
| {"omnibox-aim-suppress-verbatim-match", |
| flag_descriptions::kAIMSuppressVerbatimMatchName, |
| flag_descriptions::kAIMSuppressVerbatimMatchDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kAIMSuppressVerbatimMatch)}, |
| |
| {"omnibox-site-search", flag_descriptions::kOmniboxSiteSearchName, |
| flag_descriptions::kOmniboxSiteSearchDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxSiteSearch)}, |
| |
| {"omnibox-diagnostics", flag_descriptions::kOmniboxDiagnosticsName, |
| flag_descriptions::kOmniboxDiagnosticsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kDiagnostics, |
| kOmniboxDiagnosticsAndroidVaiants, |
| "Diagnostics")}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| #if BUILDFLAG(IS_WIN) |
| {"omnibox-on-device-head-suggestions", |
| flag_descriptions::kOmniboxOnDeviceHeadSuggestionsName, |
| flag_descriptions::kOmniboxOnDeviceHeadSuggestionsDescription, kOsWin, |
| FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderNonIncognito)}, |
| {"omnibox-on-device-head-suggestions-incognito", |
| flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoName, |
| flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoDescription, |
| kOsWin, FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderIncognito)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| {"omnibox-on-device-tail-suggestions", |
| flag_descriptions::kOmniboxOnDeviceTailSuggestionsName, |
| flag_descriptions::kOmniboxOnDeviceTailSuggestionsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kOnDeviceTailModel)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"scheduler-configuration", flag_descriptions::kSchedulerConfigurationName, |
| flag_descriptions::kSchedulerConfigurationDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kSchedulerConfigurationChoices)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-command-line-on-non-rooted-devices", |
| flag_descriptions::kEnableCommandLineOnNonRootedName, |
| flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCommandLineOnNonRooted)}, |
| {"enable-escape-handling-for-secondary-activities", |
| flag_descriptions::kEnableEscapeHandlingForSecondaryActivitiesName, |
| flag_descriptions::kEnableEscapeHandlingForSecondaryActivitiesDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kEnableEscapeHandlingForSecondaryActivities)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"force-color-profile", flag_descriptions::kForceColorProfileName, |
| flag_descriptions::kForceColorProfileDescription, kOsAll, |
| MULTI_VALUE_TYPE(kForceColorProfileChoices)}, |
| |
| {"force-drive-disclaimer-accepted", |
| flag_descriptions::kForceDriveDisclaimerAcceptedName, |
| flag_descriptions::kForceDriveDisclaimerAcceptedDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kForceDriveDisclaimerAccepted)}, |
| |
| {"forced-colors", flag_descriptions::kForcedColorsName, |
| flag_descriptions::kForcedColorsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kForcedColors)}, |
| |
| {"hdr-agtm", flag_descriptions::kHdrAgtmName, |
| flag_descriptions::kHdrAgtmDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kHdrAgtm)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"notebooks", flag_descriptions::kNotebooksName, |
| flag_descriptions::kNotebooksDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(notebooks::features::kNotebooks)}, |
| #endif |
| |
| {"ntp-searchbox-voice-search-coherence", |
| flag_descriptions::kVoiceSearchCoherenceSearchboxName, |
| flag_descriptions::kVoiceSearchCoherenceSearchboxDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kVoiceSearchCoherenceSearchbox, |
| kVoiceSearchCoherenceSearchboxVariations, |
| "VoiceSearchCoherenceSearchboxVariations")}, |
| |
| {"omnibox-ui-max-autocomplete-matches", |
| flag_descriptions::kOmniboxUIMaxAutocompleteMatchesName, |
| flag_descriptions::kOmniboxUIMaxAutocompleteMatchesDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kUIExperimentMaxAutocompleteMatches, |
| kOmniboxUIMaxAutocompleteMatchesVariations, |
| "OmniboxBundledExperimentV1")}, |
| |
| {"omnibox-mia-zps", flag_descriptions::kOmniboxMiaZps, |
| flag_descriptions::kOmniboxMiaZpsDescription, kOsAll, |
| #if BUILDFLAG(IS_ANDROID) |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox_feature_configs::MiaZPS::kOmniboxMiaZPS, |
| kOmniboxMiaZpsVariations, |
| "OmniboxMiaZpsVariations") |
| #else |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::MiaZPS::kOmniboxMiaZPS) |
| #endif |
| }, |
| |
| {"omnibox-dynamic-max-autocomplete", |
| flag_descriptions::kOmniboxDynamicMaxAutocompleteName, |
| flag_descriptions::kOmniboxDynamicMaxAutocompleteDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kDynamicMaxAutocomplete, |
| kOmniboxDynamicMaxAutocompleteVariations, |
| "OmniboxBundledExperimentV1")}, |
| |
| {"omnibox-grouping-framework-non-zps", |
| flag_descriptions::kOmniboxGroupingFrameworkNonZPSName, |
| flag_descriptions::kOmniboxGroupingFrameworkDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::kGroupingFrameworkForNonZPS)}, |
| |
| {"omnibox-calc-provider", flag_descriptions::kOmniboxCalcProviderName, |
| flag_descriptions::kOmniboxCalcProviderDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox_feature_configs::CalcProvider::kCalcProvider)}, |
| |
| {"optimization-guide-debug-logs", |
| flag_descriptions::kOptimizationGuideDebugLogsName, |
| flag_descriptions::kOptimizationGuideDebugLogsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(optimization_guide::switches::kDebugLoggingEnabled)}, |
| |
| {"organic-repeatable-queries", |
| flag_descriptions::kOrganicRepeatableQueriesName, |
| flag_descriptions::kOrganicRepeatableQueriesDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(history::kOrganicRepeatableQueries, |
| kOrganicRepeatableQueriesVariations, |
| "OrganicRepeatableQueries")}, |
| |
| {"omnibox-num-ntp-zps-recent-searches", |
| flag_descriptions::kOmniboxNumNtpZpsRecentSearchesName, |
| flag_descriptions::kOmniboxNumNtpZpsRecentSearchesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumNtpZpsRecentSearches, |
| kNumNtpZpsRecentSearches, |
| "PowerTools")}, |
| {"omnibox-num-ntp-zps-trending-searches", |
| flag_descriptions::kOmniboxNumNtpZpsTrendingSearchesName, |
| flag_descriptions::kOmniboxNumNtpZpsTrendingSearchesDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumNtpZpsTrendingSearches, |
| kNumNtpZpsTrendingSearches, |
| "PowerTools")}, |
| {"omnibox-num-web-zps-recent-searches", |
| flag_descriptions::kOmniboxNumWebZpsRecentSearchesName, |
| flag_descriptions::kOmniboxNumWebZpsRecentSearchesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumWebZpsRecentSearches, |
| kNumWebZpsRecentSearches, |
| "PowerTools")}, |
| {"omnibox-num-web-zps-related-searches", |
| flag_descriptions::kOmniboxNumWebZpsRelatedSearchesName, |
| flag_descriptions::kOmniboxNumWebZpsRelatedSearchesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumWebZpsRelatedSearches, |
| kNumWebZpsRelatedSearches, |
| "PowerTools")}, |
| {"omnibox-num-web-zps-most-visited-urls", |
| flag_descriptions::kOmniboxNumWebZpsMostVisitedUrlsName, |
| flag_descriptions::kOmniboxNumWebZpsMostVisitedUrlsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumWebZpsMostVisitedUrls, |
| kNumWebZpsMostVisitedUrls, |
| "PowerTools")}, |
| {"omnibox-num-srp-zps-recent-searches", |
| flag_descriptions::kOmniboxNumSrpZpsRecentSearchesName, |
| flag_descriptions::kOmniboxNumSrpZpsRecentSearchesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumSrpZpsRecentSearches, |
| kNumSrpZpsRecentSearches, |
| "PowerTools")}, |
| {"omnibox-num-srp-zps-related-searches", |
| flag_descriptions::kOmniboxNumSrpZpsRelatedSearchesName, |
| flag_descriptions::kOmniboxNumSrpZpsRelatedSearchesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kNumSrpZpsRelatedSearches, |
| kNumSrpZpsRelatedSearches, |
| "PowerTools")}, |
| |
| {"composebox-voice-search-coherence", |
| flag_descriptions::kVoiceSearchCoherenceComposeboxName, |
| flag_descriptions::kVoiceSearchCoherenceComposeboxDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::kVoiceSearchCoherenceComposeboxes, |
| kVoiceSearchCoherenceComposeboxVariations, |
| "VoiceSearchCoherenceComposeboxVariations")}, |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) |
| {"history-embeddings", flag_descriptions::kHistoryEmbeddingsName, |
| flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(history_embeddings::kHistoryEmbeddings)}, |
| {"history-embeddings-answers", |
| flag_descriptions::kHistoryEmbeddingsAnswersName, |
| flag_descriptions::kHistoryEmbeddingsAnswersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(history_embeddings::kHistoryEmbeddingsAnswers)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_WIN) |
| |
| {"history-journeys", flag_descriptions::kJourneysName, |
| flag_descriptions::kJourneysDescription, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(history_clusters::internal::kJourneys, |
| kJourneysVariations, |
| "HistoryJourneys")}, |
| |
| {"annotated-page-content-extraction", |
| flag_descriptions::kAnnotatedPageContentExtractionName, |
| flag_descriptions::kAnnotatedPageContentExtractionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| page_content_annotations::features::kAnnotatedPageContentExtraction)}, |
| |
| {"extract-related-searches-from-prefetched-zps-response", |
| flag_descriptions::kExtractRelatedSearchesFromPrefetchedZPSResponseName, |
| flag_descriptions:: |
| kExtractRelatedSearchesFromPrefetchedZPSResponseDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(page_content_annotations::features:: |
| kExtractRelatedSearchesFromPrefetchedZPSResponse)}, |
| |
| {"page-actions-elevated-toolbar", |
| flag_descriptions::kPageActionsElevatedToolbarName, |
| flag_descriptions::kPageActionsElevatedToolbarDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kPageActionsElevatedToolbar)}, |
| {"page-content-cache", flag_descriptions::kPageContentCacheName, |
| flag_descriptions::kPageContentCacheDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(page_content_annotations::features::kPageContentCache)}, |
| |
| {"mbi-mode", flag_descriptions::kMBIModeName, |
| flag_descriptions::kMBIModeDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kMBIMode, |
| kMBIModeVariations, |
| "MBIMode")}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| |
| {"tab-groups-focusing", flag_descriptions::kTabGroupsFocusingName, |
| flag_descriptions::kTabGroupsFocusingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kTabGroupsFocusing)}, |
| |
| {"tab-group-ribbon", flag_descriptions::kTabGroupRibbonName, |
| flag_descriptions::kTabGroupRibbonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kTabGroupRibbon)}, |
| |
| {"tab-strip-unification", flag_descriptions::kTabStripUnificationName, |
| flag_descriptions::kTabStripUnificationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(tabs::kTabStripUnification)}, |
| |
| {"new-horizontal-pinned-tab-styling", |
| flag_descriptions::kNewHorizontalPinnedTabStylingName, |
| flag_descriptions::kNewHorizontalPinnedTabStylingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(tabs::kNewHorizontalPinnedTabStyling)}, |
| |
| {"vertical-tabs-expand-on-hover", |
| flag_descriptions::kVerticalTabsExpandOnHoverName, |
| flag_descriptions::kVerticalTabsExpandOnHoverDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(tabs::kVerticalTabsExpandOnHover, |
| kVerticalTabsExpandOnHoverVariations, |
| "VerticalTabsExpandOnHover")}, |
| |
| {"side-panel-flyover-animation", |
| flag_descriptions::kSidePanelFlyoverAnimationName, |
| flag_descriptions::kSidePanelFlyoverAnimationDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kSidePanelFlyoverAnimation, |
| kSidePanelFlyoverAnimationVariations, |
| "SidePanelFlyoverAnimation")}, |
| |
| {"use-default-deadline-when-animating-bounds", |
| flag_descriptions::kUseDefaultDeadlineWhenAnimatingBoundsName, |
| flag_descriptions::kUseDefaultDeadlineWhenAnimatingBoundsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kUseDefaultDeadlineWhenAnimatingBounds)}, |
| |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"tab-storage-sqlite-prototype", |
| flag_descriptions::kTabStorageSqlitePrototypeName, |
| flag_descriptions::kTabStorageSqlitePrototypeDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabStorageSqlitePrototype, |
| kTabStorageSqlitePrototypeVariations, |
| "TabStorageSqlitePrototype")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"by-date-history-in-side-panel", |
| flag_descriptions::kByDateHistoryInSidePanelName, |
| flag_descriptions::kByDateHistoryInSidePanelDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kByDateHistoryInSidePanel)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_MAC) |
| {"ca-display-link-in-browser", |
| flag_descriptions::kCADisplayLinkInBrowserName, |
| flag_descriptions::kCADisplayLinkInBrowserDescription, kOsMac, |
| FEATURE_VALUE_TYPE(display::features::kCADisplayLinkInBrowser)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-share-custom-actions-in-cct", |
| flag_descriptions::kShareCustomActionsInCCTName, |
| flag_descriptions::kShareCustomActionsInCCTDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kShareCustomActionsInCCT)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"shopping-list", commerce::flag_descriptions::kShoppingListName, |
| commerce::flag_descriptions::kShoppingListDescription, |
| kOsAndroid | kOsDesktop, FEATURE_VALUE_TYPE(commerce::kShoppingList)}, |
| |
| {"shopping-alternate-server", |
| commerce::flag_descriptions::kShoppingAlternateServerName, |
| commerce::flag_descriptions::kShoppingAlternateServerDescription, |
| kOsAndroid | kOsDesktop, |
| FEATURE_VALUE_TYPE(commerce::kShoppingAlternateServer)}, |
| |
| {"price-tracking-subscription-service-locale-key", |
| commerce::flag_descriptions:: |
| kPriceTrackingSubscriptionServiceLocaleKeyName, |
| commerce::flag_descriptions:: |
| kPriceTrackingSubscriptionServiceLocaleKeyDescription, |
| kOsAndroid | kOsDesktop, |
| FEATURE_VALUE_TYPE(commerce::kPriceTrackingSubscriptionServiceLocaleKey)}, |
| |
| {"composebox-drive-context-menu-option", |
| flag_descriptions::kComposeboxDriveContextMenuOptionName, |
| flag_descriptions::kComposeboxDriveContextMenuOptionDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxDriveContextMenuOption)}, |
| |
| {"composebox-drive-context-menu-option-disclaimer", |
| flag_descriptions::kComposeboxDriveContextMenuOptionDisclaimerName, |
| flag_descriptions::kComposeboxDriveContextMenuOptionDisclaimerDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxDriveContextMenuOptionDisclaimer)}, |
| |
| {"composebox-drive-context-menu-option-signin-promo", |
| flag_descriptions::kComposeboxDriveContextMenuOptionSigninPromoName, |
| flag_descriptions::kComposeboxDriveContextMenuOptionSigninPromoDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxDriveContextMenuOptionSigninPromo)}, |
| |
| {"composebox-uses-chrome-compose-client", |
| flag_descriptions::kNtpComposeboxUsesChromeComposeClientName, |
| flag_descriptions::kNtpComposeboxUsesChromeComposeClientDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxUsesChromeComposeClient)}, |
| |
| {"composebox-rich-image-suggestions", |
| flag_descriptions::kComposeboxRichImageSuggestionsName, |
| flag_descriptions::kComposeboxRichImageSuggestionsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxRichImageSuggestions)}, |
| |
| {"composebox-skills-contextual-tasks", |
| flag_descriptions::kComposeboxSkillsContextualTasksName, |
| flag_descriptions::kComposeboxSkillsContextualTasksDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxSkillsContextualTasks)}, |
| |
| {"composebox-skills-ntp", flag_descriptions::kComposeboxSkillsNtpName, |
| flag_descriptions::kComposeboxSkillsNtpDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxSkillsNtp)}, |
| |
| {"composebox-skills-omnibox-everywhere", |
| flag_descriptions::kComposeboxSkillsOmniboxEverywhereName, |
| flag_descriptions::kComposeboxSkillsOmniboxEverywhereDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxSkillsOmniboxEverywhere)}, |
| |
| {"composebox-skills-omnibox-popup", |
| flag_descriptions::kComposeboxSkillsOmniboxPopupName, |
| flag_descriptions::kComposeboxSkillsOmniboxPopupDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kComposeboxSkillsOmniboxPopup)}, |
| |
| {"context-management-in-composebox", |
| flag_descriptions::kContextManagementInComposeboxName, |
| flag_descriptions::kContextManagementInComposeboxDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kContextManagementInComposebox, |
| kContextManagementInComposeboxVariations, |
| "ContextManagementInComposeboxVariations")}, |
| |
| {"context-management-in-omnibox", |
| flag_descriptions::kContextManagementInOmniboxName, |
| flag_descriptions::kContextManagementInOmniboxDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kContextManagementInOmnibox)}, |
| |
| {"context-menu-tool-tips", flag_descriptions::kContextMenuToolTipsName, |
| flag_descriptions::kContextMenuToolTipsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kContextMenuToolTips)}, |
| |
| {"tab-favicon-chips-to-coins", |
| flag_descriptions::kTabFaviconChipsToCoinsName, |
| flag_descriptions::kTabFaviconChipsToCoinsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kTabFaviconChipsToCoins)}, |
| |
| {"ntp-composebox", flag_descriptions::kNtpComposeboxName, |
| flag_descriptions::kNtpComposeboxDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(ntp_composebox::kNtpComposebox)}, |
| |
| {"ntp-realbox-next", flag_descriptions::kNtpRealboxNextName, |
| flag_descriptions::kNtpRealboxNextDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(ntp_realbox::kNtpRealboxNext)}, |
| |
| {"enable-realbox-virtual-focus", |
| flag_descriptions::kRealboxVirtualFocusNavigationName, |
| flag_descriptions::kRealboxVirtualFocusNavigationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kRealboxVirtualFocusNavigation)}, |
| |
| {"enable-omnibox-popup-virtual-focus", |
| flag_descriptions::kOmniboxPopupVirtualFocusNavigationName, |
| flag_descriptions::kOmniboxPopupVirtualFocusNavigationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kOmniboxPopupVirtualFocusNavigation)}, |
| |
| {"enable-lens-overlay-virtual-focus", |
| flag_descriptions::kLensOverlayVirtualFocusNavigationName, |
| flag_descriptions::kLensOverlayVirtualFocusNavigationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kLensOverlayVirtualFocusNavigation)}, |
| |
| {"enable-omnibox-everywhere-virtual-focus", |
| flag_descriptions::kOmniboxEverywhereVirtualFocusNavigationName, |
| flag_descriptions::kOmniboxEverywhereVirtualFocusNavigationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kOmniboxEverywhereVirtualFocusNavigation)}, |
| |
| {"enable-webui-browser-virtual-focus", |
| flag_descriptions::kWebuiBrowserVirtualFocusNavigationName, |
| flag_descriptions::kWebuiBrowserVirtualFocusNavigationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebuiBrowserVirtualFocusNavigation)}, |
| |
| {"ntp-next-features", flag_descriptions::kNtpNextFeaturesName, |
| flag_descriptions::kNtpNextFeaturesDescription, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpNextFeatures, |
| kNtpNextVariations, |
| "NtpNextFeatures")}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"chrome-dark-neutrals-26", flag_descriptions::kChromeDarkNeutrals26Name, |
| flag_descriptions::kChromeDarkNeutrals26Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kChromeDarkNeutrals26)}, |
| |
| {"ntp-alpha-background-collections", |
| flag_descriptions::kNtpAlphaBackgroundCollectionsName, |
| flag_descriptions::kNtpAlphaBackgroundCollectionsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpAlphaBackgroundCollections)}, |
| |
| {"ntp-background-image-error-detection", |
| flag_descriptions::kNtpBackgroundImageErrorDetectionName, |
| flag_descriptions::kNtpBackgroundImageErrorDetectionDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpBackgroundImageErrorDetection)}, |
| |
| {"ntp-calendar-module", flag_descriptions::kNtpCalendarModuleName, |
| flag_descriptions::kNtpCalendarModuleDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpCalendarModule, |
| kNtpCalendarModuleVariations, |
| "DesktopNtpModules")}, |
| |
| {"ntp-realbox-cycling-placeholders", |
| flag_descriptions::kNtpRealboxCyclingPlaceholdersName, |
| flag_descriptions::kNtpRealboxCyclingPlaceholdersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_realbox::kNtpRealboxCyclingPlaceholders)}, |
| |
| {"iph-desktop-realbox-contextual-search", |
| flag_descriptions::kIPHDesktopRealboxContextualSearchFeatureName, |
| flag_descriptions::kIPHDesktopRealboxContextualSearchFeatureDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| feature_engagement::kIPHDesktopRealboxContextualSearchFeature)}, |
| |
| {"context-menu-animation-limiting", |
| flag_descriptions::kContextMenuAnimationLimitingName, |
| flag_descriptions::kContextMenuAnimationLimitingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kContextMenuAnimationLimiting)}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"ntp-customize-chrome-auto-open", |
| flag_descriptions::kNtpCustomizeChromeAutoOpenName, |
| flag_descriptions::kNtpCustomizeChromeAutoOpenDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpCustomizeChromeAutoOpen, |
| kNtpCustomizeChromeAutoOpenVariations, |
| "NtpCustomizeChromeAutoOpen")}, |
| #endif |
| |
| {"ntp-drive-module", flag_descriptions::kNtpDriveModuleName, |
| flag_descriptions::kNtpDriveModuleDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpDriveModule, |
| kNtpDriveModuleVariations, |
| "DesktopNtpModules")}, |
| |
| {"ntp-drive-module-segmentation", |
| flag_descriptions::kNtpDriveModuleSegmentationName, |
| flag_descriptions::kNtpDriveModuleSegmentationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpDriveModuleSegmentation)}, |
| |
| #if !defined(OFFICIAL_BUILD) |
| {"ntp-dummy-modules", flag_descriptions::kNtpDummyModulesName, |
| flag_descriptions::kNtpDummyModulesDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpDummyModules)}, |
| #endif |
| |
| {"ntp-feature-optimization-module-removal", |
| flag_descriptions::kNtpFeatureOptimizationModuleRemovalName, |
| flag_descriptions::kNtpFeatureOptimizationModuleRemovalDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| ntp_features::kNtpFeatureOptimizationModuleRemoval, |
| kNtpFeatureOptimizationModuleRemovalVariations, |
| "NtpFeatureOptimizationModuleRemoval")}, |
| |
| {"ntp-feature-optimization-shortcuts-removal", |
| flag_descriptions::kNtpFeatureOptimizationShortcutsRemovalName, |
| flag_descriptions::kNtpFeatureOptimizationShortcutsRemovalDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| ntp_features::kNtpFeatureOptimizationShortcutsRemoval, |
| kNtpFeatureOptimizationShortcutsRemovalVariations, |
| "NtpFeatureOptimizationShortcutsRemoval")}, |
| |
| {"ntp-simplification-bookmark-bar", |
| flag_descriptions::kNtpSimplificationBookmarkBarName, |
| flag_descriptions::kNtpSimplificationBookmarkBarDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpSimplificationBookmarkBar)}, |
| |
| {"ntp-feature-optimization-dismiss-modules-removal", |
| flag_descriptions::kNtpFeatureOptimizationDismissModulesRemovalName, |
| flag_descriptions::kNtpFeatureOptimizationDismissModulesRemovalDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| ntp_features::kNtpFeatureOptimizationDismissModulesRemoval)}, |
| |
| {"ntp-footer", flag_descriptions::kNtpFooterName, |
| flag_descriptions::kNtpFooterDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpFooter)}, |
| |
| {"ntp-middle-slot-promo-dismissal", |
| flag_descriptions::kNtpMiddleSlotPromoDismissalName, |
| flag_descriptions::kNtpMiddleSlotPromoDismissalDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpMiddleSlotPromoDismissal, |
| kNtpMiddleSlotPromoDismissalVariations, |
| "DesktopNtpModules")}, |
| {"ntp-animated-doodles", flag_descriptions::kNtpAnimatedDoodlesName, |
| flag_descriptions::kNtpAnimatedDoodlesDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpAnimatedDoodles)}, |
| |
| {"ntp-doodle-murals", flag_descriptions::kNtpDoodleMuralsName, |
| flag_descriptions::kNtpDoodleMuralsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpDoodleMurals)}, |
| |
| {"ntp-module-sign-in-requirement", |
| flag_descriptions::kNtpModuleSignInRequirementName, |
| flag_descriptions::kNtpModuleSignInRequirementDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpModuleSignInRequirement)}, |
| |
| {"ntp-next-canvas-chip", flag_descriptions::kNtpNextCanvasChipName, |
| flag_descriptions::kNtpNextCanvasChipDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpNextCanvasChip)}, |
| |
| {"ntp-ogb-async-bar-parts", |
| flag_descriptions::kNtpOneGoogleBarAsyncBarPartsName, |
| flag_descriptions::kNtpOneGoogleBarAsyncBarPartsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpOneGoogleBarAsyncBarParts)}, |
| |
| {"ntp-outlook-calendar-module", |
| flag_descriptions::kNtpOutlookCalendarModuleName, |
| flag_descriptions::kNtpOutlookCalendarModuleDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpOutlookCalendarModule, |
| kNtpOutlookCalendarModuleVariations, |
| "DesktopNtpModules")}, |
| |
| {"ntp-realbox-cr23-theming", flag_descriptions::kNtpRealboxCr23ThemingName, |
| flag_descriptions::kNtpRealboxCr23ThemingDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kRealboxCr23Theming, |
| kNtpRealboxCr23ThemingVariations, |
| "NtpRealboxCr23Theming")}, |
| |
| {"ntp-scaled-action-chips", flag_descriptions::kNtpScaledActionChipsName, |
| flag_descriptions::kNtpScaledActionChipsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpScaledActionChips)}, |
| |
| {"ntp-scaled-action-chips-small", |
| flag_descriptions::kNtpScaledActionChipsSmallName, |
| flag_descriptions::kNtpScaledActionChipsSmallDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpScaledActionChipsSmall)}, |
| |
| {"ntp-sharepoint-module", flag_descriptions::kNtpSharepointModuleName, |
| flag_descriptions::kNtpSharepointModuleDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpSharepointModule, |
| kNtpSharepointModuleVariations, |
| "DesktopNtpModules")}, |
| |
| {"ntp-starter-chip", flag_descriptions::kNtpStarterChipName, |
| flag_descriptions::kNtpStarterChipDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpStarterChip)}, |
| |
| {"ntp-tab-groups-module", flag_descriptions::kNtpTabGroupsModuleName, |
| flag_descriptions::kNtpTabGroupsModuleDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpTabGroupsModule, |
| kNtpTabGroupsModuleVariations, |
| "DesktopNtpModules")}, |
| |
| {"ntp-tab-groups-module-zero-state", |
| flag_descriptions::kNtpTabGroupsModuleZeroStateName, |
| flag_descriptions::kNtpTabGroupsModuleZeroStateDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpTabGroupsModuleZeroState)}, |
| |
| {"ntp-wallpaper-search-button", |
| flag_descriptions::kNtpWallpaperSearchButtonName, |
| flag_descriptions::kNtpWallpaperSearchButtonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpWallpaperSearchButton)}, |
| |
| {"ntp-wallpaper-search-button-animation", |
| flag_descriptions::kNtpWallpaperSearchButtonAnimationName, |
| flag_descriptions::kNtpWallpaperSearchButtonAnimationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpWallpaperSearchButtonAnimation)}, |
| |
| {"ntp-microsoft-authentication-module", |
| flag_descriptions::kNtpMicrosoftAuthenticationModuleName, |
| flag_descriptions::kNtpMicrosoftAuthenticationModuleDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpMicrosoftAuthenticationModule)}, |
| |
| {"ntp-shortcuts-redesign", flag_descriptions::kNtpShortcutsRedesignName, |
| flag_descriptions::kNtpShortcutsRedesignDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpShortcutsRedesign)}, |
| |
| {"ntp-threads-rail", flag_descriptions::kNtpThreadsRailName, |
| flag_descriptions::kNtpThreadsRailDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpThreadsRail)}, |
| |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(CHROME_WIDE_ECHO_CANCELLATION) |
| {"chrome-wide-echo-cancellation", |
| flag_descriptions::kChromeWideEchoCancellationName, |
| flag_descriptions::kChromeWideEchoCancellationDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(media::kChromeWideEchoCancellation)}, |
| #endif // BUILDFLAG(CHROME_WIDE_ECHO_CANCELLATION) |
| |
| #if BUILDFLAG(DCHECK_IS_CONFIGURABLE) |
| {"dcheck-is-fatal", flag_descriptions::kDcheckIsFatalName, |
| flag_descriptions::kDcheckIsFatalDescription, kOsWin, |
| FEATURE_VALUE_TYPE(base::kDCheckIsFatalFeature)}, |
| #endif // BUILDFLAG(DCHECK_IS_CONFIGURABLE) |
| |
| {"enable-pixel-canvas-recording", |
| flag_descriptions::kEnablePixelCanvasRecordingName, |
| flag_descriptions::kEnablePixelCanvasRecordingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kEnablePixelCanvasRecording)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"fluid-resize", flag_descriptions::kFluidResizeName, |
| flag_descriptions::kFluidResizeDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kFluidResize)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-parallel-downloading", flag_descriptions::kParallelDownloadingName, |
| flag_descriptions::kParallelDownloadingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(download::features::kParallelDownloading)}, |
| {"download-notification-service-unified-api", |
| flag_descriptions::kDownloadNotificationServiceUnifiedAPIName, |
| flag_descriptions::kDownloadNotificationServiceUnifiedAPIDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| download::features::kDownloadNotificationServiceUnifiedAPI)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-download-save-as-system-file-dialog", |
| flag_descriptions::kEnableDownloadSaveAsSystemFileDialogName, |
| flag_descriptions::kEnableDownloadSaveAsSystemFileDialogDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| download::features::kEnableDownloadSaveAsSystemFileDialog)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-network-logging-to-file", |
| flag_descriptions::kEnableNetworkLoggingToFileName, |
| flag_descriptions::kEnableNetworkLoggingToFileDescription, kOsAll, |
| SINGLE_VALUE_TYPE(net::switches::kLogNetLog)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"web-authentication-permit-enterprise-attestation", |
| flag_descriptions::kWebAuthenticationPermitEnterpriseAttestationName, |
| flag_descriptions:: |
| kWebAuthenticationPermitEnterpriseAttestationDescription, |
| kOsAll, |
| ORIGIN_LIST_VALUE_TYPE( |
| webauthn::switches::kPermitEnterpriseAttestationOriginList, |
| "")}, |
| #endif |
| |
| {"exclude-pip-from-screen-capture", |
| flag_descriptions::kExcludePipFromScreenCaptureName, |
| flag_descriptions::kExcludePipFromScreenCaptureDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kExcludePipFromScreenCapture)}, |
| |
| #if BUILDFLAG(ENABLE_PDF) |
| {"pdf-brotli-decode", flag_descriptions::kPdfBrotliDecodeName, |
| flag_descriptions::kPdfBrotliDecodeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfBrotliDecode)}, |
| |
| {"pdf-oopif", flag_descriptions::kPdfOopifName, |
| flag_descriptions::kPdfOopifDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfOopif)}, |
| |
| {"pdf-portfolio", flag_descriptions::kPdfPortfolioName, |
| flag_descriptions::kPdfPortfolioDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfPortfolio)}, |
| |
| {"pdf-use-skia-renderer", flag_descriptions::kPdfUseSkiaRendererName, |
| flag_descriptions::kPdfUseSkiaRendererDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfUseSkiaRenderer)}, |
| |
| #if BUILDFLAG(ENABLE_PDF_INK2) |
| {"pdf-ink2", flag_descriptions::kPdfInk2Name, |
| flag_descriptions::kPdfInk2Description, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome_pdf::features::kPdfInk2, |
| kPdfInk2Variations, |
| "PdfInk2")}, |
| #endif // BUILDFLAG(ENABLE_PDF_INK2) |
| |
| #if BUILDFLAG(ENABLE_PDF_SAVE_TO_DRIVE) |
| {"pdf-save-to-drive", flag_descriptions::kPdfSaveToDriveName, |
| flag_descriptions::kPdfSaveToDriveDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfSaveToDrive)}, |
| #endif // BUILDFLAG(ENABLE_PDF_SAVE_TO_DRIVE) |
| |
| #endif // BUILDFLAG(ENABLE_PDF) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"inline-pdf-v2", flag_descriptions::kInlinePdfV2Name, |
| flag_descriptions::kInlinePdfV2Description, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kInlinePdfV2, |
| kInlinePdfV2Variations, |
| "InlinePdfV2")}, |
| {"inline-pdf-v2-incognito", flag_descriptions::kInlinePdfV2IncognitoName, |
| flag_descriptions::kInlinePdfV2IncognitoDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kInlinePdfV2Incognito)}, |
| {"android-pdf-reuse-fragment", |
| flag_descriptions::kAndroidPdfReuseFragmentName, |
| flag_descriptions::kAndroidPdfReuseFragmentDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPdfReuseFragment)}, |
| {"pdf-launcher-activity", flag_descriptions::kPdfLauncherActivityName, |
| flag_descriptions::kPdfLauncherActivityDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPdfLauncherActivity)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(ENABLE_PRINTING) |
| #if BUILDFLAG(IS_LINUX) |
| {"cups-ipp-printing-backend", |
| flag_descriptions::kCupsIppPrintingBackendName, |
| flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(printing::features::kCupsIppPrintingBackend)}, |
| #endif // BUILDFLAG(IS_LINUX) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"print-with-postscript-type42-fonts", |
| flag_descriptions::kPrintWithPostScriptType42FontsName, |
| flag_descriptions::kPrintWithPostScriptType42FontsDescription, kOsWin, |
| FEATURE_VALUE_TYPE(printing::features::kPrintWithPostScriptType42Fonts)}, |
| |
| {"print-with-reduced-rasterization", |
| flag_descriptions::kPrintWithReducedRasterizationName, |
| flag_descriptions::kPrintWithReducedRasterizationDescription, kOsWin, |
| FEATURE_VALUE_TYPE(printing::features::kPrintWithReducedRasterization)}, |
| #endif // BUILDFLAG(IS_WIN) |
| #endif // BUILDFLAG(ENABLE_PRINTING) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"gamepad-raw-input-change-event", |
| flag_descriptions::kGamepadRawInputChangeEventName, |
| flag_descriptions::kGamepadRawInputChangeEventDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kGamepadRawInputChangeEvent)}, |
| |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-segmentation-platform-ephemeral_card_ranker", |
| flag_descriptions::kSegmentationPlatformEphemeralCardRankerName, |
| flag_descriptions::kSegmentationPlatformEphemeralCardRankerDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| segmentation_platform::features:: |
| kSegmentationPlatformEphemeralCardRanker, |
| kEphemeralCardRankerCardOverrideOptions, |
| "EducationalTipModule")}, |
| |
| {"enable-segmentation-platform-android-home-module-ranker-v2", |
| flag_descriptions::kSegmentationPlatformAndroidHomeModuleRankerV2Name, |
| flag_descriptions:: |
| kSegmentationPlatformAndroidHomeModuleRankerV2Description, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(segmentation_platform::features:: |
| kSegmentationPlatformAndroidHomeModuleRankerV2)}, |
| |
| {"in-app-update-flow", flag_descriptions::kInAppUpdateFlowName, |
| flag_descriptions::kInAppUpdateFlowDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kInAppUpdateFlow)}, |
| {"in-app-window-manager-deprecation", |
| flag_descriptions::kInAppWindowManagerDeprecationName, |
| flag_descriptions::kInAppWindowManagerDeprecationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kInAppWindowManagerDeprecation)}, |
| |
| {"search-in-cct", flag_descriptions::kSearchInCCTName, |
| flag_descriptions::kSearchInCCTDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSearchInCCT)}, |
| |
| {"search-in-cct-alternate-tap-handling", |
| flag_descriptions::kSearchInCCTAlternateTapHandlingName, |
| flag_descriptions::kSearchInCCTAlternateTapHandlingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSearchInCCTAlternateTapHandling)}, |
| |
| {"session-restore-after-crash", |
| flag_descriptions::kSessionRestoreAfterCrashName, |
| flag_descriptions::kSessionRestoreAfterCrashDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSessionRestoreAfterCrash)}, |
| |
| {"on-startup-window-policy", flag_descriptions::kOnStartupWindowPolicyName, |
| flag_descriptions::kOnStartupWindowPolicyDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kOnStartupWindowPolicy)}, |
| |
| {"sync-restore-on-startup-pref", |
| flag_descriptions::kSyncRestoreOnStartupPrefName, |
| flag_descriptions::kSyncRestoreOnStartupPrefDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSyncRestoreOnStartupPref)}, |
| |
| {"settings-in-tab", flag_descriptions::kSettingsInTabName, |
| flag_descriptions::kSettingsInTabDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSettingsInTab)}, |
| |
| {kSettingsInTabUrlNavInternalName, |
| flag_descriptions::kSettingsInTabUrlNavName, |
| flag_descriptions::kSettingsInTabUrlNavDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSettingsInTabUrlNav)}, |
| |
| {"android-settings-containment", |
| flag_descriptions::kAndroidSettingsContainmentName, |
| flag_descriptions::kAndroidSettingsContainmentDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidSettingsContainment)}, |
| {"android-settings-url", flag_descriptions::kAndroidSettingsUrlName, |
| flag_descriptions::kAndroidSettingsUrlDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidSettingsUrl)}, |
| |
| {"android-setup-list", flag_descriptions::kAndroidSetupListName, |
| flag_descriptions::kAndroidSetupListDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidSetupList)}, |
| |
| {"android-vertical-tabs", flag_descriptions::kAndroidVerticalTabsName, |
| flag_descriptions::kAndroidVerticalTabsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidVerticalTabs, |
| kAndroidVerticalTabsVariations, |
| "AndroidVerticalTabs")}, |
| |
| {"price-insights", commerce::flag_descriptions::kPriceInsightsName, |
| commerce::flag_descriptions::kPriceInsightsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(commerce::kPriceInsights)}, |
| |
| {"enable-start-surface-return-time", |
| flag_descriptions::kStartSurfaceReturnTimeName, |
| flag_descriptions::kStartSurfaceReturnTimeDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kStartSurfaceReturnTime, |
| kStartSurfaceReturnTimeVariations, |
| "StartSurfaceReturnTime")}, |
| |
| {"tab-switcher-drag-drop", flag_descriptions::kTabSwitcherDragDropName, |
| flag_descriptions::kTabSwitcherDragDropDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabSwitcherDragDropAndroid)}, |
| |
| {"tab-search-for-desktop", flag_descriptions::kTabSearchForDesktopName, |
| flag_descriptions::kTabSearchForDesktopDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabSearchForDesktop)}, |
| |
| {"most-visited-tiles-customization", |
| flag_descriptions::kMostVisitedTilesCustomizationName, |
| flag_descriptions::kMostVisitedTilesCustomizationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kMostVisitedTilesCustomization)}, |
| |
| {"enable-most-visited-tiles-reselect", |
| flag_descriptions::kMostVisitedTilesReselectName, |
| flag_descriptions::kMostVisitedTilesReselectDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kMostVisitedTilesReselect, |
| kMostVisitedTilesReselectVariations, |
| "kMostVisitedTilesReselect")}, |
| |
| {"global-cache-list-for-gating-notification-protections", |
| flag_descriptions::kGlobalCacheListForGatingNotificationProtectionsName, |
| flag_descriptions:: |
| kGlobalCacheListForGatingNotificationProtectionsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| safe_browsing::kGlobalCacheListForGatingNotificationProtections)}, |
| |
| {"enable-annotated-page-contents-for-virtual-structure", |
| flag_descriptions::kAnnotatedPageContentsForVirtualStructureName, |
| flag_descriptions::kAnnotatedPageContentsForVirtualStructureDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kAnnotatedPageContentsVirtualStructure)}, |
| |
| {"auto-revoke-suspicious-notification", |
| flag_descriptions::kAutoRevokeSuspiciousNotificationName, |
| flag_descriptions::kAutoRevokeSuspiciousNotificationDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(safe_browsing::kAutoRevokeSuspiciousNotification)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"gemini-antiscam-protections-metrics-only", |
| flag_descriptions::kGeminiAntiscamProtectionsMetricsOnlyName, |
| flag_descriptions::kGeminiAntiscamProtectionsMetricsOnlyDescription, |
| kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux, |
| FEATURE_VALUE_TYPE( |
| safe_browsing::kGeminiAntiscamProtectionForMetricsCollection)}, |
| |
| {"report-notification-content-detection-data", |
| flag_descriptions::kReportNotificationContentDetectionDataName, |
| flag_descriptions::kReportNotificationContentDetectionDataDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| safe_browsing::kReportNotificationContentDetectionData, |
| kReportNotificationContentDetectionDataVariations, |
| "ReportNotificationContentDetectionData")}, |
| |
| {"report-unsafe-site", flag_descriptions::kReportUnsafeSiteName, |
| flag_descriptions::kReportUnsafeSiteDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReportUnsafeSite)}, |
| |
| {"show-warnings-for-suspicious-notifications", |
| flag_descriptions::kShowWarningsForSuspiciousNotificationsName, |
| flag_descriptions::kShowWarningsForSuspiciousNotificationsDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| safe_browsing::kShowWarningsForSuspiciousNotifications, |
| kShowWarningsForSuspiciousNotificationsVariations, |
| "ShowWarningsForSuspiciousNotifications")}, |
| |
| {"unsafely-treat-insecure-origin-as-secure", |
| flag_descriptions::kTreatInsecureOriginAsSecureName, |
| flag_descriptions::kTreatInsecureOriginAsSecureDescription, kOsAll, |
| ORIGIN_LIST_VALUE_TYPE( |
| network::switches::kUnsafelyTreatInsecureOriginAsSecure, |
| "")}, |
| |
| {"disable-process-reuse", flag_descriptions::kDisableProcessReuse, |
| flag_descriptions::kDisableProcessReuseDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kDisableProcessReuse)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"stylus-handwriting-win", flag_descriptions::kStylusHandwritingWinName, |
| flag_descriptions::kStylusHandwritingWinDescription, kOsWin, |
| FEATURE_VALUE_TYPE(stylus_handwriting::win::kStylusHandwritingWin)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-headless-live-caption", |
| flag_descriptions::kEnableHeadlessLiveCaptionName, |
| flag_descriptions::kEnableHeadlessLiveCaptionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kHeadlessLiveCaption)}, |
| |
| {"enable-media-link-helpers", |
| flag_descriptions::kEnableMediaLinkHelpersName, |
| flag_descriptions::kEnableMediaLinkHelpersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kMediaLinkHelpers)}, |
| |
| {"enable-headless-live-caption-early-start", |
| flag_descriptions::kHeadlessCaptionEarlyStartName, |
| flag_descriptions::kHeadlessCaptionEarlyStartDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kHeadlessCaptionEarlyStart)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"enable-input-protection", flag_descriptions::kEnableInputProtectionName, |
| flag_descriptions::kEnableInputProtectionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(views::features::kEnableInputProtection)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| {"read-anything-read-aloud-phrase-highlighting-v2", |
| flag_descriptions::kReadAnythingReadAloudPhraseHighlightingName, |
| flag_descriptions::kReadAnythingReadAloudPhraseHighlightingDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingReadAloudPhraseHighlighting)}, |
| |
| {"read-anything-docs-integration", |
| flag_descriptions::kReadAnythingDocsIntegrationName, |
| flag_descriptions::kReadAnythingDocsIntegrationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ax::mojom::features::kReadAnythingDocsIntegration)}, |
| |
| {"read-anything-docs-load-more-button", |
| flag_descriptions::kReadAnythingDocsLoadMoreButtonName, |
| flag_descriptions::kReadAnythingDocsLoadMoreButtonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingDocsLoadMoreButton)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"image-descriptions-alternative-routing", |
| flag_descriptions::kImageDescriptionsAlternateRoutingName, |
| flag_descriptions::kImageDescriptionsAlternateRoutingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kImageDescriptionsAlternateRouting)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"app-specific-history", flag_descriptions::kAppSpecificHistoryName, |
| flag_descriptions::kAppSpecificHistoryDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAppSpecificHistory)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"cct-adaptive-button", flag_descriptions::kCCTAdaptiveButtonName, |
| flag_descriptions::kCCTAdaptiveButtonDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCCTAdaptiveButton, |
| kCCTAdaptiveButtonVariations, |
| "CCTAdaptiveButton")}, |
| {"cct-adaptive-button-test-switch", |
| flag_descriptions::kCCTAdaptiveButtonTestSwitchName, |
| flag_descriptions::kCCTAdaptiveButtonTestSwitchDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kCCTAdaptiveButtonTestSwitch, |
| kCCTAdaptiveButtonTestSwitchVariations, |
| "CCTAdaptiveButtonTestSwitch")}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"cct-incognito-available-to-third-party", |
| flag_descriptions::kCCTIncognitoAvailableToThirdPartyName, |
| flag_descriptions::kCCTIncognitoAvailableToThirdPartyDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTIncognitoAvailableToThirdParty)}, |
| {"cct-navigation-info-screenshot", |
| flag_descriptions::kCCTNavigationInfoScreenshotName, |
| flag_descriptions::kCCTNavigationInfoScreenshotDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTNavigationInfoScreenshot)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"cct-contextual-menu-items", |
| flag_descriptions::kCCTContextualMenuItemsName, |
| flag_descriptions::kCCTContextualMenuItemsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTContextualMenuItems)}, |
| {"cct-resizable-for-third-parties", |
| flag_descriptions::kCCTResizableForThirdPartiesName, |
| flag_descriptions::kCCTResizableForThirdPartiesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kCCTResizableForThirdParties, |
| kCCTResizableThirdPartiesDefaultPolicyVariations, |
| "CCTResizableThirdPartiesDefaultPolicy")}, |
| {"cct-google-bottom-bar", flag_descriptions::kCCTGoogleBottomBarName, |
| flag_descriptions::kCCTGoogleBottomBarDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCCTGoogleBottomBar, |
| kCCTGoogleBottomBarVariations, |
| "CCTGoogleBottomBarVariations")}, |
| {"cct-google-bottom-bar-variant-layouts", |
| flag_descriptions::kCCTGoogleBottomBarVariantLayoutsName, |
| flag_descriptions::kCCTGoogleBottomBarVariantLayoutsDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kCCTGoogleBottomBarVariantLayouts, |
| kCCTGoogleBottomBarVariantLayoutsVariations, |
| "CCTGoogleBottomBarVariantLayoutsVariations")}, |
| {"cct-open-in-browser-button-if-allowed-by-embedder", |
| flag_descriptions::kCCTOpenInBrowserButtonIfAllowedByEmbedderName, |
| flag_descriptions::kCCTOpenInBrowserButtonIfAllowedByEmbedderDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kCCTOpenInBrowserButtonIfAllowedByEmbedder)}, |
| {"cct-open-in-browser-button-if-enabled-by-embedder", |
| flag_descriptions::kCCTOpenInBrowserButtonIfEnabledByEmbedderName, |
| flag_descriptions::kCCTOpenInBrowserButtonIfEnabledByEmbedderDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kCCTOpenInBrowserButtonIfEnabledByEmbedder)}, |
| {"cct-page-content-request-allowed", |
| flag_descriptions::kCCTPageContentRequestAllowedName, |
| flag_descriptions::kCCTPageContentRequestAllowedDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTPageContentRequestAllowed)}, |
| {"cct-page-content-request-enabled", |
| flag_descriptions::kCCTPageContentRequestEnabledName, |
| flag_descriptions::kCCTPageContentRequestEnabledDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTPageContentRequestEnabled)}, |
| {"cct-navigation-metrics", flag_descriptions::kCCTNavigationMetricsName, |
| flag_descriptions::kCCTNavigationMetricsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCCTNavigationMetrics)}, |
| {"pcct-minimum-height", flag_descriptions::kPCCTMinimumHeightName, |
| flag_descriptions::kPCCTMinimumHeightDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPCCTMinimumHeight)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"cct-reset-timeout-allowed", |
| flag_descriptions::kCCTResetTimeoutAllowedName, |
| flag_descriptions::kCCTResetTimeoutAllowedDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCCTResetTimeoutAllowed, |
| kCCTResetTimeoutVariations, |
| "CCTResetTimeoutVariations")}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enforce-mono-audio-capture", |
| flag_descriptions::kCrOSEnforceMonoAudioCaptureName, |
| flag_descriptions::kCrOSEnforceMonoAudioCaptureDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSEnforceMonoAudioCapture)}, |
| {"enforce-system-aec", flag_descriptions::kCrOSEnforceSystemAecName, |
| flag_descriptions::kCrOSEnforceSystemAecDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSEnforceSystemAec)}, |
| {"enforce-system-aec-agc", flag_descriptions::kCrOSEnforceSystemAecAgcName, |
| flag_descriptions::kCrOSEnforceSystemAecAgcDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSEnforceSystemAecAgc)}, |
| {"enforce-system-aec-ns-agc", |
| flag_descriptions::kCrOSEnforceSystemAecNsAgcName, |
| flag_descriptions::kCrOSEnforceSystemAecNsAgcDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSEnforceSystemAecNsAgc)}, |
| {"enforce-system-aec-ns", flag_descriptions::kCrOSEnforceSystemAecNsName, |
| flag_descriptions::kCrOSEnforceSystemAecNsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSEnforceSystemAecNs)}, |
| {"system-voice-isolation-option", |
| flag_descriptions::kCrOSSystemVoiceIsolationOptionName, |
| flag_descriptions::kCrOSSystemVoiceIsolationOptionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kCrOSSystemVoiceIsolationOption)}, |
| {"ignore-ui-gains", flag_descriptions::kIgnoreUiGainsName, |
| flag_descriptions::kIgnoreUiGainsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kIgnoreUiGains)}, |
| {"show-force-respect-ui-gains-toggle", |
| flag_descriptions::kShowForceRespectUiGainsToggleName, |
| flag_descriptions::kShowForceRespectUiGainsToggleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kShowForceRespectUiGainsToggle)}, |
| {"audio-flexible-loopback-for-system-loopback", |
| flag_descriptions::kAudioFlexibleLoopbackForSystemLoopbackName, |
| flag_descriptions::kAudioFlexibleLoopbackForSystemLoopbackDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kAudioFlexibleLoopbackForSystemLoopback)}, |
| {"show-spatial-audio-toggle", |
| flag_descriptions::kShowSpatialAudioToggleName, |
| flag_descriptions::kShowSpatialAudioToggleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kShowSpatialAudioToggle)}, |
| {"single-ca-cert-verification-phase-1", |
| flag_descriptions::kSingleCaCertVerificationPhase1Name, |
| flag_descriptions::kSingleCaCertVerificationPhase1Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSingleCaCertVerificationPhase1)}, |
| {"single-ca-cert-verification-phase-2", |
| flag_descriptions::kSingleCaCertVerificationPhase2Name, |
| flag_descriptions::kSingleCaCertVerificationPhase2Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSingleCaCertVerificationPhase2)}, |
| {"fix-static-ip-for-two-managed-ethernet-ports", |
| flag_descriptions::kFixStaticIpForTwoManagedEthPortsName, |
| flag_descriptions::kFixStaticIpForTwoManagedEthPortsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFixStaticIpForTwoManagedEthPorts)}, |
| #endif |
| |
| {"boundary-event-dispatch-tracks-node-removal", |
| flag_descriptions::kBoundaryEventDispatchTracksNodeRemovalName, |
| flag_descriptions::kBoundaryEventDispatchTracksNodeRemovalDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| blink::features::kBoundaryEventDispatchTracksNodeRemoval)}, |
| |
| // Should only be available if kResamplingScrollEvents is on, and using |
| // linear resampling. |
| {"enable-resampling-scroll-events-experimental-prediction", |
| flag_descriptions::kEnableResamplingScrollEventsExperimentalPredictionName, |
| flag_descriptions:: |
| kEnableResamplingScrollEventsExperimentalPredictionDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| ::features::kResamplingScrollEventsExperimentalPrediction, |
| kResamplingScrollEventsExperimentalPredictionVariations, |
| "ResamplingScrollEventsExperimentalLatency")}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"happiness-tracking-surveys-for-desktop-demo", |
| flag_descriptions::kHappinessTrackingSurveysForDesktopDemoName, |
| flag_descriptions::kHappinessTrackingSurveysForDesktopDemoDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kHappinessTrackingSurveysForDesktopDemo, |
| kHappinessTrackingSurveysForDesktopDemoVariations, |
| "HappinessTrackingSurveysForDesktopDemo")}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-elegant-text-height", |
| flag_descriptions::kAndroidElegantTextHeightName, |
| flag_descriptions::kAndroidElegantTextHeightDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidElegantTextHeight)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"use-angle", flag_descriptions::kUseAngleName, |
| flag_descriptions::kUseAngleDescriptionWindows, kOsWin, |
| MULTI_VALUE_TYPE(kUseAngleChoicesWindows)}, |
| #elif BUILDFLAG(IS_ANDROID) |
| {"use-angle", flag_descriptions::kUseAngleName, |
| flag_descriptions::kUseAngleDescriptionAndroid, kOsAndroid, |
| MULTI_VALUE_TYPE(kUseAngleChoicesAndroid)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"quick-answers-rich-card", flag_descriptions::kQuickAnswersRichCardName, |
| flag_descriptions::kQuickAnswersRichCardDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kQuickAnswersRichCard)}, |
| {"quick-answers-material-next-ui", |
| flag_descriptions::kQuickAnswersMaterialNextUIName, |
| flag_descriptions::kQuickAnswersMaterialNextUIDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kQuickAnswersMaterialNextUI)}, |
| {"magic-boost-revamp-for-quick-answers", |
| flag_descriptions::kMagicBoostUpdateForQuickAnswersName, |
| flag_descriptions::kMagicBoostUpdateForQuickAnswersDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kMagicBoostRevampForQuickAnswers)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-gamepad-multitouch", |
| flag_descriptions::kEnableGamepadMultitouchName, |
| flag_descriptions::kEnableGamepadMultitouchDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kEnableGamepadMultitouch)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"enable-windows-gameinput-data-fetcher", |
| flag_descriptions::kEnableWindowsGameInputDataFetcherName, |
| flag_descriptions::kEnableWindowsGameInputDataFetcherDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kEnableWindowsGameInputDataFetcher)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"sharing-desktop-screenshots", |
| flag_descriptions::kSharingDesktopScreenshotsName, |
| flag_descriptions::kSharingDesktopScreenshotsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(sharing_hub::kDesktopScreenshots)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cros-labs-enable-overview-from-wallpaper", |
| flag_descriptions::kEnterOverviewFromWallpaperName, |
| flag_descriptions::kEnterOverviewFromWallpaperDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnterOverviewFromWallpaper)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-gpu-service-logging", |
| flag_descriptions::kEnableGpuServiceLoggingName, |
| flag_descriptions::kEnableGpuServiceLoggingDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableGPUServiceLogging)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"hardware-media-key-handling", |
| flag_descriptions::kHardwareMediaKeyHandling, |
| flag_descriptions::kHardwareMediaKeyHandlingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kHardwareMediaKeyHandling)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"arc-window-predictor", flag_descriptions::kArcWindowPredictorName, |
| flag_descriptions::kArcWindowPredictorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(full_restore::features::kArcWindowPredictor)}, |
| |
| {"use-annotated-account-id", flag_descriptions::kUseAnnotatedAccountIdName, |
| flag_descriptions::kUseAnnotatedAccountIdDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUseAnnotatedAccountId)}, |
| |
| {"use-fake-device-for-media-stream", |
| flag_descriptions::kUseFakeDeviceForMediaStreamName, |
| flag_descriptions::kUseFakeDeviceForMediaStreamDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kUseFakeDeviceForMediaStream)}, |
| |
| #if BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION) |
| {"enable-vbr-encode-acceleration", |
| flag_descriptions::kChromeOSHWVBREncodingName, |
| flag_descriptions::kChromeOSHWVBREncodingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kChromeOSHWVBREncoding)}, |
| #if defined(ARCH_CPU_ARM_FAMILY) |
| {"use-gl-scaling", flag_descriptions::kUseGLForScalingName, |
| flag_descriptions::kUseGLForScalingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kUseGLForScaling)}, |
| {"prefer-gl-image-processor", |
| flag_descriptions::kPreferGLImageProcessorName, |
| flag_descriptions::kPreferGLImageProcessorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kPreferGLImageProcessor)}, |
| {"prefer-software-mt21", flag_descriptions::kPreferSoftwareMT21Name, |
| flag_descriptions::kPreferSoftwareMT21Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kPreferSoftwareMT21)}, |
| {"enable-protected-vulkan-detiling", |
| flag_descriptions::kEnableProtectedVulkanDetilingName, |
| flag_descriptions::kEnableProtectedVulkanDetilingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kEnableProtectedVulkanDetiling)}, |
| {"enable-arm-hwdrm-10bit-overlays", |
| flag_descriptions::kEnableArmHwdrm10bitOverlaysName, |
| flag_descriptions::kEnableArmHwdrm10bitOverlaysDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kEnableArmHwdrm10bitOverlays)}, |
| #if BUILDFLAG(USE_CHROMEOS_PROTECTED_MEDIA) |
| {"enable-arm-hwdrm", flag_descriptions::kEnableArmHwdrmName, |
| flag_descriptions::kEnableArmHwdrmDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kEnableArmHwdrm)}, |
| #endif // BUILDFLAG(USE_CHROMEOS_PROTECTED_MEDIA) |
| #endif // defined(ARCH_CPU_ARM_FAMILY) |
| #endif // BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION) |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"force-startup-signin-promo", |
| flag_descriptions::kForceStartupSigninPromoName, |
| flag_descriptions::kForceStartupSigninPromoDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kForceStartupSigninPromo)}, |
| {"support-forced-signin-policy", |
| flag_descriptions::kSupportForcedSigninPolicyName, |
| flag_descriptions::kSupportForcedSigninPolicyDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kSupportForcedSigninPolicy)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"strict-origin-isolation", flag_descriptions::kStrictOriginIsolationName, |
| flag_descriptions::kStrictOriginIsolationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kStrictOriginIsolation)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"load-all-tabs-at-startup", flag_descriptions::kLoadAllTabsAtStartupName, |
| flag_descriptions::kLoadAllTabsAtStartupDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kLoadAllTabsAtStartup)}, |
| {"lock-controls-on-tablets-v2", |
| flag_descriptions::kLockTopControlsOnLargeTabletsV2Name, |
| flag_descriptions::kLockTopControlsOnLargeTabletsV2Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kLockTopControlsOnLargeTabletsV2)}, |
| {"enable-logging-js-console-messages", |
| flag_descriptions::kLogJsConsoleMessagesName, |
| flag_descriptions::kLogJsConsoleMessagesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kLogJsConsoleMessages)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"allow-cross-device-feature-suite", |
| flag_descriptions::kAllowCrossDeviceFeatureSuiteName, |
| flag_descriptions::kAllowCrossDeviceFeatureSuiteDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAllowCrossDeviceFeatureSuite)}, |
| |
| {"link-cross-device-internals", |
| flag_descriptions::kLinkCrossDeviceInternalsName, |
| flag_descriptions::kLinkCrossDeviceInternalsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kLinkCrossDeviceInternals)}, |
| |
| {"enable-neural-stylus-palm-rejection", |
| flag_descriptions::kEnableNeuralStylusPalmRejectionName, |
| flag_descriptions::kEnableNeuralStylusPalmRejectionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kEnableNeuralPalmDetectionFilter)}, |
| |
| {"fast-pair-debug-metadata", flag_descriptions::kFastPairDebugMetadataName, |
| flag_descriptions::kFastPairDebugMetadataDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFastPairDebugMetadata)}, |
| |
| {"fast-pair-keyboards", flag_descriptions::kFastPairKeyboardsName, |
| flag_descriptions::kFastPairKeyboardsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFastPairKeyboards)}, |
| |
| {"fast-pair-pwa-companion", flag_descriptions::kFastPairPwaCompanionName, |
| flag_descriptions::kFastPairPwaCompanionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFastPairPwaCompanion)}, |
| |
| {"nearby-ble-v2", flag_descriptions::kEnableNearbyBleV2Name, |
| flag_descriptions::kEnableNearbyBleV2Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kEnableNearbyBleV2)}, |
| |
| {"nearby-ble-v2-extended-adv", |
| flag_descriptions::kEnableNearbyBleV2ExtendedAdvertisingName, |
| flag_descriptions::kEnableNearbyBleV2ExtendedAdvertisingDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kEnableNearbyBleV2ExtendedAdvertising)}, |
| |
| {"nearby-presence", flag_descriptions::kNearbyPresenceName, |
| flag_descriptions::kNearbyPresenceDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kNearbyPresence)}, |
| |
| {"display-alignment-assistance", |
| flag_descriptions::kDisplayAlignmentAssistanceName, |
| flag_descriptions::kDisplayAlignmentAssistanceDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDisplayAlignAssist)}, |
| |
| {"enable-oauth-ipp", flag_descriptions::kEnableOAuthIppName, |
| flag_descriptions::kEnableOAuthIppDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableOAuthIpp)}, |
| |
| {"enable-peripherals-logging", |
| flag_descriptions::kEnablePeripheralsLoggingName, |
| flag_descriptions::kEnablePeripheralsLoggingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnablePeripheralsLogging)}, |
| |
| {"enable-peripheral-notification", |
| flag_descriptions::kEnablePeripheralNotificationName, |
| flag_descriptions::kEnablePeripheralNotificationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kPeripheralNotification)}, |
| |
| {"enable-accessibility-google-tts-automatic-reconnect", |
| flag_descriptions::kAccessibilityGoogleTtsAutomaticReconnectName, |
| flag_descriptions::kAccessibilityGoogleTtsAutomaticReconnectDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityGoogleTtsAutomaticReconnect)}, |
| {"enable-accessibility-inverted-mouse-cursor", |
| flag_descriptions::kAccessibilityInvertedMouseCursorName, |
| flag_descriptions::kAccessibilityInvertedMouseCursorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityInvertedMouseCursor)}, |
| {"enable-accessibility-shake-to-locate", |
| flag_descriptions::kAccessibilityShakeToLocateName, |
| flag_descriptions::kAccessibilityShakeToLocateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityShakeToLocate)}, |
| |
| {"enable-accessibility-reduced-animations", |
| flag_descriptions::kAccessibilityReducedAnimationsName, |
| flag_descriptions::kAccessibilityReducedAnimationsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityReducedAnimations)}, |
| |
| {"enable-accessibility-magnifier-follows-chromevox", |
| flag_descriptions::kAccessibilityMagnifierFollowsChromeVoxName, |
| flag_descriptions::kAccessibilityMagnifierFollowsChromeVoxDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityMagnifierFollowsChromeVox)}, |
| |
| {"enable-accessibility-manifest-v3-chromevox", |
| flag_descriptions::kAccessibilityManifestV3ChromeVoxName, |
| flag_descriptions::kAccessibilityManifestV3ChromeVoxDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityManifestV3ChromeVox)}, |
| |
| {"enable-accessibility-manifest-v3-google-tts", |
| flag_descriptions::kAccessibilityManifestV3GoogleTtsName, |
| flag_descriptions::kAccessibilityManifestV3GoogleTtsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(::features::kAccessibilityManifestV3GoogleTts)}, |
| |
| {"enable-accessibility-mousekeys", |
| flag_descriptions::kAccessibilityMouseKeysName, |
| flag_descriptions::kAccessibilityMouseKeysDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kAccessibilityMouseKeys)}, |
| |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-fenced-frames-developer-mode", |
| flag_descriptions::kEnableFencedFramesDeveloperModeName, |
| flag_descriptions::kEnableFencedFramesDeveloperModeDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kFencedFramesDefaultMode)}, |
| |
| {"enable-unsafe-webgpu", flag_descriptions::kUnsafeWebGPUName, |
| flag_descriptions::kUnsafeWebGPUDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableUnsafeWebGPU)}, |
| |
| {"force-high-performance-gpu", |
| flag_descriptions::kForceHighPerformanceGPUName, |
| flag_descriptions::kForceHighPerformanceGPUDescription, kOsWin, |
| SINGLE_VALUE_TYPE(switches::kForceHighPerformanceGPU)}, |
| |
| {"enable-webgpu-developer-features", |
| flag_descriptions::kWebGpuDeveloperFeaturesName, |
| flag_descriptions::kWebGpuDeveloperFeaturesDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableWebGPUDeveloperFeatures)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"game-dashboard-utilities", flag_descriptions::kGameDashboardUtilities, |
| flag_descriptions::kGameDashboardUtilitiesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kGameDashboardUtilities)}, |
| |
| {"gesture-properties-dbus-service", |
| flag_descriptions::kEnableGesturePropertiesDBusServiceName, |
| flag_descriptions::kEnableGesturePropertiesDBusServiceDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kGesturePropertiesDBusService)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| {"enable-network-service-sandbox", |
| flag_descriptions::kEnableNetworkServiceSandboxName, |
| flag_descriptions::kEnableNetworkServiceSandboxDescription, |
| kOsLinux | kOsCrOS, |
| FEATURE_VALUE_TYPE(sandbox::policy::features::kNetworkServiceSandbox)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(ALLOW_OOP_VIDEO_DECODER) |
| {"use-out-of-process-video-decoding", |
| flag_descriptions::kUseOutOfProcessVideoDecodingName, |
| flag_descriptions::kUseOutOfProcessVideoDecodingDescription, |
| kOsLinux | kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kUseOutOfProcessVideoDecoding)}, |
| #endif // BUILDFLAG(ALLOW_OOP_VIDEO_DECODER) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"no-pause-media-on-headphone-unplug", |
| flag_descriptions::kNoPauseMediaOnHeadphoneUnplugName, |
| flag_descriptions::kNoPauseMediaOnHeadphoneUnplugDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kNoPauseMediaOnHeadphoneUnplug)}, |
| #endif |
| |
| {"notification-scheduler", flag_descriptions::kNotificationSchedulerName, |
| flag_descriptions::kNotificationSchedulerDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(notifications::features::kNotificationScheduleService)}, |
| |
| {"notification-scheduler-debug-options", |
| flag_descriptions::kNotificationSchedulerDebugOptionName, |
| flag_descriptions::kNotificationSchedulerDebugOptionDescription, |
| kOsAndroid, MULTI_VALUE_TYPE(kNotificationSchedulerChoices)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| |
| {"use-chime-android-sdk", flag_descriptions::kChimeAndroidSdkName, |
| flag_descriptions::kChimeAndroidSdkDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(notifications::features::kUseChimeAndroidSdk)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"web-otp-backend", flag_descriptions::kWebOtpBackendName, |
| flag_descriptions::kWebOtpBackendDescription, kOsAndroid, |
| MULTI_VALUE_TYPE(kWebOtpBackendChoices)}, |
| |
| {"darken-websites-checkbox-in-themes-setting", |
| flag_descriptions::kDarkenWebsitesCheckboxInThemesSettingName, |
| flag_descriptions::kDarkenWebsitesCheckboxInThemesSettingDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| content_settings::kDarkenWebsitesCheckboxInThemesSetting)}, |
| |
| {"desktop-fling-curve-on-android", |
| flag_descriptions::kDesktopFlingCurveOnAndroidName, |
| flag_descriptions::kDesktopFlingCurveOnAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kDesktopFlingCurveOnAndroid)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) |
| {"elastic-overscroll", flag_descriptions::kElasticOverscrollName, |
| flag_descriptions::kElasticOverscrollDescription, kOsWin | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kElasticOverscroll)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"element-capture-cross-tab", |
| flag_descriptions::kCrossTabElementCaptureName, |
| flag_descriptions::kCrossTabElementCaptureDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kElementCaptureOfOtherTabs)}, |
| #endif |
| |
| {"declarative-performance-observer", |
| flag_descriptions::kDeclarativePerformanceObserverName, |
| flag_descriptions::kDeclarativePerformanceObserverDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kDeclarativePerformanceObserver)}, |
| |
| {"device-posture", flag_descriptions::kDevicePostureName, |
| flag_descriptions::kDevicePostureDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kDevicePosture)}, |
| |
| {"viewport-segments", flag_descriptions::kViewportSegmentsName, |
| flag_descriptions::kViewportSegmentsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kViewportSegments)}, |
| |
| #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| {"enable-location-provider-manager", |
| flag_descriptions::kLocationProviderManagerName, |
| flag_descriptions::kLocationProviderManagerDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kLocationProviderManager, |
| kLocationProviderManagerVariations, |
| "LocationProviderManager")}, |
| #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"mute-notification-snooze-action", |
| flag_descriptions::kMuteNotificationSnoozeActionName, |
| flag_descriptions::kMuteNotificationSnoozeActionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kMuteNotificationSnoozeAction)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"notification-one-tap-unsubscribe-on-desktop", |
| flag_descriptions::kNotificationOneTapUnsubscribeOnDesktopName, |
| flag_descriptions::kNotificationOneTapUnsubscribeOnDesktopDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kNotificationOneTapUnsubscribeOnDesktop)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"exo-gamepad-vibration", flag_descriptions::kExoGamepadVibrationName, |
| flag_descriptions::kExoGamepadVibrationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kGamepadVibration)}, |
| {"exo-ordinal-motion", flag_descriptions::kExoOrdinalMotionName, |
| flag_descriptions::kExoOrdinalMotionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kExoOrdinalMotion)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"heavy-ad-privacy-mitigations", |
| flag_descriptions::kHeavyAdPrivacyMitigationsName, |
| flag_descriptions::kHeavyAdPrivacyMitigationsDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| heavy_ad_intervention::features::kHeavyAdPrivacyMitigations)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"crostini-container-install", |
| flag_descriptions::kCrostiniContainerInstallName, |
| flag_descriptions::kCrostiniContainerInstallDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kCrostiniContainerChoices)}, |
| {"help-app-app-detail-page", flag_descriptions::kHelpAppAppDetailPageName, |
| flag_descriptions::kHelpAppAppDetailPageDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHelpAppAppDetailPage)}, |
| {"help-app-apps-list", flag_descriptions::kHelpAppAppsListName, |
| flag_descriptions::kHelpAppAppsListDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHelpAppAppsList)}, |
| {"help-app-auto-trigger-install-dialog", |
| flag_descriptions::kHelpAppAutoTriggerInstallDialogName, |
| flag_descriptions::kHelpAppAutoTriggerInstallDialogDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHelpAppAutoTriggerInstallDialog)}, |
| {"help-app-home-page-app-articles", |
| flag_descriptions::kHelpAppHomePageAppArticlesName, |
| flag_descriptions::kHelpAppHomePageAppArticlesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHelpAppHomePageAppArticles)}, |
| {"help-app-onboarding-revamp", |
| flag_descriptions::kHelpAppOnboardingRevampName, |
| flag_descriptions::kHelpAppOnboardingRevampDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kHelpAppOnboardingRevamp)}, |
| {"help-app-opens-instead-of-release-notes-notification", |
| flag_descriptions::kHelpAppOpensInsteadOfReleaseNotesNotificationName, |
| flag_descriptions:: |
| kHelpAppOpensInsteadOfReleaseNotesNotificationDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| ash::features::kHelpAppOpensInsteadOfReleaseNotesNotification)}, |
| {"on-device-app-controls", flag_descriptions::kOnDeviceAppControlsName, |
| flag_descriptions::kOnDeviceAppControlsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kForceOnDeviceAppControlsForAllRegions)}, |
| {"release-notes-notification-all-channels", |
| flag_descriptions::kReleaseNotesNotificationAllChannelsName, |
| flag_descriptions::kReleaseNotesNotificationAllChannelsDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kReleaseNotesNotificationAllChannels)}, |
| {"release-notes-notification-always-eligible", |
| flag_descriptions::kReleaseNotesNotificationAlwaysEligibleName, |
| flag_descriptions::kReleaseNotesNotificationAlwaysEligibleDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| ash::features::kReleaseNotesNotificationAlwaysEligible)}, |
| {"use-android-staging-smds", flag_descriptions::kUseAndroidStagingSmdsName, |
| flag_descriptions::kUseAndroidStagingSmdsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUseAndroidStagingSmds)}, |
| {"use-stork-smds-server-address", |
| flag_descriptions::kUseStorkSmdsServerAddressName, |
| flag_descriptions::kUseStorkSmdsServerAddressDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUseStorkSmdsServerAddress)}, |
| {"use-wallpaper-staging-url", |
| flag_descriptions::kUseWallpaperStagingUrlName, |
| flag_descriptions::kUseWallpaperStagingUrlDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUseWallpaperStagingUrl)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID) |
| {"paint-preview-demo", flag_descriptions::kPaintPreviewDemoName, |
| flag_descriptions::kPaintPreviewDemoDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(paint_preview::kPaintPreviewDemo)}, |
| #endif // BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"panel-self-refresh-2", flag_descriptions::kPanelSelfRefresh2Name, |
| flag_descriptions::kPanelSelfRefresh2Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kPanelSelfRefresh2)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) |
| {"run-video-capture-service-in-browser", |
| flag_descriptions::kRunVideoCaptureServiceInBrowserProcessName, |
| flag_descriptions::kRunVideoCaptureServiceInBrowserProcessDescription, |
| kOsWin | kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kRunVideoCaptureServiceInBrowserProcess)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) |
| {"double-buffer-compositing", |
| flag_descriptions::kDoubleBufferCompositingName, |
| flag_descriptions::kDoubleBufferCompositingDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(switches::kDoubleBufferCompositing)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"enable-media-foundation-video-capture", |
| flag_descriptions::kEnableMediaFoundationVideoCaptureName, |
| flag_descriptions::kEnableMediaFoundationVideoCaptureDescription, kOsWin, |
| FEATURE_VALUE_TYPE(media::kMediaFoundationVideoCapture)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"reset-shortcut-customizations", |
| flag_descriptions::kResetShortcutCustomizationsName, |
| flag_descriptions::kResetShortcutCustomizationsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kResetShortcutCustomizations)}, |
| {"shimless-rma-os-update", flag_descriptions::kShimlessRMAOsUpdateName, |
| flag_descriptions::kShimlessRMAOsUpdateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kShimlessRMAOsUpdate)}, |
| {"shimless-rma-flexible-serial-number-name", |
| flag_descriptions::kShimlessRMAFlexibleSerialNumberNameName, |
| flag_descriptions::kShimlessRMAFlexibleSerialNumberNameDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kShimlessRMAFlexibleSerialNumberName)}, |
| {"shimless-rma-hide-google-sku", |
| flag_descriptions::kShimlessRMAHideGoogleSKUName, |
| flag_descriptions::kShimlessRMAHideGoogleSKUDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kShimlessRMAHideGoogleSKU)}, |
| {"quick-share-v2", flag_descriptions::kQuickShareV2Name, |
| flag_descriptions::kQuickShareV2Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kQuickShareV2)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-experimental-cookie-features", |
| flag_descriptions::kEnableExperimentalCookieFeaturesName, |
| flag_descriptions::kEnableExperimentalCookieFeaturesDescription, kOsAll, |
| MULTI_VALUE_TYPE(kEnableExperimentalCookieFeaturesChoices)}, |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| {"enable-extension-install-policy-fetching", |
| flag_descriptions::kEnableExtensionInstallPolicyFetchingName, |
| flag_descriptions::kEnableExtensionInstallPolicyFetchingDescription, |
| kOsWin | kOsMac | kOsLinux | kOsCrOS | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| policy::features::kEnableExtensionInstallPolicyFetching)}, |
| #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| |
| {"canvas-2d-layers", flag_descriptions::kCanvas2DLayersName, |
| flag_descriptions::kCanvas2DLayersDescription, kOsAll, |
| SINGLE_VALUE_TYPE(switches::kEnableCanvas2DLayers)}, |
| |
| {"web-machine-learning-neural-network", |
| flag_descriptions::kWebMachineLearningNeuralNetworkName, |
| flag_descriptions::kWebMachineLearningNeuralNetworkDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| webnn::mojom::features::kWebMachineLearningNeuralNetwork)}, |
| |
| {"experimental-web-machine-learning-neural-network", |
| flag_descriptions::kExperimentalWebMachineLearningNeuralNetworkName, |
| flag_descriptions::kExperimentalWebMachineLearningNeuralNetworkDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| webnn::mojom::features::kExperimentalWebMachineLearningNeuralNetwork)}, |
| |
| #if BUILDFLAG(IS_MAC) |
| {"webnn-coreml", flag_descriptions::kWebNNCoreMLName, |
| flag_descriptions::kWebNNCoreMLDescription, kOsMac, |
| FEATURE_VALUE_TYPE(webnn::mojom::features::kWebNNCoreML)}, |
| |
| {"webnn-coreml-explicit-gpu-or-npu", |
| flag_descriptions::kWebNNCoreMLExplicitGPUOrNPUName, |
| flag_descriptions::kWebNNCoreMLExplicitGPUOrNPUDescription, kOsMac, |
| FEATURE_VALUE_TYPE(webnn::mojom::features::kWebNNCoreMLExplicitGPUOrNPU)}, |
| #endif // BUILDFLAG(IS_MAC) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"webnn-onnxruntime", flag_descriptions::kWebNNOnnxRuntimeName, |
| flag_descriptions::kWebNNOnnxRuntimeDescription, kOsWin, |
| FEATURE_VALUE_TYPE(webnn::mojom::features::kWebNNOnnxRuntime)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"permission-promise-lifetime-modulation-android", |
| flag_descriptions::kPermissionPromiseLifetimeModulationAndroidName, |
| flag_descriptions::kPermissionPromiseLifetimeModulationAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| permissions::features::kPermissionPromiseLifetimeModulationAndroid)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"left-hand-side-activity-indicators", |
| flag_descriptions::kLeftHandSideActivityIndicatorsName, |
| flag_descriptions::kLeftHandSideActivityIndicatorsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| content_settings::features::kLeftHandSideActivityIndicators)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"launcher-continue-section-with-recents", |
| flag_descriptions::kLauncherContinueSectionWithRecentsName, |
| flag_descriptions::kLauncherContinueSectionWithRecentsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kLauncherContinueSectionWithRecents)}, |
| {"launcher-local-image-search", |
| flag_descriptions::kLauncherLocalImageSearchName, |
| flag_descriptions::kLauncherLocalImageSearchDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(search_features::kLauncherImageSearch)}, |
| {"launcher-local-image-search-confidence", |
| flag_descriptions::kLauncherLocalImageSearchConfidenceName, |
| flag_descriptions::kLauncherLocalImageSearchConfidenceDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| search_features::kLauncherLocalImageSearchConfidence, |
| kLauncherLocalImageSearchConfidenceVariations, |
| "LauncherLocalImageSearchConfidence")}, |
| {"launcher-local-image-search-relevance", |
| flag_descriptions::kLauncherLocalImageSearchRelevanceName, |
| flag_descriptions::kLauncherLocalImageSearchRelevanceDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| search_features::kLauncherLocalImageSearchRelevance, |
| kLauncherLocalImageSearchRelevanceVariations, |
| "LauncherLocalImageSearchRelevance")}, |
| {"launcher-local-image-search-ocr", |
| flag_descriptions::kLauncherLocalImageSearchOcrName, |
| flag_descriptions::kLauncherLocalImageSearchOcrDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(search_features::kLauncherImageSearchOcr)}, |
| {"launcher-local-image-search-ica", |
| flag_descriptions::kLauncherLocalImageSearchIcaName, |
| flag_descriptions::kLauncherLocalImageSearchIcaDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(search_features::kLauncherImageSearchIca)}, |
| {"mac-address-randomization", |
| flag_descriptions::kMacAddressRandomizationName, |
| flag_descriptions::kMacAddressRandomizationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kMacAddressRandomization)}, |
| |
| {"tethering-experimental-functionality", |
| flag_descriptions::kTetheringExperimentalFunctionalityName, |
| flag_descriptions::kTetheringExperimentalFunctionalityDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kTetheringExperimentalFunctionality)}, |
| |
| {"dynamic-search-update-animation", |
| flag_descriptions::kDynamicSearchUpdateAnimationName, |
| flag_descriptions::kDynamicSearchUpdateAnimationDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| app_list_features::kDynamicSearchUpdateAnimation, |
| kDynamicSearchUpdateAnimationVariations, |
| "LauncherDynamicAnimations")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"smart-suggestion-for-large-downloads", |
| flag_descriptions::kSmartSuggestionForLargeDownloadsName, |
| flag_descriptions::kSmartSuggestionForLargeDownloadsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(download::features::kSmartSuggestionForLargeDownloads)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"pwa-update-dialog-for-icon", |
| flag_descriptions::kPwaUpdateDialogForAppIconName, |
| flag_descriptions::kPwaUpdateDialogForAppIconDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kPwaUpdateDialogForIcon)}, |
| |
| #if BUILDFLAG(ENABLE_OOP_PRINTING) |
| {"enable-oop-print-drivers", flag_descriptions::kEnableOopPrintDriversName, |
| flag_descriptions::kEnableOopPrintDriversDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(printing::features::kEnableOopPrintDrivers)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"incognito-screenshot", flag_descriptions::kIncognitoScreenshotName, |
| flag_descriptions::kIncognitoScreenshotDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kIncognitoScreenshot)}, |
| #endif |
| |
| {"prerender-early-document-lifecycle-update", |
| flag_descriptions::kPrerender2EarlyDocumentLifecycleUpdateName, |
| flag_descriptions::kPrerender2EarlyDocumentLifecycleUpdateDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| blink::features::kPrerender2EarlyDocumentLifecycleUpdate)}, |
| |
| {"trees-in-viz", flag_descriptions::kTreesInVizName, |
| flag_descriptions::kTreesInVizDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kTreesInViz)}, |
| |
| {"omnibox-search-prefetch", |
| flag_descriptions::kEnableOmniboxSearchPrefetchName, |
| flag_descriptions::kEnableOmniboxSearchPrefetchDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kSearchPrefetchServicePrefetching, |
| kSearchPrefetchServicePrefetchingVariations, |
| "SearchSuggestionPrefetch")}, |
| {"omnibox-search-client-prefetch", |
| flag_descriptions::kEnableOmniboxClientSearchPrefetchName, |
| flag_descriptions::kEnableOmniboxClientSearchPrefetchDescription, kOsAll, |
| FEATURE_VALUE_TYPE(kSearchNavigationPrefetch)}, |
| {"autofill-enable-autofill-settings-enterprise-policy", |
| flag_descriptions::kAutofillEnableAutofillSettingsEnterprisePolicyName, |
| flag_descriptions:: |
| kAutofillEnableAutofillSettingsEnterprisePolicyDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableAutofillSettingsEnterprisePolicy)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-offers-in-clank-keyboard-accessory", |
| flag_descriptions::kAutofillEnableOffersInClankKeyboardAccessoryName, |
| flag_descriptions:: |
| kAutofillEnableOffersInClankKeyboardAccessoryDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableOffersInClankKeyboardAccessory)}, |
| #endif |
| |
| #if BUILDFLAG(ENABLE_PDF) |
| {"pdf-xfa-forms", flag_descriptions::kPdfXfaFormsName, |
| flag_descriptions::kPdfXfaFormsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfXfaSupport)}, |
| #endif // BUILDFLAG(ENABLE_PDF) |
| |
| {"enable-managed-configuration-web-api", |
| flag_descriptions::kEnableManagedConfigurationWebApiName, |
| flag_descriptions::kEnableManagedConfigurationWebApiDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(blink::features::kManagedConfiguration)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {kWallpaperFastRefreshInternalName, |
| flag_descriptions::kWallpaperFastRefreshName, |
| flag_descriptions::kWallpaperFastRefreshDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWallpaperFastRefresh)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-global-vaapi-lock", flag_descriptions::kGlobalVaapiLockName, |
| flag_descriptions::kGlobalVaapiLockDescription, kOsCrOS | kOsLinux, |
| FEATURE_VALUE_TYPE(media::kGlobalVaapiLock)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) |
| { |
| "ui-debug-tools", |
| flag_descriptions::kUIDebugToolsName, |
| flag_descriptions::kUIDebugToolsDescription, |
| kOsWin | kOsLinux | kOsMac, |
| FEATURE_VALUE_TYPE(features::kUIDebugTools), |
| }, |
| |
| #endif |
| |
| {"fedcm-autofill", flag_descriptions::kFedCmAutofillName, |
| flag_descriptions::kFedCmAutofillDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmAutofill)}, |
| |
| {"fedcm-ambient-ui", flag_descriptions::kFedCmAmbientUIName, |
| flag_descriptions::kFedCmAmbientUIDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kFedCmAmbientUI)}, |
| |
| {"fedcm-delegation", flag_descriptions::kFedCmDelegationName, |
| flag_descriptions::kFedCmDelegationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmDelegation)}, |
| |
| {"email-verification-protocol", |
| flag_descriptions::kEmailVerificationProtocolName, |
| flag_descriptions::kEmailVerificationProtocolDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kEmailVerificationProtocol)}, |
| |
| {"fedcm-active-mode-multiple-identity-providers", |
| flag_descriptions::kFedCmActiveModeMultipleIdentityProvidersName, |
| flag_descriptions::kFedCmActiveModeMultipleIdentityProvidersDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kFedCmActiveModeMultipleIdentityProviders)}, |
| |
| {"fedcm-idp-registration", flag_descriptions::kFedCmIdPRegistrationName, |
| flag_descriptions::kFedCmIdPRegistrationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kFedCmIdPRegistration)}, |
| |
| {"fedcm-lightweight-mode", flag_descriptions::kFedCmLightweightModeName, |
| flag_descriptions::kFedCmLightweightModeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kFedCmLightweightMode)}, |
| |
| {"fedcm-metrics-endpoint", flag_descriptions::kFedCmMetricsEndpointName, |
| flag_descriptions::kFedCmMetricsEndpointDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmMetricsEndpoint)}, |
| |
| {"fedcm-nonce-in-params", flag_descriptions::kFedCmNonceInParamsName, |
| flag_descriptions::kFedCmNonceInParamsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmNonceInParams)}, |
| |
| {"fedcm-web-identity-subdomain", |
| flag_descriptions::kFedCmWebIdentitySubdomainName, |
| flag_descriptions::kFedCmWebIdentitySubdomainDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmWebIdentitySubdomain)}, |
| |
| {"fedcm-well-known-endpoint-validation", |
| flag_descriptions::kFedCmWellKnownEndpointValidationName, |
| flag_descriptions::kFedCmWellKnownEndpointValidationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmWellKnownEndpointValidation)}, |
| |
| {"fedcm-without-well-known-enforcement", |
| flag_descriptions::kFedCmWithoutWellKnownEnforcementName, |
| flag_descriptions::kFedCmWithoutWellKnownEnforcementDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmWithoutWellKnownEnforcement)}, |
| |
| {"fedcm-segmentation-platform", |
| flag_descriptions::kFedCmSegmentationPlatformName, |
| flag_descriptions::kFedCmSegmentationPlatformDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| segmentation_platform::features::kSegmentationPlatformFedCmUser)}, |
| |
| {"fedcm-navigation-interception", |
| flag_descriptions::kFedCmNavigationInterceptionName, |
| flag_descriptions::kFedCmNavigationInterceptionDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kFedCmNavigationInterception)}, |
| {"fedcm-native-idps", flag_descriptions::kFedCmNativeIdPsName, |
| flag_descriptions::kFedCmNativeIdPsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kFedCmNativeIdPs)}, |
| |
| {"web-identity-digital-credentials", |
| flag_descriptions::kWebIdentityDigitalCredentialsName, |
| flag_descriptions::kWebIdentityDigitalCredentialsDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kWebIdentityDigitalCredentials, |
| kWebIdentityDigitalIdentityCredentialVariations, |
| "WebIdentityDigitalCredentials")}, |
| |
| {"web-identity-digital-credentials-creation", |
| flag_descriptions::kWebIdentityDigitalCredentialsCreationName, |
| flag_descriptions::kWebIdentityDigitalCredentialsCreationDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(features::kWebIdentityDigitalCredentialsCreation)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-input-event-logging", |
| flag_descriptions::kEnableInputEventLoggingName, |
| flag_descriptions::kEnableInputEventLoggingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kEnableInputEventLogging)}, |
| #endif |
| |
| {"lens-enable-raw-file-media-types", |
| flag_descriptions::kLensEnableSendRawFileMediaTypesName, |
| flag_descriptions::kLensEnableSendRawFileMediaTypesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensSendRawFileMediaTypes)}, |
| |
| {"lens-enable-urls-in-composeboxes", |
| flag_descriptions::kLensEnableSendUrlsInComposeboxesName, |
| flag_descriptions::kLensEnableSendUrlsInComposeboxesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensSendUrlsInComposeboxes)}, |
| |
| {"lens-composebox-identity-delegation", |
| flag_descriptions::kLensComposeboxIdentityDelegationName, |
| flag_descriptions::kLensComposeboxIdentityDelegationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensComposeboxIdentityDelegation)}, |
| |
| {"lens-bypass-compression-for-c2pa", |
| flag_descriptions::kLensBypassCompressionForC2paName, |
| flag_descriptions::kLensBypassCompressionForC2paDescription, kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensBypassCompressionForC2pa)}, |
| |
| {"enable-lens-standalone", flag_descriptions::kEnableLensStandaloneName, |
| flag_descriptions::kEnableLensStandaloneDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensStandalone)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-android", flag_descriptions::kLensOverlayAndroidName, |
| flag_descriptions::kLensOverlayAndroidDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(lens::features::kLensOverlayAndroid, |
| kLensOverlayAndroidVariations, |
| "LensOverlayAndroid")}, |
| #else |
| {"enable-lens-overlay", flag_descriptions::kLensOverlayName, |
| flag_descriptions::kLensOverlayDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(lens::features::kLensOverlay, |
| kLensOverlayVariations, |
| "LensOverlay")}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"biometric-reauth-password-filling", |
| flag_descriptions::kBiometricReauthForPasswordFillingName, |
| flag_descriptions::kBiometricReauthForPasswordFillingDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(password_manager::features::kBiometricTouchToFill)}, |
| #endif |
| |
| {"bind-cookies-to-port", flag_descriptions::kBindCookiesToPortName, |
| flag_descriptions::kBindCookiesToPortDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kEnablePortBoundCookies)}, |
| |
| {"bind-cookies-to-scheme", flag_descriptions::kBindCookiesToSchemeName, |
| flag_descriptions::kBindCookiesToSchemeDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kEnableSchemeBoundCookies)}, |
| |
| {"align-wakeups", flag_descriptions::kAlignWakeUpsName, |
| flag_descriptions::kAlignWakeUpsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(base::kAlignWakeUps)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-yuv-overlay-even-alignment", |
| flag_descriptions::kAndroidYuvOverlayEvenAlignmentName, |
| flag_descriptions::kAndroidYuvOverlayEvenAlignmentDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidYuvOverlayEvenAlignment)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) |
| {"use-passthrough-command-decoder", |
| flag_descriptions::kUsePassthroughCommandDecoderName, |
| flag_descriptions::kUsePassthroughCommandDecoderDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDefaultPassthroughCommandDecoder)}, |
| #endif // BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) |
| |
| // The entry in kFeatureEntries |
| {"policy-registration-delay", |
| flag_descriptions::kPolicyRegistrationDelayName, |
| flag_descriptions::kPolicyRegistrationDelayDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| policy::features::kCustomPolicyRegistrationDelay, |
| kPolicyRegistrationDelayVariations, |
| "CustomPolicyRegistrationDelay")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"try-initialize-policy-service-for-signed-in-user-in-new-entry-points", |
| flag_descriptions::kInitializePoliciesForSignedInUserInNewEntryPointsName, |
| flag_descriptions:: |
| kInitializePoliciesForSignedInUserInNewEntryPointsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| policy::features::kInitializePoliciesForSignedInUserInNewEntryPoints)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"focus-follows-cursor", flag_descriptions::kFocusFollowsCursorName, |
| flag_descriptions::kFocusFollowsCursorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(::features::kFocusFollowsCursor)}, |
| #endif |
| |
| {"prerender2", flag_descriptions::kPrerender2Name, |
| flag_descriptions::kPrerender2Description, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kPrerender2)}, |
| |
| {"prerender2-reuse-host", flag_descriptions::kPrerender2ReuseHostName, |
| flag_descriptions::kPrerender2ReuseHostDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kPrerender2ReuseHost)}, |
| |
| {"prerender2-cross-origin-iframes", |
| flag_descriptions::kPrerender2CrossOriginIframesName, |
| flag_descriptions::kPrerender2CrossOriginIframesDescription, kOsAll, |
| MULTI_VALUE_TYPE(kPrerender2CrossOriginIframesChoices)}, |
| |
| {"prerender-until-script", flag_descriptions::kPrerenderUntilScriptName, |
| flag_descriptions::kPrerenderUntilScriptDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kPrerenderUntilScript)}, |
| |
| {"prerender-activation-by-form-submission", |
| flag_descriptions::kPrerenderActivationByFormSubmissionName, |
| flag_descriptions::kPrerenderActivationByFormSubmissionDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kPrerenderActivationByFormSubmission)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-phone-hub-call-notification", |
| flag_descriptions::kPhoneHubCallNotificationName, |
| flag_descriptions::kPhoneHubCallNotificationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kPhoneHubCallNotification)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"test-root-store", flag_descriptions::kTestRootStoreName, |
| flag_descriptions::kTestRootStoreDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kTestRootStore)}, |
| |
| {"test-third-party-cookie-phaseout", |
| flag_descriptions::kTestThirdPartyCookiePhaseoutName, |
| flag_descriptions::kTestThirdPartyCookiePhaseoutDescription, kOsAll, |
| SINGLE_VALUE_TYPE(network::switches::kTestThirdPartyCookiePhaseout)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {kBackgroundListeningName, flag_descriptions::kBackgroundListeningName, |
| flag_descriptions::kBackgroundListeningDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media::kBackgroundListening)}, |
| {kBorealisBigGlInternalName, flag_descriptions::kBorealisBigGlName, |
| flag_descriptions::kBorealisBigGlDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisBigGl)}, |
| {kBorealisDGPUInternalName, flag_descriptions::kBorealisDGPUName, |
| flag_descriptions::kBorealisDGPUDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisDGPU)}, |
| {kBorealisEnableUnsupportedHardwareInternalName, |
| flag_descriptions::kBorealisEnableUnsupportedHardwareName, |
| flag_descriptions::kBorealisEnableUnsupportedHardwareDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisEnableUnsupportedHardware)}, |
| {kBorealisForceBetaClientInternalName, |
| flag_descriptions::kBorealisForceBetaClientName, |
| flag_descriptions::kBorealisForceBetaClientDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisForceBetaClient)}, |
| {kBorealisForceDoubleScaleInternalName, |
| flag_descriptions::kBorealisForceDoubleScaleName, |
| flag_descriptions::kBorealisForceDoubleScaleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisForceDoubleScale)}, |
| {kBorealisLinuxModeInternalName, flag_descriptions::kBorealisLinuxModeName, |
| flag_descriptions::kBorealisLinuxModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisLinuxMode)}, |
| {kBorealisPermittedInternalName, flag_descriptions::kBorealisPermittedName, |
| flag_descriptions::kBorealisPermittedDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisPermitted)}, |
| {kBorealisProvisionInternalName, flag_descriptions::kBorealisProvisionName, |
| flag_descriptions::kBorealisProvisionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisProvision)}, |
| {kBorealisScaleClientByDPIInternalName, |
| flag_descriptions::kBorealisScaleClientByDPIName, |
| flag_descriptions::kBorealisScaleClientByDPIDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kBorealisScaleClientByDPI)}, |
| {kBorealisZinkGlDriverInternalName, |
| flag_descriptions::kBorealisZinkGlDriverName, |
| flag_descriptions::kBorealisZinkGlDriverDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kBorealisZinkGlDriver, |
| kBorealisZinkGlDriverVariations, |
| "BorealisZinkGlDriver")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"https-first-balanced-mode", |
| flag_descriptions::kHttpsFirstBalancedModeName, |
| flag_descriptions::kHttpsFirstBalancedModeDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kHttpsFirstBalancedMode)}, |
| |
| {"https-first-dialog-ui", flag_descriptions::kHttpsFirstDialogUiName, |
| flag_descriptions::kHttpsFirstDialogUiDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(security_interstitials::features::kHttpsFirstDialogUi)}, |
| |
| {"https-first-mode-v2-for-engaged-sites", |
| flag_descriptions::kHttpsFirstModeV2ForEngagedSitesName, |
| flag_descriptions::kHttpsFirstModeV2ForEngagedSitesDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kHttpsFirstModeV2ForEngagedSites)}, |
| |
| {"https-upgrades", flag_descriptions::kHttpsUpgradesName, |
| flag_descriptions::kHttpsUpgradesDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kHttpsUpgrades)}, |
| |
| {"https-upgrades-typed-schemeless-navigation-no-timeout-fallback", |
| flag_descriptions:: |
| kHttpsUpgradesTypedSchemelessNavigationNoTimeoutFallbackName, |
| flag_descriptions:: |
| kHttpsUpgradesTypedSchemelessNavigationNoTimeoutFallbackDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kHttpsUpgradesTypedSchemelessNavigationNoTimeoutFallback)}, |
| |
| {"https-first-mode-incognito", |
| flag_descriptions::kHttpsFirstModeIncognitoName, |
| flag_descriptions::kHttpsFirstModeIncognitoDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kHttpsFirstModeIncognito)}, |
| |
| {"https-first-mode-for-typically-secure-users", |
| flag_descriptions::kHttpsFirstModeForTypicallySecureUsersName, |
| flag_descriptions::kHttpsFirstModeForTypicallySecureUsersDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kHttpsFirstModeV2ForTypicallySecureUsers)}, |
| |
| {"enable-drdc", flag_descriptions::kEnableDrDcName, |
| flag_descriptions::kEnableDrDcDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kEnableDrDc)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"traffic-counters", flag_descriptions::kTrafficCountersEnabledName, |
| flag_descriptions::kTrafficCountersEnabledDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kTrafficCountersEnabled)}, |
| |
| {"traffic-counters-for-wifi-testing", |
| flag_descriptions::kTrafficCountersForWiFiTestingName, |
| flag_descriptions::kTrafficCountersForWiFiTestingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kTrafficCountersForWiFiTesting)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| {"api-contextual-tasks-private", |
| flag_descriptions::kApiContextualTasksPrivateName, |
| flag_descriptions::kApiContextualTasksPrivateDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kApiContextualTasksPrivate)}, |
| |
| {"api-mime-handler", flag_descriptions::kApiMimeHandlerName, |
| flag_descriptions::kApiMimeHandlerDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kApiMimeHandler)}, |
| |
| {"experimental-omnibox-labs", |
| flag_descriptions::kExperimentalOmniboxLabsName, |
| flag_descriptions::kExperimentalOmniboxLabsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(extensions_features::kExperimentalOmniboxLabs)}, |
| |
| {kExtensionAiDataInternalName, |
| flag_descriptions::kExtensionAiDataCollectionName, |
| flag_descriptions::kExtensionAiDataCollectionDescription, kOsDesktop, |
| SINGLE_VALUE_TYPE(switches::kExtensionAiDataCollection)}, |
| |
| {"extensions-collapse-main-menu", |
| flag_descriptions::kExtensionsCollapseMainMenuName, |
| flag_descriptions::kExtensionsCollapseMainMenuDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kExtensionsCollapseMainMenu)}, |
| |
| {"extensions-menu-access-control", |
| flag_descriptions::kExtensionsMenuAccessControlName, |
| flag_descriptions::kExtensionsMenuAccessControlDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kExtensionsMenuAccessControl)}, |
| |
| {"iph-extensions-menu-feature", |
| flag_descriptions::kIPHExtensionsMenuFeatureName, |
| flag_descriptions::kIPHExtensionsMenuFeatureDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(feature_engagement::kIPHExtensionsMenuFeature)}, |
| |
| {"iph-extensions-request-access-button-feature", |
| flag_descriptions::kIPHExtensionsRequestAccessButtonFeatureName, |
| flag_descriptions::kIPHExtensionsRequestAccessButtonFeatureDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| feature_engagement::kIPHExtensionsRequestAccessButtonFeature)}, |
| |
| {"extension-tab-context-menu", |
| flag_descriptions::kExtensionTabContextMenuName, |
| flag_descriptions::kExtensionTabContextMenuDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kExtensionTabContextMenu)}, |
| #endif // ENABLE_EXTENSIONS |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"region-capture-cross-tab", flag_descriptions::kCrossTabRegionCaptureName, |
| flag_descriptions::kCrossTabRegionCaptureDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kRegionCaptureOfOtherTabs)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"skia-graphite", flag_descriptions::kSkiaGraphiteName, |
| flag_descriptions::kSkiaGraphiteDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kSkiaGraphite, |
| kSkiaGraphiteVariations, |
| "SkiaGraphite")}, |
| |
| {"skia-graphite-precompilation", |
| flag_descriptions::kSkiaGraphitePrecompilationName, |
| flag_descriptions::kSkiaGraphitePrecompilationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kSkiaGraphitePrecompilation)}, |
| |
| {"enable-tab-audio-muting", flag_descriptions::kTabAudioMutingName, |
| flag_descriptions::kTabAudioMutingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kEnableTabMuting)}, |
| |
| {"ntp-customize-webui-android", |
| flag_descriptions::kNtpCustomizeWebUiAndroidName, |
| flag_descriptions::kNtpCustomizeWebUiAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(ntp_features::kNtpCustomizeWebUiAndroid)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"customize-chrome-side-panel-extensions-card", |
| flag_descriptions::kCustomizeChromeSidePanelExtensionsCardName, |
| flag_descriptions::kCustomizeChromeSidePanelExtensionsCardDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kCustomizeChromeSidePanelExtensionsCard)}, |
| |
| {"customize-chrome-wallpaper-search", |
| flag_descriptions::kCustomizeChromeWallpaperSearchName, |
| flag_descriptions::kCustomizeChromeWallpaperSearchDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kCustomizeChromeWallpaperSearch)}, |
| |
| {"customize-chrome-wallpaper-search-button", |
| flag_descriptions::kCustomizeChromeWallpaperSearchButtonName, |
| flag_descriptions::kCustomizeChromeWallpaperSearchButtonDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kCustomizeChromeWallpaperSearchButton)}, |
| |
| {"customize-chrome-wallpaper-search-inspiration-card", |
| flag_descriptions::kCustomizeChromeWallpaperSearchInspirationCardName, |
| flag_descriptions:: |
| kCustomizeChromeWallpaperSearchInspirationCardDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| ntp_features::kCustomizeChromeWallpaperSearchInspirationCard)}, |
| |
| {"wallpaper-search-settings-visibility", |
| flag_descriptions::kWallpaperSearchSettingsVisibilityName, |
| flag_descriptions::kWallpaperSearchSettingsVisibilityDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(optimization_guide::features::internal:: |
| kWallpaperSearchSettingsVisibility)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-component-updater-test-request", |
| flag_descriptions::kComponentUpdaterTestRequestName, |
| flag_descriptions::kComponentUpdaterTestRequestDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE_AND_VALUE(switches::kComponentUpdater, |
| component_updater::kSwitchTestRequestParam)}, |
| |
| {kGrowthCampaignsTestTag, |
| flag_descriptions::kCampaignsComponentUpdaterTestTagName, |
| flag_descriptions::kCampaignsComponentUpdaterTestTagDescription, kOsCrOS, |
| STRING_VALUE_TYPE(switches::kCampaignsTestTag, "")}, |
| |
| {kGrowthCampaigns, flag_descriptions::kCampaignsOverrideName, |
| flag_descriptions::kCampaignsOverrideDescription, kOsCrOS, |
| STRING_VALUE_TYPE(ash::switches::kGrowthCampaigns, "")}, |
| |
| {"demo-mode-test-tag", |
| flag_descriptions::kDemoModeComponentUpdaterTestTagName, |
| flag_descriptions::kDemoModeComponentUpdaterTestTagDescription, kOsCrOS, |
| STRING_VALUE_TYPE(switches::kDemoModeTestTag, "")}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) |
| {"enable-delegated-compositing", |
| flag_descriptions::kEnableDelegatedCompositingName, |
| flag_descriptions::kEnableDelegatedCompositingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDelegatedCompositing)}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"auto-picture-in-picture-on-window-occluded", |
| flag_descriptions::kAutoPictureInPictureOnWindowOccludedName, |
| flag_descriptions::kAutoPictureInPictureOnWindowOccludedDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kAutoPictureInPictureOnWindowOccluded)}, |
| |
| {"document-picture-in-picture-animate-resize", |
| flag_descriptions::kDocumentPictureInPictureAnimateResizeName, |
| flag_descriptions::kDocumentPictureInPictureAnimateResizeDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kDocumentPictureInPictureAnimateResize)}, |
| |
| {"browser-initiated-automatic-picture-in-picture", |
| flag_descriptions::kBrowserInitiatedAutomaticPictureInPictureName, |
| flag_descriptions::kBrowserInitiatedAutomaticPictureInPictureDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kBrowserInitiatedAutomaticPictureInPicture)}, |
| |
| {"browser-launch-metadata-reporting", |
| flag_descriptions::kBrowserLaunchMetadataReportingName, |
| flag_descriptions::kBrowserLaunchMetadataReportingDescription, |
| kOsLinux | kOsMac | kOsWin, |
| FEATURE_VALUE_TYPE(enterprise_reporting::kBrowserLaunchMetadataReporting)}, |
| |
| {"picture-in-picture-mute-control", |
| flag_descriptions::kPictureInPictureMuteControlName, |
| flag_descriptions::kPictureInPictureMuteControlDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(media::kPictureInPictureMuteControl)}, |
| |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"allow-delayed-audio-focus-gain-android", |
| flag_descriptions::kAllowDelayedAudioFocusGainAndroidName, |
| flag_descriptions::kAllowDelayedAudioFocusGainAndroidDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(media::kAllowDelayedAudioFocusGainAndroid)}, |
| |
| {"auto-doc-pip-permission-prompt-android", |
| flag_descriptions::kAutoDocPiPPermissionPromptAndroidName, |
| flag_descriptions::kAutoDocPiPPermissionPromptAndroidDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(media::kAutoDocPiPPermissionPromptAndroid)}, |
| |
| {"auto-picture-in-picture-android", |
| flag_descriptions::kAutoPictureInPictureAndroidName, |
| flag_descriptions::kAutoPictureInPictureAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kAutoPictureInPictureAndroid)}, |
| |
| {"picture-in-picture-moves-toolbar-android", |
| flag_descriptions::kPictureInPictureMovesToolbarAndroidName, |
| flag_descriptions::kPictureInPictureMovesToolbarAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPictureInPictureMovesToolbarAndroid)}, |
| #endif |
| |
| {"document-patching", flag_descriptions::kDocumentPatchingName, |
| flag_descriptions::kDocumentPatchingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kDocumentPatching)}, |
| |
| {"route-matching", flag_descriptions::kRouteMatchingName, |
| flag_descriptions::kRouteMatchingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kRouteMatching)}, |
| |
| {"dse-preload2", flag_descriptions::kDsePreload2Name, |
| flag_descriptions::kDsePreload2Description, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDsePreload2)}, |
| {"dse-preload2-on-press", flag_descriptions::kDsePreload2OnPressName, |
| flag_descriptions::kDsePreload2OnPressDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDsePreload2OnPress)}, |
| {"omnibox-search-prefetch-on-enter-key-down", |
| flag_descriptions::kOmniboxSearchPrefetchOnEnterKeyDownName, |
| flag_descriptions::kOmniboxSearchPrefetchOnEnterKeyDownDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxSearchPrefetchOnEnterKeyDown)}, |
| |
| {"http-cache-custom-backend", |
| flag_descriptions::kHttpCacheCustomBackendName, |
| flag_descriptions::kHttpCacheCustomBackendDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(net::features::kDiskCacheBackendExperiment, |
| kDiskCacheBackendExperimentVariations, |
| "DiskCacheBackendExperiment")}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-libinput-to-handle-touchpad", |
| flag_descriptions::kEnableLibinputToHandleTouchpadName, |
| flag_descriptions::kEnableLibinputToHandleTouchpadDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kLibinputHandleTouchpad)}, |
| |
| {"enable-desks-templates", flag_descriptions::kDesksTemplatesName, |
| flag_descriptions::kDesksTemplatesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDesksTemplates)}, |
| |
| {"vc-background-replace", flag_descriptions::kVcBackgroundReplaceName, |
| flag_descriptions::kVcBackgroundReplaceDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcBackgroundReplace)}, |
| |
| {"vc-relighting-inference-backend", |
| flag_descriptions::kVcRelightingInferenceBackendName, |
| flag_descriptions::kVcRelightingInferenceBackendDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| ash::features::kVcRelightingInferenceBackend, |
| kVcRelightingInferenceBackendVariations, |
| "VcRelightingInferenceBackend")}, |
| {"vc-retouch-inference-backend", |
| flag_descriptions::kVcRetouchInferenceBackendName, |
| flag_descriptions::kVcRetouchInferenceBackendDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kVcRetouchInferenceBackend, |
| kVcRetouchInferenceBackendVariations, |
| "VcRetouchInferenceBackend")}, |
| {"vc-segmentation-model", flag_descriptions::kVcSegmentationModelName, |
| flag_descriptions::kVcSegmentationModelDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kVcSegmentationModel, |
| kVcSegmentationModelVariations, |
| "VCSegmentationModel")}, |
| {"vc-segmentation-inference-backend", |
| flag_descriptions::kVcSegmentationInferenceBackendName, |
| flag_descriptions::kVcSegmentationInferenceBackendDescription, kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| ash::features::kVcSegmentationInferenceBackend, |
| kVcSegmentationInferenceBackendVariations, |
| "VcSegmentationInferenceBackend")}, |
| {"vc-web-api", flag_descriptions::kVcWebApiName, |
| flag_descriptions::kVcWebApiDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcWebApi)}, |
| {kVcTrayMicIndicatorInternalName, |
| flag_descriptions::kVcTrayMicIndicatorName, |
| flag_descriptions::kVcTrayMicIndicatorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcTrayMicIndicator)}, |
| {kVcTrayTitleHeaderInternalName, flag_descriptions::kVcTrayTitleHeaderName, |
| flag_descriptions::kVcTrayTitleHeaderDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kVcTrayTitleHeader)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"animated-image-drag-shadow", |
| flag_descriptions::kAnimatedImageDragShadowName, |
| flag_descriptions::kAnimatedImageDragShadowDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAnimatedImageDragShadow)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"main-node-annotations", flag_descriptions::kMainNodeAnnotationsName, |
| flag_descriptions::kMainNodeAnnotationsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kMainNodeAnnotations)}, |
| #endif |
| |
| {"origin-agent-cluster-default", |
| flag_descriptions::kOriginAgentClusterDefaultName, |
| flag_descriptions::kOriginAgentClusterDefaultDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kOriginAgentClusterDefaultEnabled)}, |
| |
| {"origin-keyed-processes-by-default", |
| flag_descriptions::kOriginKeyedProcessesByDefaultName, |
| flag_descriptions::kOriginKeyedProcessesByDefaultDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kOriginKeyedProcessesByDefault)}, |
| |
| {"collaboration-messaging", flag_descriptions::kCollaborationMessagingName, |
| flag_descriptions::kCollaborationMessagingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(collaboration::features::kCollaborationMessaging)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-fake-keyboard-heuristic", |
| flag_descriptions::kEnableFakeKeyboardHeuristicName, |
| flag_descriptions::kEnableFakeKeyboardHeuristicDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kEnableFakeKeyboardHeuristic)}, |
| {"enable-fake-mouse-heuristic", |
| flag_descriptions::kEnableFakeMouseHeuristicName, |
| flag_descriptions::kEnableFakeMouseHeuristicDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kEnableFakeMouseHeuristic)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| {"enable-isolated-sandboxed-iframes", |
| flag_descriptions::kIsolatedSandboxedIframesName, |
| flag_descriptions::kIsolatedSandboxedIframesDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| blink::features::kIsolateSandboxedIframes, |
| kIsolateSandboxedIframesGroupingVariations, |
| "IsolateSandboxedIframes" /* trial name */)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-variable-refresh-rate", |
| flag_descriptions::kEnableVariableRefreshRateName, |
| flag_descriptions::kEnableVariableRefreshRateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kEnableVariableRefreshRate)}, |
| |
| {"enable-projector-app-debug", flag_descriptions::kProjectorAppDebugName, |
| flag_descriptions::kProjectorAppDebugDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kProjectorAppDebug)}, |
| |
| {"enable-annotator-mode", flag_descriptions::kAnnotatorModeName, |
| flag_descriptions::kAnnotatorModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kAnnotatorMode)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| {"approximate-geolocation-permission", |
| flag_descriptions::kApproximateGeolocationPermissionName, |
| flag_descriptions::kApproximateGeolocationPermissionDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| content_settings::features::kApproximateGeolocationPermission)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) |
| |
| {"omit-cors-client-cert", flag_descriptions::kOmitCorsClientCertName, |
| flag_descriptions::kOmitCorsClientCertDescription, kOsAll, |
| FEATURE_VALUE_TYPE(network::features::kOmitCorsClientCert)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"always-enable-hdcp", flag_descriptions::kAlwaysEnableHdcpName, |
| flag_descriptions::kAlwaysEnableHdcpDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kAlwaysEnableHdcpChoices)}, |
| {"enable-touchpads-in-diagnostics-app", |
| flag_descriptions::kEnableTouchpadsInDiagnosticsAppName, |
| flag_descriptions::kEnableTouchpadsInDiagnosticsAppDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableTouchpadsInDiagnosticsApp)}, |
| {"enable-external-keyboards-in-diagnostics-app", |
| flag_descriptions::kEnableExternalKeyboardsInDiagnosticsAppName, |
| flag_descriptions::kEnableExternalKeyboardsInDiagnosticsAppDescription, |
| kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kEnableExternalKeyboardsInDiagnostics)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"pwa-restore-ui", flag_descriptions::kPwaRestoreUiName, |
| flag_descriptions::kPwaRestoreUiDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPwaRestoreUi)}, |
| |
| {"pwa-restore-ui-at-startup", flag_descriptions::kPwaRestoreUiAtStartupName, |
| flag_descriptions::kPwaRestoreUiAtStartupDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPwaRestoreUiAtStartup)}, |
| |
| {"always-show-install-disambiguation-dialog", |
| flag_descriptions::kAlwaysShowInstallDisambiguationDialogName, |
| flag_descriptions::kAlwaysShowInstallDisambiguationDialogDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| webapps::features::kAlwaysShowInstallDisambiguationDialog)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"safe-browsing-local-lists-use-sbv5", |
| flag_descriptions::kSafeBrowsingLocalListsUseSBv5Name, |
| flag_descriptions::kSafeBrowsingLocalListsUseSBv5Description, kOsAll, |
| FEATURE_VALUE_TYPE(safe_browsing::kLocalListsUseSBv5)}, |
| |
| {"xslt", flag_descriptions::kXSLTName, flag_descriptions::kXSLTDescription, |
| kOsAll, FEATURE_VALUE_TYPE(blink::features::kXSLT)}, |
| |
| #if BUILDFLAG(ENABLE_SYMPHONIA) |
| {"symphonia-audio-decoding", flag_descriptions::kSymphoniaAudioDecodingName, |
| flag_descriptions::kSymphoniaAudioDecodingDescription, kOsAll, |
| MULTI_VALUE_TYPE(kSymphoniaAudioDecodingChoices)}, |
| #endif |
| |
| #if BUILDFLAG(ENABLE_SYMPHONIA_DEMUXER) |
| {"symphonia-demuxing", flag_descriptions::kSymphoniaDemuxingName, |
| flag_descriptions::kSymphoniaDemuxingDescription, kOsAll, |
| MULTI_VALUE_TYPE(kSymphoniaDemuxingChoices)}, |
| #endif |
| |
| {"safety-check-unused-site-permissions", |
| flag_descriptions::kSafetyCheckUnusedSitePermissionsName, |
| flag_descriptions::kSafetyCheckUnusedSitePermissionsDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| content_settings::features::kSafetyCheckUnusedSitePermissions, |
| kSafetyCheckUnusedSitePermissionsVariations, |
| "SafetyCheckUnusedSitePermissions")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"safety-fre-promo", flag_descriptions::kSafetyFrePromoName, |
| flag_descriptions::kSafetyFrePromoDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kSafetyFrePromo, |
| kSafetyFrePromoVariations, |
| "SafetyFrePromo")}, |
| |
| {"safety-hub-weak-reused-passwords", |
| flag_descriptions::kSafetyHubWeakAndReusedPasswordsName, |
| flag_descriptions::kSafetyHubWeakAndReusedPasswordsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kSafetyHubWeakAndReusedPasswords)}, |
| |
| {"safety-hub-local-passwords-module", |
| flag_descriptions::kSafetyHubLocalPasswordsModuleName, |
| flag_descriptions::kSafetyHubLocalPasswordsModuleDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kSafetyHubLocalPasswordsModule)}, |
| |
| {"safety-hub-unified-passwords-module", |
| flag_descriptions::kSafetyHubUnifiedPasswordsModuleName, |
| flag_descriptions::kSafetyHubUnifiedPasswordsModuleDescription, kOsAndroid, |
| MULTI_VALUE_TYPE(kSafetyHubUnifiedPasswordsModuleChoices)}, |
| |
| {"popular-sites-us-refresh", flag_descriptions::kPopularSitesRefreshUsName, |
| flag_descriptions::kPopularSitesRefreshUsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_tiles::kPopularSitesRefreshUs, |
| kPopularSitesRefreshUsChoices, |
| "PopularSitesRefreshUs")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| {"enable-web-bluetooth-confirm-pairing-support", |
| flag_descriptions::kWebBluetoothConfirmPairingSupportName, |
| flag_descriptions::kWebBluetoothConfirmPairingSupportDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(device::features::kWebBluetoothConfirmPairingSupport)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| |
| {"enable-perfetto-system-tracing", |
| flag_descriptions::kEnablePerfettoSystemTracingName, |
| flag_descriptions::kEnablePerfettoSystemTracingDescription, |
| kOsAndroid | kOsLinux, |
| FEATURE_VALUE_TYPE(features::kEnablePerfettoSystemTracing)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"browsing-data-model-clank", flag_descriptions::kBrowsingDataModelName, |
| flag_descriptions::kBrowsingDataModelDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(browsing_data::features::kBrowsingDataModel)}, |
| |
| {"dbd-password-removal-on-android", |
| flag_descriptions::kDbdPasswordRemovalOnAndroidName, |
| flag_descriptions::kDbdPasswordRemovalOnAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(browsing_data::features::kDbdPasswordRemovalOnAndroid)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-seamless-refresh-rate-switching", |
| flag_descriptions::kEnableSeamlessRefreshRateSwitchingName, |
| flag_descriptions::kEnableSeamlessRefreshRateSwitchingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSeamlessRefreshRateSwitching)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"css-gamut-mapping", flag_descriptions::kCssGamutMappingName, |
| flag_descriptions::kCssGamutMappingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kBakedGamutMapping)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-media-dynamic-cgroup", flag_descriptions::kMediaDynamicCgroupName, |
| flag_descriptions::kMediaDynamicCgroupDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootMediaDynamicCgroup")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"background-resource-fetch", |
| flag_descriptions::kBackgroundResourceFetchName, |
| flag_descriptions::kBackgroundResourceFetchDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kBackgroundResourceFetch)}, |
| |
| {"renderer-side-content-decoding", |
| flag_descriptions::kRendererSideContentDecodingName, |
| flag_descriptions::kRendererSideContentDecodingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(network::features::kRendererSideContentDecoding)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"external-navigation-debug-logs", |
| flag_descriptions::kExternalNavigationDebugLogsName, |
| flag_descriptions::kExternalNavigationDebugLogsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(external_intents::kExternalNavigationDebugLogs)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"aim-3p-entrypoint", flag_descriptions::kAim3pEntrypointName, |
| flag_descriptions::kAim3pEntrypointDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kAim3pEntrypoint, |
| kAim3pEntrypointVariations, |
| "Aim3pEntrypoint")}, |
| |
| {"aim-entry-point-direct-navigation", |
| flag_descriptions::kAiModeEntryPointAlwaysNavigatesName, |
| flag_descriptions::kAiModeEntryPointAlwaysNavigatesDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kAiModeEntryPointAlwaysNavigates)}, |
| |
| {"omnibox-dynamic-ai-mode-button", |
| flag_descriptions::kDynamicAiModeButtonName, |
| flag_descriptions::kDynamicAiModeButtonDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kWebUIOmniboxDynamicAiModeButton, |
| kWebUIOmniboxDynamicAiModeButtonVariations, |
| "WebUIOmniboxDynamicAiModeButton")}, |
| |
| {"ntp-realbox-dynamic-ai-mode-button", |
| flag_descriptions::kNtpRealboxDynamicAiModeButtonName, |
| flag_descriptions::kNtpRealboxDynamicAiModeButtonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_realbox::kNtpRealboxDynamicAiModeButton)}, |
| |
| {"omnibox-ai-mode-space-does-not-activate", |
| flag_descriptions::kOmniboxAiModeSpaceDoesNotActivateName, |
| flag_descriptions::kOmniboxAiModeSpaceDoesNotActivateDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kAiModeSpaceDoesNotActivate)}, |
| |
| {"omnibox-dynamic-aim-submit", |
| flag_descriptions::kOmniboxDynamicAimSubmitName, |
| flag_descriptions::kOmniboxDynamicAimSubmitDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kDynamicAimSubmit, |
| kOmniboxDynamicSubmitVariations, |
| "OmniboxDynamicSubmitVariations")}, |
| {"omnibox-loom", flag_descriptions::kOmniboxLoomName, |
| flag_descriptions::kOmniboxLoomDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxEverywhere, |
| kOmniboxEverywhereVariations, |
| "OmniboxEverywhere")}, |
| |
| {"webui-omnibox-aim-popup-disable-animation", |
| flag_descriptions::kWebUIOmniboxAimPopupDisableAnimationName, |
| flag_descriptions::kWebUIOmniboxAimPopupDisableAnimationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxAimPopupDisableAnimation)}, |
| |
| {"webui-omnibox-hide-aim-url", |
| flag_descriptions::kWebUIOmniboxHideAimUrlName, |
| flag_descriptions::kWebUIOmniboxHideAimUrlDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kHideAimEntrypointForUrlSuggestions)}, |
| |
| {"webui-omnibox-popup-selection-control", |
| flag_descriptions::kWebUIOmniboxPopupSelectionControlName, |
| flag_descriptions::kWebUIOmniboxPopupSelectionControlDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kWebUIOmniboxPopupSelectionControl)}, |
| |
| {"webui-omnibox-simplification", |
| flag_descriptions::kWebUIOmniboxSimplificationName, |
| flag_descriptions::kWebUIOmniboxSimplificationDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| omnibox::internal::kWebUIOmniboxSimplification, |
| kWebUIOmniboxSimplificationVariations, |
| "WebUIOmniboxSimplificationVariations")}, |
| |
| {"webui-omnibox-ask-g-about-this-page", |
| flag_descriptions::kWebUiOmniboxAskGAboutThisPageName, |
| flag_descriptions::kWebUiOmniboxAskGAboutThisPageDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kWebUIOmniboxAskGAboutThisPage, |
| kWebUiOmniboxAskGAboutThisPageVariations, |
| "WebUiOmniboxAskGAboutThisPage")}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"webui-omnibox-aim-popup", flag_descriptions::kWebUIOmniboxAimPopupName, |
| flag_descriptions::kWebUIOmniboxAimPopupDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::internal::kWebUIOmniboxAimPopup)}, |
| |
| {"webui-omnibox-full-popup", flag_descriptions::kWebUIOmniboxFullPopupName, |
| flag_descriptions::kWebUIOmniboxFullPopupDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kWebUIOmniboxFullPopup, |
| kWebUIOmniboxFullPopupVariations, |
| "WebUIOmniboxFullPopup")}, |
| |
| {"webui-omnibox-popup", flag_descriptions::kWebUIOmniboxPopupName, |
| flag_descriptions::kWebUIOmniboxPopupDescription, kOsAll, |
| FEATURE_VALUE_TYPE(omnibox::internal::kWebUIOmniboxPopup)}, |
| |
| {"webui-omnibox-popup-debug", |
| flag_descriptions::kWebUIOmniboxPopupDebugName, |
| flag_descriptions::kWebUIOmniboxPopupDebugDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kWebUIOmniboxPopupDebug, |
| kWebUIOmniboxPopupDebugVariations, |
| "WebUIOmniboxPopupDebugVariations")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"use-webui-ntp-3p-dse", flag_descriptions::kUseWebUiNtp3PDSEName, |
| flag_descriptions::kUseWebUiNtp3PDSEDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kUseWebUiNtp3PDSE)}, |
| |
| {"use-webui-ntp-android", flag_descriptions::kUseWebUiNtpAndroidName, |
| flag_descriptions::kUseWebUiNtpAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kUseWebUiNtpAndroid)}, |
| |
| {"webui-android-theming", flag_descriptions::kWebUiAndroidThemingName, |
| flag_descriptions::kWebUiAndroidThemingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kWebUiAndroidTheming)}, |
| |
| {"tab-switcher-group-suggestions-android", |
| flag_descriptions::kTabSwitcherGroupSuggestionsAndroidName, |
| flag_descriptions::kTabSwitcherGroupSuggestionsAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabSwitcherGroupSuggestionsAndroid)}, |
| |
| {"tab-switcher-group-suggestions-test-mode-android", |
| flag_descriptions::kTabSwitcherGroupSuggestionsTestModeAndroidName, |
| flag_descriptions::kTabSwitcherGroupSuggestionsTestModeAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kTabSwitcherGroupSuggestionsTestModeAndroid)}, |
| |
| {"chrome-native-url-overriding", |
| flag_descriptions::kChromeNativeUrlOverridingName, |
| flag_descriptions::kChromeNativeUrlOverridingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kChromeNativeUrlOverriding)}, |
| #endif |
| |
| {"group-promo-prototype", flag_descriptions::kGroupPromoPrototypeName, |
| flag_descriptions::kGroupPromoPrototypeDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| visited_url_ranking::features::kGroupSuggestionService, |
| kGroupSuggestionVariations, |
| "GroupPromoPrototype")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"group-promo-prototype-cpa", |
| flag_descriptions::kGroupPromoPrototypeCpaName, |
| flag_descriptions::kGroupPromoPrototypeCpaDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| segmentation_platform::features::kContextualPageActionTabGrouping)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"use-dmsaa-for-tiles", flag_descriptions::kUseDMSAAForTilesName, |
| flag_descriptions::kUseDMSAAForTilesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(::features::kUseDMSAAForTiles)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-welcome-tour", flag_descriptions::kWelcomeTourName, |
| flag_descriptions::kWelcomeTourDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWelcomeTour)}, |
| {"enable-welcome-tour-force-user-eligibility", |
| flag_descriptions::kWelcomeTourForceUserEligibilityName, |
| flag_descriptions::kWelcomeTourForceUserEligibilityDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWelcomeTourForceUserEligibility)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"google-one-offer-files-banner", |
| flag_descriptions::kGoogleOneOfferFilesBannerName, |
| flag_descriptions::kGoogleOneOfferFilesBannerDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kGoogleOneOfferFilesBanner)}, |
| #endif |
| |
| {"sync-account-settings", flag_descriptions::kSyncAccountSettingsName, |
| flag_descriptions::kSyncAccountSettingsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(syncer::kSyncAccountSettings)}, |
| |
| {"sync-autofill-valuable-metadata", |
| flag_descriptions::kSyncAutofillValuableMetadataName, |
| flag_descriptions::kSyncAutofillValuableMetadataDescription, kOsAll, |
| FEATURE_VALUE_TYPE(syncer::kSyncAutofillValuableMetadata)}, |
| |
| {"sync-wallet-flight-reservations", |
| flag_descriptions::kSyncWalletFlightReservationsName, |
| flag_descriptions::kSyncWalletFlightReservationsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(syncer::kSyncWalletFlightReservations)}, |
| |
| {"sync-wallet-vehicle-registrations", |
| flag_descriptions::kSyncWalletVehicleRegistrationsName, |
| flag_descriptions::kSyncWalletVehicleRegistrationsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(syncer::kSyncWalletVehicleRegistrations)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cros-labs-window-cycle-shortcut", |
| flag_descriptions::kSameAppWindowCycleName, |
| flag_descriptions::kSameAppWindowCycleDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSameAppWindowCycle)}, |
| {"printing-ppd-channel", flag_descriptions::kPrintingPpdChannelName, |
| flag_descriptions::kPrintingPpdChannelDescription, kOsCrOS, |
| MULTI_VALUE_TYPE(kPrintingPpdChannelChoices)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-eol-notification-reset-dismissed-prefs", |
| flag_descriptions::kEolResetDismissedPrefsName, |
| flag_descriptions::kEolResetDismissedPrefsDescription, kOsCrOS, |
| SINGLE_VALUE_TYPE(ash::switches::kEolResetDismissedPrefs)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"render-arc-notifications-by-chrome", |
| flag_descriptions::kRenderArcNotificationsByChromeName, |
| flag_descriptions::kRenderArcNotificationsByChromeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kRenderArcNotificationsByChrome)}, |
| #endif |
| |
| {"enable-compression-dictionary-transport", |
| flag_descriptions::kCompressionDictionaryTransportName, |
| flag_descriptions::kCompressionDictionaryTransportDescription, kOsAll, |
| FEATURE_VALUE_TYPE(network::features::kCompressionDictionaryTransport)}, |
| |
| {"enable-compression-dictionary-ttl", |
| flag_descriptions::kCompressionDictionaryTTLName, |
| flag_descriptions::kCompressionDictionaryTTLDescription, kOsAll, |
| FEATURE_VALUE_TYPE(network::features::kCompressionDictionaryTTL)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"deprecated-external-picker-function", |
| flag_descriptions::kDeprecatedExternalPickerFunctionName, |
| flag_descriptions::kDeprecatedExternalPickerFunctionDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(ui::kDeprecatedExternalPickerFunction)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-progress-bar-visual-update", |
| flag_descriptions::kAndroidProgressBarVisualUpdateName, |
| flag_descriptions::kAndroidProgressBarVisualUpdateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidProgressBarVisualUpdate)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-missive-storage-config", flag_descriptions::kMissiveStorageName, |
| flag_descriptions::kMissiveStorageDescription, kOsCrOS, |
| PLATFORM_FEATURE_WITH_PARAMS_VALUE_TYPE( |
| "CrOSLateBootMissiveStorage", |
| kCrOSLateBootMissiveStorageDefaultVariations, |
| "CrOSLateBootMissiveStorage")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"cast-mirroring-native-nv12", |
| flag_descriptions::kCastMirroringNativeNV12Name, |
| flag_descriptions::kCastMirroringNativeNV12Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(mirroring::features::kCastMirroringNativeNV12)}, |
| {"cast-mirroring-target-playout-delay", |
| flag_descriptions::kCastMirroringTargetPlayoutDelayName, |
| flag_descriptions::kCastMirroringTargetPlayoutDelayDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kCastMirroringTargetPlayoutDelayChoices)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"separate-web-app-shortcut-badge-icon", |
| flag_descriptions::kSeparateWebAppShortcutBadgeIconName, |
| flag_descriptions::kSeparateWebAppShortcutBadgeIconDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSeparateWebAppShortcutBadgeIcon)}, |
| {"enable-audio-focus-enforcement", |
| flag_descriptions::kEnableAudioFocusEnforcementName, |
| flag_descriptions::kEnableAudioFocusEnforcementDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(media_session::features::kAudioFocusEnforcement)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-process-per-site-up-to-main-frame-threshold", |
| flag_descriptions::kEnableProcessPerSiteUpToMainFrameThresholdName, |
| flag_descriptions::kEnableProcessPerSiteUpToMainFrameThresholdDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"get-display-media-confers-activation", |
| flag_descriptions::kGetDisplayMediaConfersActivationName, |
| flag_descriptions::kGetDisplayMediaConfersActivationDescription, |
| kOsDesktop, FEATURE_VALUE_TYPE(media::kGetDisplayMediaConfersActivation)}, |
| #endif |
| |
| {"geic-enabled", flag_descriptions::kGeicEnabledName, |
| flag_descriptions::kGeicEnabledDescription, kOsDesktop, |
| SINGLE_VALUE_TYPE(geic::switches::kGeicEnabled)}, |
| |
| {"geic-guest-url", flag_descriptions::kGeicGuestUrlName, |
| flag_descriptions::kGeicGuestUrlDescription, kOsDesktop, |
| STRING_VALUE_TYPE(geic::kGeicGuestURLSwitch, "")}, |
| |
| {"glass-frame", flag_descriptions::kGlassFrameName, |
| flag_descriptions::kGlassFrameDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kGlassFrame)}, |
| |
| {"desktop-glow-up", flag_descriptions::kDesktopGlowUpName, |
| flag_descriptions::kDesktopGlowUpDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kDesktopGlowUp)}, |
| |
| {"collapse-tab-group-during-drag", |
| flag_descriptions::kCollapseTabGroupDuringDragName, |
| flag_descriptions::kCollapseTabGroupDuringDragDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kCollapseTabGroupDuringDrag)}, |
| |
| {"toolbar-glow-up", flag_descriptions::kToolbarGlowUpName, |
| flag_descriptions::kToolbarGlowUpDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kToolbarGlowUp, |
| kToolbarGlowUpVariations, |
| "ToolbarGlowUp")}, |
| |
| {"rounded-icons", flag_descriptions::kRoundedIconsName, |
| flag_descriptions::kRoundedIconsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kRoundedIcons)}, |
| |
| {"webui-rounded-icons", flag_descriptions::kWebUIRoundedIconsName, |
| flag_descriptions::kWebUIRoundedIconsDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kWebUIRoundedIcons)}, |
| |
| {"tab-group-color-refresh", flag_descriptions::kTabGroupColorRefreshName, |
| flag_descriptions::kTabGroupColorRefreshDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kTabGroupColorRefresh)}, |
| |
| {"menu-simplification", flag_descriptions::kMenuSimplificationName, |
| flag_descriptions::kMenuSimplificationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kMenuSimplification)}, |
| |
| {"webui-refresh-2026", flag_descriptions::kWebuiRefresh2026Name, |
| flag_descriptions::kWebuiRefresh2026Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebuiRefresh2026)}, |
| |
| {"app-menu-glow-up", flag_descriptions::kAppMenuGlowUpName, |
| flag_descriptions::kAppMenuGlowUpDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kAppMenuGlowUp)}, |
| |
| {"render-document", flag_descriptions::kRenderDocumentName, |
| flag_descriptions::kRenderDocumentDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kRenderDocument, |
| kRenderDocumentVariations, |
| "RenderDocument")}, |
| |
| {"default-site-instance-groups", |
| flag_descriptions::kDefaultSiteInstanceGroupsName, |
| flag_descriptions::kDefaultSiteInstanceGroupsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDefaultSiteInstanceGroups)}, |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| {"cws-review-prompting-native-ui", |
| flag_descriptions::kCWSReviewPromptingNativeUIName, |
| flag_descriptions::kCWSReviewPromptingNativeUIDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kCWSReviewPromptingNativeUI)}, |
| #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) |
| |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| {"cws-info-fast-check", flag_descriptions::kCWSInfoFastCheckName, |
| flag_descriptions::kCWSInfoFastCheckDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions::kCWSInfoFastCheck)}, |
| |
| {"extension-disable-unsupported-developer-mode-extensions", |
| flag_descriptions::kExtensionDisableUnsupportedDeveloperName, |
| flag_descriptions::kExtensionDisableUnsupportedDeveloperDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| extensions_features::kExtensionDisableUnsupportedDeveloper)}, |
| #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"drive-fs-mirroring", flag_descriptions::kDriveFsMirroringName, |
| flag_descriptions::kDriveFsShowCSEFilesDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDriveFsMirroring)}, |
| {"cros-labs-continuous-overview-animation", |
| flag_descriptions::kContinuousOverviewScrollAnimationName, |
| flag_descriptions::kContinuousOverviewScrollAnimationDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kContinuousOverviewScrollAnimation)}, |
| {"cros-labs-window-splitting", flag_descriptions::kWindowSplittingName, |
| flag_descriptions::kWindowSplittingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kWindowSplitting)}, |
| {"cros-labs-tiling-window-resize", |
| flag_descriptions::kTilingWindowResizeName, |
| flag_descriptions::kTilingWindowResizeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kTilingWindowResize)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"autofill-enable-prefetching-risk-data-for-retrieval", |
| flag_descriptions::kAutofillEnablePrefetchingRiskDataForRetrievalName, |
| flag_descriptions:: |
| kAutofillEnablePrefetchingRiskDataForRetrievalDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnablePrefetchingRiskDataForRetrieval)}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"enable-user-navigation-capturing-pwa", |
| flag_descriptions::kPwaNavigationCapturingName, |
| flag_descriptions::kPwaNavigationCapturingDescription, |
| kOsLinux | kOsMac | kOsWin | kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kPwaNavigationCapturing, |
| kPwaNavigationCapturingVariations, |
| "PwaNavigationCapturing")}, |
| {"enable-user-navigation-capturing-pwa-testing-override", |
| flag_descriptions::kPwaNavigationCapturingNameTesting, |
| flag_descriptions::kPwaNavigationCapturingDescriptionTesting, |
| kOsLinux | kOsMac | kOsWin | kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| apps::features::kPwaNavigationCapturingTestingOverride, |
| kPwaNavigationCapturingVariationsForTesting, |
| "PwaNavigationCapturingTestingOverride")}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| {"deprecate-unload", flag_descriptions::kDeprecateUnloadName, |
| flag_descriptions::kDeprecateUnloadDescription, kOsAll | kDeprecated, |
| FEATURE_VALUE_TYPE(network::features::kDeprecateUnload)}, |
| |
| {"autofill-enable-fpan-risk-based-authentication", |
| flag_descriptions::kAutofillEnableFpanRiskBasedAuthenticationName, |
| flag_descriptions::kAutofillEnableFpanRiskBasedAuthenticationDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableFpanRiskBasedAuthentication)}, |
| |
| #if BUILDFLAG(IS_MAC) |
| {"enable-mac-pwas-notification-attribution", |
| flag_descriptions::kMacPWAsNotificationAttributionName, |
| flag_descriptions::kMacPWAsNotificationAttributionDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kAppShimNotificationAttribution)}, |
| |
| {"use-adhoc-signing-for-web-app-shims", |
| flag_descriptions::kUseAdHocSigningForWebAppShimsName, |
| flag_descriptions::kUseAdHocSigningForWebAppShimsDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kUseAdHocSigningForWebAppShims)}, |
| #endif // BUILDFLAG(IS_MAC) |
| |
| #if !BUILDFLAG(IS_CHROMEOS) |
| {"profiles-reordering", flag_descriptions::kProfilesReorderingName, |
| flag_descriptions::kProfilesReorderingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(switches::kProfilesReordering)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"flex-firmware-update", flag_descriptions::kFlexFirmwareUpdateName, |
| flag_descriptions::kFlexFirmwareUpdateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFlexFirmwareUpdate)}, |
| |
| {"ipp-first-setup-for-usb-printers", |
| flag_descriptions::kIppFirstSetupForUsbPrintersName, |
| flag_descriptions::kIppFirstSetupForUsbPrintersDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kIppFirstSetupForUsbPrinters)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) |
| {"enable-bound-session-credentials", |
| flag_descriptions::kEnableBoundSessionCredentialsName, |
| flag_descriptions::kEnableBoundSessionCredentialsDescription, |
| kOsMac | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kEnableBoundSessionCredentials)}, |
| {"enable-bound-session-credentials-software-keys-for-manual-testing", |
| flag_descriptions:: |
| kEnableBoundSessionCredentialsSoftwareKeysForManualTestingName, |
| flag_descriptions:: |
| kEnableBoundSessionCredentialsSoftwareKeysForManualTestingDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE( |
| unexportable_keys:: |
| kEnableBoundSessionCredentialsSoftwareKeysForManualTesting)}, |
| {"enable-unexportable-keys-spare-key-pool", |
| flag_descriptions::kEnableUnexportableKeysSpareKeyPoolName, |
| flag_descriptions::kEnableUnexportableKeysSpareKeyPoolDescription, kOsWin, |
| FEATURE_VALUE_TYPE( |
| unexportable_keys::kEnableUnexportableKeysSpareKeyPool)}, |
| #endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) |
| |
| #if BUILDFLAG(ENABLE_COMPOSE) |
| {"compose-selection-nudge", flag_descriptions::kComposeSelectionNudgeName, |
| flag_descriptions::kComposeSelectionNudgeDescription, |
| kOsWin | kOsLinux | kOsMac | kOsCrOS, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| compose::features::kEnableComposeSelectionNudge, |
| kComposeSelectionNudgeVariations, |
| "ComposeSelectionNudge")}, |
| #endif |
| |
| {"related-website-sets-permission-grants", |
| flag_descriptions::kShowRelatedWebsiteSetsPermissionGrantsName, |
| flag_descriptions::kShowRelatedWebsiteSetsPermissionGrantsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| permissions::features::kShowRelatedWebsiteSetsPermissionGrants)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cros-switcher", flag_descriptions::kCrosSwitcherName, |
| flag_descriptions::kCrosSwitcherDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kCrosSwitcher)}, |
| {"platform-keys-changes-wave-1", |
| flag_descriptions::kPlatformKeysChangesWave1Name, |
| flag_descriptions::kPlatformKeysChangesWave1Description, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kPlatformKeysChangesWave1)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"background-not-perceptible-binding", |
| flag_descriptions::kBackgroundNotPerceptibleBindingName, |
| flag_descriptions::kBackgroundNotPerceptibleBindingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(base::features::kBackgroundNotPerceptibleBinding)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cloud-gaming-device", flag_descriptions::kCloudGamingDeviceName, |
| flag_descriptions::kCloudGamingDeviceDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kCloudGamingDevice)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"use-fullscreen-insets-api", |
| flag_descriptions::kFullscreenInsetsApiMigrationName, |
| flag_descriptions::kFullscreenInsetsApiMigrationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kFullscreenInsetsApiMigration)}, |
| |
| {"use-fullscreen-insets-api-on-automotive", |
| flag_descriptions::kFullscreenInsetsApiMigrationOnAutomotiveName, |
| flag_descriptions::kFullscreenInsetsApiMigrationOnAutomotiveDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kFullscreenInsetsApiMigrationOnAutomotive)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"offline-auto-fetch", flag_descriptions::kOfflineAutoFetchName, |
| flag_descriptions::kOfflineAutoFetchDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kOfflineAutoFetch)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {kAssistantIphInternalName, flag_descriptions::kAssistantIphName, |
| flag_descriptions::kAssistantIphDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(feature_engagement::kIPHLauncherSearchHelpUiFeature)}, |
| |
| {"mahi-panel-resizable", flag_descriptions::kMahiPanelResizableName, |
| flag_descriptions::kMahiPanelResizableDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kMahiPanelResizable)}, |
| |
| {"mahi-summarize-selected", flag_descriptions::kMahiSummarizeSelectedName, |
| flag_descriptions::kMahiSummarizeSelectedDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kMahiSummarizeSelected)}, |
| |
| {"ash-picker-gifs", flag_descriptions::kAshPickerGifsName, |
| flag_descriptions::kAshPickerGifsDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kPickerGifs)}, |
| |
| {"ash-split-keyboard-refactor", |
| flag_descriptions::kAshSplitKeyboardRefactorName, |
| flag_descriptions::kAshSplitKeyboardRefactorDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kSplitKeyboardRefactor)}, |
| |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"enable-unrestricted-usb", flag_descriptions::kEnableUnrestrictedUsbName, |
| flag_descriptions::kEnableUnrestrictedUsbDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kUnrestrictedUsb)}, |
| |
| {"autofill-enable-vcn-3ds-authentication", |
| flag_descriptions::kAutofillEnableVcn3dsAuthenticationName, |
| flag_descriptions::kAutofillEnableVcn3dsAuthenticationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableVcn3dsAuthentication)}, |
| |
| {"autofill-enable-wallet-disclosure-notice-public-pass", |
| flag_descriptions::kAutofillEnableWalletDisclosureNoticePublicPassName, |
| flag_descriptions:: |
| kAutofillEnableWalletDisclosureNoticePublicPassDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableWalletDisclosureNoticePublicPass)}, |
| |
| {"autofill-enable-wallet-reminder-notice", |
| flag_descriptions::kAutofillEnableWalletReminderNoticeName, |
| flag_descriptions::kAutofillEnableWalletReminderNoticeDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableWalletReminderNotice)}, |
| |
| {"autofill-enable-wallet-reminder-notice-public-pass", |
| flag_descriptions::kAutofillEnableWalletReminderNoticePublicPassName, |
| flag_descriptions:: |
| kAutofillEnableWalletReminderNoticePublicPassDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableWalletReminderNoticePublicPass)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cros-locked-mode", flag_descriptions::kLockedModeName, |
| flag_descriptions::kLockedModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(blink::features::kLockedMode)}, |
| #endif // BUILDFLAG_(IS_CHROMEOS) |
| |
| {"send-tab-to-self-enhanced-handoff", |
| flag_descriptions::kSendTabToSelfEnhancedHandoffName, |
| flag_descriptions::kSendTabToSelfEnhancedHandoffDescription, kOsAll, |
| MULTI_VALUE_TYPE(kSendTabToSelfEnhancedHandoffChoices)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-display-performance-mode", |
| flag_descriptions::kEnableDisplayPerformanceModeName, |
| flag_descriptions::kEnableDisplayPerformanceModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kDisplayPerformanceMode)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"update-tab-group-colors", flag_descriptions::kUpdateTabGroupColorsName, |
| flag_descriptions::kUpdateTabGroupColorsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(tab_groups::kUpdateTabGroupColors)}, |
| |
| {"android-zoom-immersive", flag_descriptions::kAndroidZoomImmersiveName, |
| flag_descriptions::kAndroidZoomImmersiveDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidZoomImmersive)}, |
| |
| {"disable-partner-homepage-android", |
| flag_descriptions::kDisablePartnerHomepageAndroidName, |
| flag_descriptions::kDisablePartnerHomepageAndroidDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kDisablePartnerHomepageAndroid, |
| kDisablePartnerHomepageAndroidVariations, |
| "DisablePartnerHomepageAndroid")}, |
| |
| {"account-picker-dialog", flag_descriptions::kAccountPickerDialogName, |
| flag_descriptions::kAccountPickerDialogDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAccountPickerDialog)}, |
| |
| {"bottom-sheet-on-desktop-windowing", |
| flag_descriptions::kBottomSheetOnDesktopWindowingName, |
| flag_descriptions::kBottomSheetOnDesktopWindowingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kBottomSheetOnDesktopWindowing)}, |
| |
| {"bottom-sheet-types", flag_descriptions::kBottomSheetTypesName, |
| flag_descriptions::kBottomSheetTypesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(browser_ui::kBottomSheetTypes)}, |
| |
| {"dialogs-on-large-form-factors", |
| flag_descriptions::kDialogsOnLargeFormFactorsName, |
| flag_descriptions::kDialogsOnLargeFormFactorsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(browser_ui::kDialogsOnLargeFormFactors)}, |
| |
| {"tab-android-graceful-shutdown", |
| flag_descriptions::kTabAndroidGracefulShutdownName, |
| flag_descriptions::kTabAndroidGracefulShutdownDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabAndroidGracefulShutdown)}, |
| {"tab-bottom-sheet", flag_descriptions::kTabBottomSheetName, |
| flag_descriptions::kTabBottomSheetDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabBottomSheet, |
| kTabBottomSheetVariations, |
| "TabBottomSheet")}, |
| |
| {"tab-bottom-sheet-full-height", |
| flag_descriptions::kTabBottomSheetFullHeightName, |
| flag_descriptions::kTabBottomSheetFullHeightDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabBottomSheetFullHeight, |
| kTabBottomSheetFullHeightVariations, |
| "TabBottomSheetFullHeight")}, |
| |
| {"tab-bottom-sheet-half-height", |
| flag_descriptions::kTabBottomSheetHalfHeightName, |
| flag_descriptions::kTabBottomSheetHalfHeightDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabBottomSheetHalfHeight, |
| kTabBottomSheetHalfHeightVariations, |
| "TabBottomSheetHalfHeight")}, |
| |
| {"tab-bottom-sheet-resize-webview", |
| flag_descriptions::kTabBottomSheetResizeWebviewName, |
| flag_descriptions::kTabBottomSheetResizeWebviewDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kTabBottomSheetResizeWebview, |
| kTabBottomSheetResizeWebviewVariations, |
| "TabBottomSheetResizeWebview")}, |
| |
| {"android-tips-notifications", |
| flag_descriptions::kAndroidTipsNotificationsName, |
| flag_descriptions::kAndroidTipsNotificationsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| segmentation_platform::features::kAndroidTipsNotifications, |
| kAndroidTipsNotificationsVariations, |
| "AndroidTipsNotifications")}, |
| |
| {"android-tips-notifications-v2", |
| flag_descriptions::kAndroidTipsNotificationsV2Name, |
| flag_descriptions::kAndroidTipsNotificationsV2Description, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| segmentation_platform::features::kAndroidTipsNotificationsV2, |
| kAndroidTipsNotificationsV2Variations, |
| "AndroidTipsNotificationsV2")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"chrome-finds", flag_descriptions::kChromeFindsName, |
| flag_descriptions::kChromeFindsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(finds::features::kChromeFinds, |
| kChromeFindsVariations, |
| "ChromeFinds")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"cross-device-task-handoff", |
| flag_descriptions::kCrossDeviceTaskHandoffName, |
| flag_descriptions::kCrossDeviceTaskHandoffDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCrossDeviceTaskHandoff)}, |
| |
| {"cross-window-tab-group-operations", |
| flag_descriptions::kCrossWindowTabGroupOperationsName, |
| flag_descriptions::kCrossWindowTabGroupOperationsDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kCrossWindowTabGroupOperations, |
| kCrossWindowTabGroupOperationsVariations, |
| "CrossWindowTabGroupOperations")}, |
| |
| {"history-pane-android", flag_descriptions::kHistoryPaneAndroidName, |
| flag_descriptions::kHistoryPaneAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kHistoryPaneAndroid)}, |
| |
| {"bookmark-pane-android", flag_descriptions::kBookmarkPaneAndroidName, |
| flag_descriptions::kBookmarkPaneAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kBookmarkPaneAndroid)}, |
| |
| {"tips-self-service", flag_descriptions::kTipsSelfServiceName, |
| flag_descriptions::kTipsSelfServiceDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTipsSelfService)}, |
| |
| {"tab-strip-height-transition-glitch-fix", |
| flag_descriptions::kTabStripHeightTransitionGlitchFixName, |
| flag_descriptions::kTabStripHeightTransitionGlitchFixDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabStripHeightTransitionGlitchFix)}, |
| |
| {"tab-strip-layout-transition-debounce-fix", |
| flag_descriptions::kTabStripLayoutTransitionDebounceFixName, |
| flag_descriptions::kTabStripLayoutTransitionDebounceFixDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabStripLayoutTransitionDebounceFix)}, |
| |
| {"tab-opener-tracking", flag_descriptions::kTabOpenerTrackingName, |
| flag_descriptions::kTabOpenerTrackingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTabOpenerTracking)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"data-sharing-debug-logs", flag_descriptions::kDataSharingDebugLogsName, |
| flag_descriptions::kDataSharingDebugLogsDescription, kOsAll, |
| SINGLE_VALUE_TYPE(data_sharing::kDataSharingDebugLoggingEnabled)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"multi-calendar-in-quick-settings", |
| flag_descriptions::kMultiCalendarSupportName, |
| flag_descriptions::kMultiCalendarSupportDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kMultiCalendarSupport)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"multi-instance-shared-prefs-migration", |
| flag_descriptions::kMultiInstanceSharedPrefsMigrationName, |
| flag_descriptions::kMultiInstanceSharedPrefsMigrationDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kMultiInstanceSharedPrefsMigration)}, |
| #endif |
| {"multistep-filter", flag_descriptions::kMultistepFilterName, |
| flag_descriptions::kMultistepFilterDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(multistep_filter::kMultistepFilter)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-pix-account-linking", |
| flag_descriptions::kEnablePixAccountLinkingName, |
| flag_descriptions::kEnablePixAccountLinkingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnablePixAccountLinking)}, |
| |
| {"enable-pix-account-linking-native", |
| flag_descriptions::kEnablePixAccountLinkingNativeName, |
| flag_descriptions::kEnablePixAccountLinkingNativeDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnablePixAccountLinkingNative)}, |
| |
| {"enable-pix-payments-in-landscape-mode", |
| flag_descriptions::kEnablePixPaymentsInLandscapeModeName, |
| flag_descriptions::kEnablePixPaymentsInLandscapeModeDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| payments::facilitated::kEnablePixPaymentsInLandscapeMode)}, |
| |
| {"enable-static-qr-code-for-pix", |
| flag_descriptions::kEnableStaticQrCodeForPixName, |
| flag_descriptions::kEnableStaticQrCodeForPixDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnableStaticQrCodeForPix)}, |
| |
| {"enable-iframe-for-pix", flag_descriptions::kEnableIframeForPixName, |
| flag_descriptions::kEnableIframeForPixDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnableIframeForPix)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-standard-device-bound-session-credentials", |
| flag_descriptions::kEnableStandardBoundSessionCredentialsName, |
| flag_descriptions::kEnableStandardBoundSessionCredentialsDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(net::features::kDeviceBoundSessions, |
| kStandardBoundSessionCredentialsVariations, |
| "standard-device-bound-sessions")}, |
| {"enable-device-bound-sessions-dse-prewarmer", |
| flag_descriptions::kEnableDeviceBoundSessionsDsePrewarmerName, |
| flag_descriptions::kEnableDeviceBoundSessionsDsePrewarmerDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(features::kDeviceBoundSessionsDsePrewarmer)}, |
| {"enable-standard-device-bound-session-credentials-federated-sessions", |
| flag_descriptions:: |
| kEnableStandardBoundSessionCredentialsFederatedSessionsName, |
| flag_descriptions:: |
| kEnableStandardBoundSessionCredentialsFederatedSessionsDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| net::features::kDeviceBoundSessionsFederatedRegistration, |
| kStandardBoundSessionCredentialsFederatedSessionsVariations, |
| "standard-device-bound-sessions-federated-sessions")}, |
| {"enable-standard-device-bound-session-google", |
| flag_descriptions::kEnableStandardBoundSessionsGoogleName, |
| flag_descriptions::kEnableStandardBoundSessionsGoogleDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(net::features::kDeviceBoundSessionsForRestrictedSites)}, |
| |
| {"responsive-iframes", flag_descriptions::kResponsiveIframesName, |
| flag_descriptions::kResponsiveIframesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kResponsiveIframes)}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| {"replace-sync-promos-with-sign-in-promos-desktop", |
| flag_descriptions::kReplaceSyncPromosWithSignInPromosName, |
| flag_descriptions::kReplaceSyncPromosWithSignInPromosDescription, |
| kOsDesktop, |
| MULTI_VALUE_TYPE(kReplaceSyncPromosWithSignInPromosDesktopChoices)}, |
| |
| {"replace-sync-promos-with-signin-promos-new-signin", |
| flag_descriptions::kReplaceSyncPromosWithSigninPromosNewSigninName, |
| flag_descriptions::kReplaceSyncPromosWithSigninPromosNewSigninDescription, |
| kOsDesktop, |
| MULTI_VALUE_TYPE(kReplaceSyncPromosWithSigninPromosNewSigninChoices)}, |
| |
| {"uno-phase-2-follow-up", flag_descriptions::kUnoPhase2FollowUpName, |
| flag_descriptions::kUnoPhase2FollowUpDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(syncer::kUnoPhase2FollowUp)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| |
| {"pwm-show-suggestions-on-autofocus", |
| flag_descriptions::kPasswordManagerShowSuggestionsOnAutofocusName, |
| flag_descriptions::kPasswordManagerShowSuggestionsOnAutofocusDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kShowSuggestionsOnAutofocus)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"password-compromise-warning-in-details-card", |
| flag_descriptions::kPasswordCompromiseWarningInDetailsCardName, |
| flag_descriptions::kPasswordCompromiseWarningInDetailsCardDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kPasswordCompromiseWarningInDetailsCard)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"password-save-in-context-error-resolution", |
| flag_descriptions::kPasswordSaveInContextErrorResolutionName, |
| flag_descriptions::kPasswordSaveInContextErrorResolutionDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kPasswordSaveInContextErrorResolution)}, |
| |
| {"optimization-guide-enable-dogfood-logging", |
| flag_descriptions::kOptimizationGuideEnableDogfoodLoggingName, |
| flag_descriptions::kOptimizationGuideEnableDogfoodLoggingDescription, |
| kOsAll, |
| SINGLE_VALUE_TYPE( |
| optimization_guide::switches::kEnableModelQualityDogfoodLogging)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"conch", flag_descriptions::kConchName, |
| flag_descriptions::kConchDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kConch)}, |
| |
| {"conch-system-audio-from-mic", |
| flag_descriptions::kConchSystemAudioFromMicName, |
| flag_descriptions::kConchSystemAudioFromMicDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kConchSystemAudioFromMic)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"prompt-api", flag_descriptions::kPromptAPIName, |
| flag_descriptions::kPromptAPIDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kAIPromptAPI, |
| kAILangsVariation, |
| "kAIPromptAPI"), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"prompt-api-multimodal-input", |
| flag_descriptions::kPromptAPIMultimodalInputName, |
| flag_descriptions::kPromptAPIMultimodalInputDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kAIPromptAPIMultimodalInput), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"prompt-api-tool-use", flag_descriptions::kPromptAPIToolUseName, |
| flag_descriptions::kPromptAPIToolUseDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kPromptAPIToolUseChoices), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"prompt-api-sampling-mode", flag_descriptions::kPromptAPISamplingModeName, |
| flag_descriptions::kPromptAPISamplingModeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kAIPromptAPIParams)}, |
| |
| {"writer-api", flag_descriptions::kWriterAPIName, |
| flag_descriptions::kWriterAPIDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kAIWriterAPI, |
| kAILangsVariation, |
| "kAIWriterAPI"), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"rewriter-api", flag_descriptions::kRewriterAPIName, |
| flag_descriptions::kRewriterAPIDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kAIRewriterAPI, |
| kAILangsVariation, |
| "kAIRewriterAPI"), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"proofreader-api", flag_descriptions::kProofreaderAPIName, |
| flag_descriptions::kProofreaderAPIDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kAIProofreaderChoices), flag_descriptions::kAIAPIsLinks}, |
| |
| {"semantic-embedder-api", flag_descriptions::kSemanticEmbedderAPIName, |
| flag_descriptions::kSemanticEmbedderAPIDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kAISemanticEmbedderChoices), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"gemma4-for-built-in-ai", flag_descriptions::kGemma4ForBuiltInAIName, |
| flag_descriptions::kGemma4ForBuiltInAIDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kGemma4Choices), flag_descriptions::kAIAPIsLinks}, |
| |
| {"summarizer-api-performance-preference", |
| flag_descriptions::kSummarizerAPIWithPerformancePreferenceName, |
| flag_descriptions::kSummarizerAPIWithPerformancePreferenceDescription, |
| kOsDesktop, MULTI_VALUE_TYPE(kAISummarizationPerformancePreferenceChoices), |
| flag_descriptions::kSummarizerAPIWithPerformancePreferenceLinks}, |
| |
| {"summarizer-api", flag_descriptions::kSummarizerAPIName, |
| flag_descriptions::kSummarizerAPIDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kAISummarizationAPI, |
| kAILangsVariation, |
| "kAISummarizationAPI"), |
| flag_descriptions::kAIAPIsLinks}, |
| |
| {"on-device-category-classifier", |
| flag_descriptions::kOnDeviceCategoryClassifierName, |
| flag_descriptions::kOnDeviceCategoryClassifierDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| page_content_annotations::features::kOnDeviceCategoryClassifier)}, |
| |
| {"on-device-model-speculative-decoding", |
| flag_descriptions::kOnDeviceModelSpeculativeDecodingName, |
| flag_descriptions::kOnDeviceModelSpeculativeDecodingDescription, |
| kOsDesktop, MULTI_VALUE_TYPE(kSpeculativeDecodingChoices)}, |
| |
| {"web-speech-on-device-small-expert-model", |
| flag_descriptions::kOnDeviceWebSpeechSmallExpertModelName, |
| flag_descriptions::kOnDeviceWebSpeechSmallExpertModelDescription, |
| kOsDesktop, MULTI_VALUE_TYPE(kOnDeviceWebSpeechSmallExpertModelChoices)}, |
| |
| {"css-grid-lanes-layout", flag_descriptions::kCSSGridLanesLayoutName, |
| flag_descriptions::kCSSGridLanesLayoutDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kCSSGridLanesLayout)}, |
| |
| {"canvas-2d-hibernation", flag_descriptions::kCanvasHibernationName, |
| flag_descriptions::kCanvasHibernationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kCanvas2DHibernation)}, |
| |
| {"visited-url-ranking-service-domain-deduplication", |
| flag_descriptions::kVisitedURLRankingServiceDeduplicationName, |
| flag_descriptions::kVisitedURLRankingServiceDeduplicationDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| visited_url_ranking::features::kVisitedURLRankingDeduplication, |
| kVisitedURLRankingDomainDeduplicationVariations, |
| "visited-url-ranking-service-domain-deduplication")}, |
| |
| {"visited-url-ranking-service-history-visibility-score-filter", |
| flag_descriptions:: |
| kVisitedURLRankingServiceHistoryVisibilityScoreFilterName, |
| flag_descriptions:: |
| kVisitedURLRankingServiceHistoryVisibilityScoreFilterDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(visited_url_ranking::features:: |
| kVisitedURLRankingHistoryVisibilityScoreFilter)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"infinite-tabs-freezing", flag_descriptions::kInfiniteTabsFreezingName, |
| flag_descriptions::kInfiniteTabsFreezingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(performance_manager::features::kInfiniteTabsFreezing)}, |
| |
| {"memory-purge-on-freeze-limit", |
| flag_descriptions::kMemoryPurgeOnFreezeLimitName, |
| flag_descriptions::kMemoryPurgeOnFreezeLimitDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kMemoryPurgeOnFreezeLimit)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"hid-get-feature-report-fix", |
| flag_descriptions::kHidGetFeatureReportFixName, |
| flag_descriptions::kHidGetFeatureReportFixDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kHidGetFeatureReportFix)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"translate-open-settings", flag_descriptions::kTranslateOpenSettingsName, |
| flag_descriptions::kTranslateOpenSettingsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(language::kTranslateOpenSettings)}, |
| #endif |
| |
| {"lens-aim-suggestions", flag_descriptions::kLensAimSuggestionsName, |
| flag_descriptions::kLensAimSuggestionsDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(lens::features::kLensAimSuggestions, |
| kLensAimSuggestionsVariations, |
| "LensAimSuggestions")}, |
| |
| {"lens-aim-gradient-suggest-background", |
| flag_descriptions::kLensAimSuggestionsGradientBackgroundName, |
| flag_descriptions::kLensAimSuggestionsGradientBackgroundDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensAimSuggestionsGradientBackground)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"sensitive-content", flag_descriptions::kSensitiveContentName, |
| flag_descriptions::kSensitiveContentDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| sensitive_content::features::kSensitiveContent, |
| kSensitiveContentVariations, |
| "SensitiveContent")}, |
| |
| {"sensitive-content-while-switching-tabs", |
| flag_descriptions::kSensitiveContentWhileSwitchingTabsName, |
| flag_descriptions::kSensitiveContentWhileSwitchingTabsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| sensitive_content::features::kSensitiveContentWhileSwitchingTabs)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"data-controls-search-with", |
| flag_descriptions::kDataControlsSearchWithName, |
| flag_descriptions::kDataControlsSearchWithDescription, kOsAll, |
| FEATURE_VALUE_TYPE(data_controls::kDataControlsSearchWith)}, |
| |
| {"data-sharing", flag_descriptions::kDataSharingName, |
| flag_descriptions::kDataSharingDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(data_sharing::features::kDataSharingFeature, |
| kDatasharingVariations, |
| "Enabled")}, |
| |
| {"collaboration-entreprise-v2", |
| flag_descriptions::kCollaborationEntrepriseV2Name, |
| flag_descriptions::kCollaborationEntrepriseV2Description, kOsAll, |
| FEATURE_VALUE_TYPE(data_sharing::features::kCollaborationEntrepriseV2)}, |
| |
| {"collaboration-shared-tab-group-account-data", |
| flag_descriptions::kCollaborationSharedTabGroupAccountDataName, |
| flag_descriptions::kCollaborationSharedTabGroupAccountDataDescription, |
| kOsAll, FEATURE_VALUE_TYPE(syncer::kSyncSharedTabGroupAccountData)}, |
| |
| {"data-sharing-join-only", flag_descriptions::kDataSharingJoinOnlyName, |
| flag_descriptions::kDataSharingJoinOnlyDescription, kOsAll, |
| FEATURE_VALUE_TYPE(data_sharing::features::kDataSharingJoinOnly)}, |
| |
| {"data-sharing-non-production-environment", |
| flag_descriptions::kDataSharingNonProductionEnvironmentName, |
| flag_descriptions::kDataSharingNonProductionEnvironmentDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| data_sharing::features::kDataSharingNonProductionEnvironment)}, |
| |
| // LINT.IfChange(DataSharingVersioning) |
| {"shared-data-types-kill-switch", |
| flag_descriptions::kDataSharingVersioningStatesName, |
| flag_descriptions::kDataSharingVersioningStatesDescription, kOsAll, |
| MULTI_VALUE_TYPE(kDataSharingVersioningStateChoices)}, |
| // LINT.ThenChange(//ios/chrome/browser/flags/about_flags.mm:DataSharingVersioning) |
| |
| {"history-sync-alternative-illustration", |
| flag_descriptions::kHistorySyncAlternativeIllustrationName, |
| flag_descriptions::kHistorySyncAlternativeIllustrationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(tab_groups::kUseAlternateHistorySyncIllustration)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cros-content-adjusted-refresh-rate", |
| flag_descriptions::kCrosContentAdjustedRefreshRateName, |
| flag_descriptions::kCrosContentAdjustedRefreshRateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(features::kCrosContentAdjustedRefreshRate)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"discount-on-navigation", |
| commerce::flag_descriptions::kDiscountOnNavigationName, |
| commerce::flag_descriptions::kDiscountOnNavigationDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kEnableDiscountInfoApi, |
| kDiscountsVariationsOnAndroid, |
| "DisocuntOnNavigation")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"discount-on-navigation", |
| commerce::flag_descriptions::kDiscountOnNavigationName, |
| commerce::flag_descriptions::kDiscountOnNavigationDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kEnableDiscountInfoApi, |
| kDiscountsVariations, |
| "DisocuntOnNavigation")}, |
| #endif //! BUILDFLAG(IS_ANDROID) |
| |
| {"permissions-ai-v4", flag_descriptions::kPermissionsAIv4Name, |
| flag_descriptions::kPermissionsAIv4Description, kOsAll, |
| FEATURE_VALUE_TYPE(permissions::features::kPermissionsAIv4)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"permissions-android-clapper-loud", |
| flag_descriptions::kPermissionsAndroidClapperLoudName, |
| flag_descriptions::kPermissionsAndroidClapperLoudDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(permissions::kPermissionsAndroidClapperLoud)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"permissions-gesture-gated-prompts", |
| flag_descriptions::kPermissionsGestureGatedPromptsName, |
| flag_descriptions::kPermissionsGestureGatedPromptsDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| permissions::features::kPermissionsGestureGatedPrompts, |
| kPermissionsGestureGatedPromptsVariations, |
| "PermissionsGestureGatedPrompts")}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-translate-button", |
| flag_descriptions::kLensOverlayTranslateButtonName, |
| flag_descriptions::kLensOverlayTranslateButtonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayTranslateButton)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-latency-optimizations", |
| flag_descriptions::kLensOverlayLatencyOptimizationsName, |
| flag_descriptions::kLensOverlayLatencyOptimizationsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayLatencyOptimizations)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-image-context-menu-actions", |
| flag_descriptions::kLensOverlayImageContextMenuActionsName, |
| flag_descriptions::kLensOverlayImageContextMenuActionsDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| lens::features::kLensOverlayImageContextMenuActions, |
| kLensOverlayImageContextMenuActionsVariations, |
| "LensOverlayImageContextMenuActions")}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-updated-visuals", |
| flag_descriptions::kLensOverlayUpdatedVisualsName, |
| flag_descriptions::kLensOverlayUpdatedVisualsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayVisualSelectionUpdates)}, |
| |
| {"enable-lens-search-aim-m3", flag_descriptions::kLensSearchAimM3Name, |
| flag_descriptions::kLensSearchAimM3Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensSearchAimM3)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"enable-lens-side-panel-unification", |
| flag_descriptions::kLensSidePanelUnificationName, |
| flag_descriptions::kLensSidePanelUnificationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(lens::features::kLensSidePanelUnification)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"jump-start-omnibox", flag_descriptions::kJumpStartOmniboxName, |
| flag_descriptions::kJumpStartOmniboxDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kJumpStartOmnibox, |
| kJumpStartOmniboxVariations, |
| "JumpStartOmnibox")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-segmentation-internals-survey", |
| flag_descriptions::kSegmentationSurveyPageName, |
| flag_descriptions::kSegmentationSurveyPageDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| segmentation_platform::features::kSegmentationSurveyPage)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-buy-now-pay-later", |
| flag_descriptions::kAutofillEnableBuyNowPayLaterName, |
| flag_descriptions::kAutofillEnableBuyNowPayLaterDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableBuyNowPayLater)}, |
| |
| {"autofill-enable-buy-now-pay-later-syncing", |
| flag_descriptions::kAutofillEnableBuyNowPayLaterSyncingName, |
| flag_descriptions::kAutofillEnableBuyNowPayLaterSyncingDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableBuyNowPayLaterSyncing)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| {"autofill-enable-cvc-storage-and-filling-standalone-form-enhancement", |
| flag_descriptions:: |
| kAutofillEnableCvcStorageAndFillingStandaloneFormEnhancementName, |
| flag_descriptions:: |
| kAutofillEnableCvcStorageAndFillingStandaloneFormEnhancementDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillEnableCvcStorageAndFillingStandaloneFormEnhancement)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"clank-default-browser-promo-role-manager", |
| flag_descriptions::kClankDefaultBrowserPromoRoleManagerName, |
| flag_descriptions::kClankDefaultBrowserPromoRoleManagerDescription, |
| kOsAndroid, |
| SINGLE_DISABLE_VALUE_TYPE(switches::kDisableDefaultBrowserPromo)}, |
| |
| {"clank-default-browser-promo2", |
| flag_descriptions::kClankDefaultBrowserPromoName, |
| flag_descriptions::kClankDefaultBrowserPromoDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDefaultBrowserPromoAndroid2)}, |
| |
| {"desktop-ua-on-connected-display", |
| flag_descriptions::kDesktopUAOnConnectedDisplayName, |
| flag_descriptions::kDesktopUAOnConnectedDisplayDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDesktopUAOnConnectedDisplay)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"password-form-grouped-affiliations", |
| flag_descriptions::kPasswordFormGroupedAffiliationsName, |
| flag_descriptions::kPasswordFormGroupedAffiliationsDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kPasswordFormGroupedAffiliations)}, |
| {"contextual-cueing", flag_descriptions::kContextualCueingName, |
| flag_descriptions::kContextualCueingDescription, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(glic::kContextualCueing, |
| kContextualCueingEnabledOptions, |
| "ContextualCueingEnabledOptions")}, |
| {"glic-zero-state-suggestions", |
| flag_descriptions::kGlicZeroStateSuggestionsName, |
| flag_descriptions::kGlicZeroStateSuggestionsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(glic::kGlicZeroStateSuggestions)}, |
| {"contextual-cueing-v2", flag_descriptions::kContextualCueingV2Name, |
| flag_descriptions::kContextualCueingV2Description, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(contextual_cueing::kContextualCueingV2, |
| kContextualCueingV2Options, |
| "ContextualCueingV2Options")}, |
| {"contextual-cueing-v2-multi-source", |
| flag_descriptions::kContextualCueingV2MultiSourceName, |
| flag_descriptions::kContextualCueingV2MultiSourceDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_cueing::kContextualCueingV2MultiSource)}, |
| |
| #if PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| {"partition-alloc-scheduler-loop-quarantine", |
| flag_descriptions::kPartitionAllocSchedulerLoopQuarantineName, |
| flag_descriptions::kPartitionAllocSchedulerLoopQuarantineDescription, |
| kOsAll, |
| STRING_VALUE_TYPE(switches::kPartitionAllocSchedulerLoopQuarantine, "")}, |
| {"partition-alloc-with-advanced-checks", |
| flag_descriptions::kPartitionAllocWithAdvancedChecksName, |
| flag_descriptions::kPartitionAllocWithAdvancedChecksDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| base::features::kPartitionAllocWithAdvancedChecks, |
| kPartitionAllocWithAdvancedChecksEnabledProcessesOptions, |
| "PartitionAllocWithAdvancedChecks")}, |
| #endif // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| |
| {"predictable-reported-quota", |
| flag_descriptions::kPredictableReportedQuotaName, |
| flag_descriptions::kPredictableReportedQuotaDescription, kOsAll, |
| FEATURE_VALUE_TYPE(storage::features::kStaticStorageQuota)}, |
| |
| {"prefetch-bookmarkbar-trigger", |
| flag_descriptions::kBookmarkBarPrefetchName, |
| flag_descriptions::kBookmarkBarPrefetchDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kBookmarkTriggerForPrefetch)}, |
| |
| {"prefetch-new-tab-page-trigger", |
| flag_descriptions::kNewTabPagePrefetchName, |
| flag_descriptions::kNewTabPagePrefetchDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kNewTabPageTriggerForPrefetch)}, |
| |
| {"prerender-new-tab-page-trigger", |
| flag_descriptions::kNewTabPagePrerender2Name, |
| flag_descriptions::kNewTabPagePrerender2Description, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kNewTabPageTriggerForPrerender2)}, |
| |
| #if BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(HAS_MEMORY_TAGGING) && \ |
| PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| {"partition-alloc-memory-tagging", |
| flag_descriptions::kPartitionAllocMemoryTaggingName, |
| flag_descriptions::kPartitionAllocMemoryTaggingDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| base::features::kPartitionAllocMemoryTagging, |
| kPartitionAllocMemoryTaggingEnabledProcessesOptions, |
| "PartitionAllocMemoryTagging")}, |
| #endif // BUILDFLAG(IS_ANDROID) && PA_BUILDFLAG(HAS_MEMORY_TAGGING) && |
| // PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) |
| |
| #if BUILDFLAG(IS_MAC) |
| {"enable-mac-a11y-api-migration", |
| flag_descriptions::kMacAccessibilityAPIMigrationName, |
| flag_descriptions::kMacAccessibilityAPIMigrationDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kMacAccessibilityAPIMigration)}, |
| #endif // BUILDFLAG(IS_MAC) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-translate-languages", |
| flag_descriptions::kLensOverlayTranslateLanguagesName, |
| flag_descriptions::kLensOverlayTranslateLanguagesDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayTranslateLanguages)}, |
| {"ai-overlay-disable-navigation-context", |
| flag_descriptions::kAiOverlayDisableNavigationContextName, |
| flag_descriptions::kAiOverlayDisableNavigationContextDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kAiOverlayDisableNavigationContext)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"ai-overlay-dialog", flag_descriptions::kAiOverlayDialogName, |
| flag_descriptions::kAiOverlayDialogDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAiOverlayDialog)}, |
| |
| {"glic", flag_descriptions::kGlicName, flag_descriptions::kGlicDescription, |
| kOsDesktop | kOsAndroid, FEATURE_VALUE_TYPE(features::kGlic)}, |
| {"glic-hotkey-local-scope", flag_descriptions::kGlicHotkeyLocalScopeName, |
| flag_descriptions::kGlicHotkeyLocalScopeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicHotkeyLocalScope)}, |
| {"glic-tab-groups", flag_descriptions::kGlicTabGroupsName, |
| flag_descriptions::kGlicTabGroupsDescription, kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicTabGroups, |
| kGlicTabGroupsVariations, |
| "GlicTabGroups")}, |
| {"glic-android-side-panel", flag_descriptions::kGlicAndroidSidePanelName, |
| flag_descriptions::kGlicAndroidSidePanelDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicAndroidSidePanel)}, |
| {"glic-android-tablet", flag_descriptions::kGlicAndroidTabletName, |
| flag_descriptions::kGlicAndroidTabletDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicAndroidTablet)}, |
| {"glic-actor", flag_descriptions::kGlicActorName, |
| flag_descriptions::kGlicActorDescription, kOsDesktop | kOsAndroid, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(switches::kEnableFeatures, |
| "GlicActor,GlicActorUi", |
| switches::kDisableFeatures, |
| "GlicActor,GlicActorUi")}, |
| {"glic-handoff-button-hide-when-modal-ui-shown", |
| flag_descriptions::kGlicHandoffButtonHideWhenModalUIShownName, |
| flag_descriptions::kGlicHandoffButtonHideWhenModalUIShownDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicHandoffButtonHideWhenModalUIShown)}, |
| {"browser-actuator", flag_descriptions::kBrowserActuatorName, |
| flag_descriptions::kBrowserActuatorDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(browser_actuator::kBrowserActuator)}, |
| {"browser-actuator-internals", |
| flag_descriptions::kBrowserActuatorInternalsName, |
| flag_descriptions::kBrowserActuatorInternalsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(browser_actuator::kBrowserActuatorInternals)}, |
| {"enable-browser-actuator-for-glic-experimental-triggering", |
| flag_descriptions::kEnableBrowserActuatorForGlicExperimentalTriggeringName, |
| flag_descriptions:: |
| kEnableBrowserActuatorForGlicExperimentalTriggeringDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| browser_actuator:: |
| kEnableBrowserActuatorForGlicExperimentalTriggering)}, |
| {"glic-background-actuation", |
| flag_descriptions::kGlicBackgroundActuationName, |
| flag_descriptions::kGlicBackgroundActuationDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicBackgroundActuation)}, |
| {"glic-background-triggering", |
| flag_descriptions::kGlicBackgroundTriggeringName, |
| flag_descriptions::kGlicBackgroundTriggeringDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicBackgroundTriggering)}, |
| {"glic-settings-a11y-context-fix", |
| flag_descriptions::kGlicSettingsA11yContextFixName, |
| flag_descriptions::kGlicSettingsA11yContextFixDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicSettingsA11yContextFix)}, |
| {"glic-opt-in-dialog-a11y-fix", |
| flag_descriptions::kGlicOptInDialogA11yFixName, |
| flag_descriptions::kGlicOptInDialogA11yFixDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicOptInDialogA11yFix)}, |
| {"glic-experimental-triggering-screenshot", |
| flag_descriptions::kGlicExperimentalTriggeringScreenshotName, |
| flag_descriptions::kGlicExperimentalTriggeringScreenshotDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicExperimentalTriggeringScreenshot)}, |
| {"glic-spark-settings-accessible-labels", |
| flag_descriptions::kGlicSparkSettingsAccessibleLabelsName, |
| flag_descriptions::kGlicSparkSettingsAccessibleLabelsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicSparkSettingsAccessibleLabels)}, |
| {"glic-actor-autofill", flag_descriptions::kGlicActorAutofillName, |
| flag_descriptions::kGlicActorAutofillDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(autofill::features::kGlicActorAutofill)}, |
| {"glic-actor-autofill-section-label", |
| flag_descriptions::kGlicActorAutofillSectionLabelName, |
| flag_descriptions::kGlicActorAutofillSectionLabelDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicActorAutofillSectionLabel)}, |
| {"glic-actor-autofill-pre-click", |
| flag_descriptions::kGlicActorAutofillPreClickName, |
| flag_descriptions::kGlicActorAutofillPreClickDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicActorAutofillPreClick)}, |
| {"glic-actor-cursor", flag_descriptions::kGlicActorCursorName, |
| flag_descriptions::kGlicActorCursorDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicActorUiMagicCursor)}, |
| {"glic-actor-localhost-is-sensitive", |
| flag_descriptions::kGlicActorLocalhostIsSensitiveName, |
| flag_descriptions::kGlicActorLocalhostIsSensitiveDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(actor::kGlicActorLocalhostIsSensitive)}, |
| {"glic-actor-script-tools", |
| flag_descriptions::kGlicActorEnableScriptToolsName, |
| flag_descriptions::kGlicActorEnableScriptToolsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kGlicActorEnableScriptTools)}, |
| {"glic-actor-transient-tasks", |
| flag_descriptions::kGlicActorTransientTasksName, |
| flag_descriptions::kGlicActorTransientTasksDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(actor::kGlicActorTransientTasks, |
| kGlicActorTransientTasksVariations, |
| "GlicActorTransientTasks")}, |
| {"glic-actor-skip-screenshot", |
| flag_descriptions::kGlicActorSkipScreenshotName, |
| flag_descriptions::kGlicActorSkipScreenshotDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kGlicActorSkipScreenshot)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"actor-live-notification", flag_descriptions::kActorLiveNotificationName, |
| flag_descriptions::kActorLiveNotificationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kActorLiveNotification)}, |
| {"actor-notification-intent-routing", |
| flag_descriptions::kActorNotificationIntentRoutingName, |
| flag_descriptions::kActorNotificationIntentRoutingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kActorNotificationIntentRouting)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"actor-observe-screenshot-default", |
| flag_descriptions::kActorObserveScreenshotDefaultName, |
| flag_descriptions::kActorObserveScreenshotDefaultDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kActorObserveScreenshotDefault)}, |
| {"actor-observe-page-content-default", |
| flag_descriptions::kActorObservePageContentDefaultName, |
| flag_descriptions::kActorObservePageContentDefaultDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kActorObservePageContentDefault)}, |
| {"actor-script-tool-skip-screenshot", |
| flag_descriptions::kActorScriptToolSkipScreenshotName, |
| flag_descriptions::kActorScriptToolSkipScreenshotDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kActorScriptToolSkipScreenshot)}, |
| {"actor-script-tool-skip-page-content", |
| flag_descriptions::kActorScriptToolSkipPageContentName, |
| flag_descriptions::kActorScriptToolSkipPageContentDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(actor::kActorScriptToolSkipPageContent)}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"actor-step-progress-notification", |
| flag_descriptions::kActorStepProgressNotificationName, |
| flag_descriptions::kActorStepProgressNotificationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kActorStepProgressNotification)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"glic-print-menu-item", flag_descriptions::kGlicPrintMenuItemName, |
| flag_descriptions::kGlicPrintMenuItemDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(features::kGlicPrintMenuItem)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"glic-pdf-summarize", flag_descriptions::kGlicPdfSummarizeName, |
| flag_descriptions::kGlicPdfSummarizeDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kPdfGlicSummarize, |
| kPdfGlicSummarizeVariations, |
| "GlicPdfSummarize")}, |
| #endif |
| |
| {"glic-pre-warming", flag_descriptions::kGlicWarmingName, |
| flag_descriptions::kGlicWarmingDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicWarming, |
| kGlicWarmingVariations, |
| "GlicWarming")}, |
| {"glic-contextual-cue-bubble", |
| flag_descriptions::kGlicContextualCueBubbleName, |
| flag_descriptions::kGlicContextualCueBubbleDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicContextualCueBubble)}, |
| {"glic-default-to-last-active-conversation", |
| flag_descriptions::kGlicDefaultToLastActiveConversationName, |
| flag_descriptions::kGlicDefaultToLastActiveConversationDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicDefaultToLastActiveConversation)}, |
| {"glic-bind-pinned-unbound-tab", |
| flag_descriptions::kGlicBindPinnedUnboundTabName, |
| flag_descriptions::kGlicBindPinnedUnboundTabDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicBindPinnedUnboundTab)}, |
| {"glic-button-pressed-state", |
| flag_descriptions::kGlicButtonPressedStateName, |
| flag_descriptions::kGlicButtonPressedStateDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicButtonPressedState, |
| kGlicButtonPressedStateVariations, |
| "GlicButtonPressedState")}, |
| {"glic-capture-region", flag_descriptions::kGlicCaptureRegionName, |
| flag_descriptions::kGlicCaptureRegionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicCaptureRegion)}, |
| {"glic-chrome-status-icon", flag_descriptions::kGlicChromeStatusIconName, |
| flag_descriptions::kGlicChromeStatusIconDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kGlicChromeStatusIcon)}, |
| {"glic-daisy-chain-new-tabs", flag_descriptions::kGlicDaisyChainNewTabsName, |
| flag_descriptions::kGlicDaisyChainNewTabsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kGlicDaisyChainNewTabs)}, |
| {"glic-toolbar-height-side-panel", |
| flag_descriptions::kGlicUseToolbarHeightSidePanelName, |
| flag_descriptions::kGlicUseToolbarHeightSidePanelDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicUseToolbarHeightSidePanel)}, |
| {"glic-live-mode-only-glow", flag_descriptions::kGlicLiveModeOnlyGlowName, |
| flag_descriptions::kGlicLiveModeOnlyGlowDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicLiveModeOnlyGlow)}, |
| {"glic-os-icon-variant", flag_descriptions::kGlicOSIconVariantName, |
| flag_descriptions::kGlicOSIconVariantDescription, kOsMac, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicOSIconVariant, |
| kGlicOSIconVariantVariations, |
| "GlicOSIconVariant")}, |
| {"glic-share-image", flag_descriptions::kGlicShareImageName, |
| flag_descriptions::kGlicShareImageDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicShareImage)}, |
| {"glic-default-tab-context-setting", |
| flag_descriptions::kGlicDefaultTabContextSettingName, |
| flag_descriptions::kGlicDefaultTabContextSettingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicDefaultTabContextSetting)}, |
| |
| {"glic-guest-url-presets", flag_descriptions::kGlicGuestUrlPresetsName, |
| flag_descriptions::kGlicGuestUrlPresetsDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicGuestUrlPresets, |
| kGlicGuestUrlPresetTypes, |
| "GlicGuestUrlPresets")}, |
| |
| {"glic-caa-guest-error", flag_descriptions::kGlicCaaGuestErrorName, |
| flag_descriptions::kGlicCaaGuestErrorDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicCaaGuestError)}, |
| |
| // Glic enterprise settings |
| {"glic-gemini-enterprise-settings-override", |
| flag_descriptions::kGlicGeminiEnterpriseSettingsOverrideName, |
| flag_descriptions::kGlicGeminiEnterpriseSettingsOverrideDescription, |
| kOsDesktop, |
| STRING_VALUE_TYPE(switches::kGlicGeminiEnterpriseSettingsOverride, "")}, |
| |
| {"glic-gemini-enterprise-settings-enabled", |
| flag_descriptions::kGlicGeminiEnterpriseSettingsEnabledName, |
| flag_descriptions::kGlicGeminiEnterpriseSettingsEnabledDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicGeminiEnterpriseSettingsEnabled)}, |
| |
| {"glic-gemini-enterprise-consent-enabled", |
| flag_descriptions::kGlicGeminiEnterpriseConsentEnabledName, |
| flag_descriptions::kGlicGeminiEnterpriseConsentEnabledDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicGeminiEnterpriseConsentEnabled)}, |
| |
| {"glic-selection-prompt", flag_descriptions::kGlicSelectionPromptName, |
| flag_descriptions::kGlicSelectionPromptDescription, kOsDesktop, |
| MULTI_VALUE_TYPE(kGlicSelectionPromptChoices)}, |
| |
| {"glic-disable-actor-safety-checks", |
| flag_descriptions::kGlicDisableActorSafetyChecksName, |
| flag_descriptions::kGlicDisableActorSafetyChecksDescription, kOsDesktop, |
| SINGLE_VALUE_TYPE(actor::switches::kDisableActorSafetyChecks)}, |
| |
| {"glic-horizontal-tab-toolbar-button", |
| flag_descriptions::kGlicHorizontalTabToolbarButtonName, |
| flag_descriptions::kGlicHorizontalTabToolbarButtonDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicHorizontalTabToolbarButton)}, |
| |
| {"glic-toolbar-button-location", |
| flag_descriptions::kGlicToolbarButtonLocationName, |
| flag_descriptions::kGlicToolbarButtonLocationDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicToolbarButtonLocation, |
| kGlicToolbarButtonLocationVariations, |
| "GlicToolbarButtonLocation")}, |
| |
| {"glic-contextual-cueing-v2-auto-submit", |
| flag_descriptions::kGlicContextualCueingV2AutoSubmitName, |
| flag_descriptions::kGlicContextualCueingV2AutoSubmitDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicContextualCueingV2AutoSubmit)}, |
| {"glic-marketing-auto-open", flag_descriptions::kGlicMarketingAutoOpenName, |
| flag_descriptions::kGlicMarketingAutoOpenDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kGlicMarketingAutoOpen, |
| kGlicMarketingAutoOpenVariations, |
| "GlicMarketingAutoOpen")}, |
| {"glic-message-first-fre-for-contextual-cue", |
| flag_descriptions::kGlicMessageFirstFreForContextualCueName, |
| flag_descriptions::kGlicMessageFirstFreForContextualCueDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicMessageFirstFreForContextualCue)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enterprise-published-skills-policy-enabled", |
| flag_descriptions::kEnterprisePublishedSkillsPolicyEnabledName, |
| flag_descriptions::kEnterprisePublishedSkillsPolicyEnabledDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kEnterprisePublishedSkillsPolicyEnabled)}, |
| {"privileged-web-contents", flag_descriptions::kPrivilegedWebContentsName, |
| flag_descriptions::kPrivilegedWebContentsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(pwc::mojom::features::kPrivilegedWebContents)}, |
| {"skills", flag_descriptions::kSkillsEnabledName, |
| flag_descriptions::kSkillsEnabledDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kSkillsEnabled)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"default-browser-promo-entry-point", |
| flag_descriptions::kDefaultBrowserPromoEntryPointName, |
| flag_descriptions::kDefaultBrowserPromoEntryPointDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kDefaultBrowserPromoEntryPoint, |
| kDefaultBrowserPromoEntryPointVariations, |
| "DefaultBrowserPromoEntryPoint")}, |
| |
| {"default-browser-promo-fre", |
| flag_descriptions::kDefaultBrowserPromoFreName, |
| flag_descriptions::kDefaultBrowserPromoFreDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kDefaultBrowserPromoFre, |
| kDefaultBrowserPromoFreVariations, |
| "DefaultBrowserPromoFre")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"happy-eyeballs-v3", flag_descriptions::kHappyEyeballsV3Name, |
| flag_descriptions::kHappyEyeballsV3Description, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kHappyEyeballsV3)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"management-promotion-banner-flag", |
| flag_descriptions::kEnableManagementPromotionBannerName, |
| flag_descriptions::kEnableManagementPromotionBannerDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kEnableManagementPromotionBanner)}, |
| #endif |
| |
| #if BUILDFLAG(ENABLE_DICE_SUPPORT) |
| {"enable-oauth-multilogin-standard-cookies-binding", |
| flag_descriptions::kEnableOAuthMultiloginStandardCookiesBindingName, |
| flag_descriptions::kEnableOAuthMultiloginStandardCookiesBindingDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE( |
| switches::kEnableOAuthMultiloginStandardCookiesBinding)}, |
| |
| {"enable-oauth-multilogin-youtube-cookies-binding", |
| flag_descriptions::kEnableOAuthMultiloginYoutubeCookiesBindingName, |
| flag_descriptions::kEnableOAuthMultiloginYoutubeCookiesBindingDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| switches::kEnableOAuthMultiloginYoutubeCookiesBinding, |
| kOAuthMultiloginYoutubeCookieBindingEnforcementVariations, |
| "EnableOAuthMultiloginYoutubeCookiesBinding")}, |
| |
| {"enable-chrome-refresh-token-binding", |
| flag_descriptions::kEnableChromeRefreshTokenBindingName, |
| flag_descriptions::kEnableChromeRefreshTokenBindingDescription, |
| kOsMac | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kEnableChromeRefreshTokenBinding)}, |
| |
| {"enable-chrome-refresh-token-binding-upgrade", |
| flag_descriptions::kEnableChromeRefreshTokenBindingUpgradeName, |
| flag_descriptions::kEnableChromeRefreshTokenBindingUpgradeDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| switches::kEnableChromeRefreshTokenBindingUpgrade, |
| kRefreshTokenBindingUpgradeVariations, |
| "RefreshTokenBindingUpgrade")}, |
| |
| {"enable-cookie-binding-cookie-upgrade", |
| flag_descriptions::kEnableCookieBindingCookieUpgradeName, |
| flag_descriptions::kEnableCookieBindingCookieUpgradeDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kEnableCookieBindingCookieUpgrade)}, |
| |
| {"linked-accounts", flag_descriptions::kDiceLinkedAccountsName, |
| flag_descriptions::kDiceLinkedAccountsDescription, |
| kOsMac | kOsWin | kOsLinux, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE( |
| switches::kEnableFeatures, |
| "DiceLinkedAccounts,DiceHeaderVersion2", |
| switches::kDisableFeatures, |
| "DiceLinkedAccounts,DiceHeaderVersion2")}, |
| |
| {"magichrome-passkey-signin", |
| flag_descriptions::kMagiChromePasskeySignInName, |
| flag_descriptions::kMagiChromePasskeySignInDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kMagiChromePasskeySignIn, |
| kMagiChromePasskeySignInVariations, |
| "MagiChromePasskeySignIn")}, |
| #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"three-button-password-save-dialog", |
| flag_descriptions::kThreeButtonPasswordSaveDialogName, |
| flag_descriptions::kThreeButtonPasswordSaveDialogDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kThreeButtonPasswordSaveDialog)}, |
| |
| {"password-save-update-dropdown-menu-experiment", |
| flag_descriptions::kPasswordSaveUpdateDropdownMenuExperimentName, |
| flag_descriptions::kPasswordSaveUpdateDropdownMenuExperimentDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kPasswordSaveUpdateDropdownMenuExperiment)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_MAC) |
| {"block-root-window-accessible-name-change-event", |
| flag_descriptions::kBlockRootWindowAccessibleNameChangeEventName, |
| flag_descriptions::kBlockRootWindowAccessibleNameChangeEventDescription, |
| kOsMac, |
| FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)}, |
| #endif // BUILDFLAG(IS_MAC) |
| |
| {"throttle-main-thread-to-60hz", flag_descriptions::kThrottleMainTo60HzName, |
| flag_descriptions::kThrottleMainTo60HzDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kThrottleMainFrameTo60Hz)}, |
| {"throttle-repeated-no-damage-frames", |
| flag_descriptions::kThrottleRepeatedNoDamageFramesName, |
| flag_descriptions::kThrottleRepeatedNoDamageFramesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kThrottleRepeatedNoDamageFrames)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"client-side-detection-server-model-for-scam-detection-android", |
| flag_descriptions:: |
| kClientSideDetectionServerModelForScamDetectionAndroidName, |
| flag_descriptions:: |
| kClientSideDetectionServerModelForScamDetectionAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| safe_browsing:: |
| kClientSideDetectionServerModelForScamDetectionAndroid)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| #if !BUILDFLAG(IS_ANDROID) |
| {"client-side-detection-server-model-for-scam-detection-desktop", |
| flag_descriptions:: |
| kClientSideDetectionServerModelForScamDetectionDesktopName, |
| flag_descriptions:: |
| kClientSideDetectionServerModelForScamDetectionDesktopDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| safe_browsing:: |
| kClientSideDetectionServerModelForScamDetectionDesktop)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-keyboard-used-palm-suppression", |
| flag_descriptions::kEnableKeyboardUsedPalmSuppressionName, |
| flag_descriptions::kEnableKeyboardUsedPalmSuppressionDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ui::kEnableKeyboardUsedPalmSuppression)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_WIN) |
| {"windows-system-tracing", flag_descriptions::kWindowsSystemTracingName, |
| flag_descriptions::kWindowsSystemTracingDescription, kOsWin, |
| FEATURE_VALUE_TYPE(kWindowsSystemTracing)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"fast-drm-master-drop", flag_descriptions::kFastDrmMasterDropName, |
| flag_descriptions::kFastDrmMasterDropDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(display::features::kFastDrmMasterDrop)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"new-etc1-encoder", flag_descriptions::kNewEtc1EncoderName, |
| flag_descriptions::kNewEtc1EncoderDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(ui::kUseNewEtc1Encoder)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) |
| {"automatic-usb-detach", flag_descriptions::kAutomaticUsbDetachName, |
| flag_descriptions::kAutomaticUsbDetachDescription, kOsAndroid | kOsLinux, |
| FEATURE_VALUE_TYPE(features::kAutomaticUsbDetach)}, |
| #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-side-panel-open-in-new-tab", |
| flag_descriptions::kLensOverlaySidePanelOpenInNewTabName, |
| flag_descriptions::kLensOverlaySidePanelOpenInNewTabDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlaySidePanelOpenInNewTab)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"mark-all-credentials-as-leaked", |
| flag_descriptions::kMarkAllCredentialsAsLeakedName, |
| flag_descriptions::kMarkAllCredentialsAsLeakedDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kMarkAllCredentialsAsLeaked)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-amount-extraction", |
| flag_descriptions::kAutofillEnableAmountExtractionName, |
| flag_descriptions::kAutofillEnableAmountExtractionDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableAmountExtraction)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-ax-tree-fixing", flag_descriptions::kAXTreeFixingName, |
| flag_descriptions::kAXTreeFixingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kAXTreeFixing)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"malicious-apk-download-check", |
| flag_descriptions::kMaliciousApkDownloadCheckName, |
| flag_descriptions::kMaliciousApkDownloadCheckDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(safe_browsing::kMaliciousApkDownloadCheck, |
| kMaliciousApkDownloadCheckChoices, |
| "MaliciousApkDownloadCheck")}, |
| |
| {"make-identity-manager-source-of-accounts", |
| flag_descriptions::kMakeIdentityManagerSourceOfAccountsName, |
| flag_descriptions::kMakeIdentityManagerSourceOfAccountsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kMakeIdentityManagerSourceOfAccounts)}, |
| |
| {"make-identity-manager-source-of-accounts-part2", |
| flag_descriptions::kMakeIdentityManagerSourceOfAccountsPart2Name, |
| flag_descriptions::kMakeIdentityManagerSourceOfAccountsPart2Description, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kMakeIdentityManagerSourceOfAccountsPart2)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {kDisableFacilitatedPaymentsMerchantAllowlistInternalName, |
| flag_descriptions::kDisableFacilitatedPaymentsMerchantAllowlistName, |
| flag_descriptions::kDisableFacilitatedPaymentsMerchantAllowlistDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| payments::facilitated::kDisableFacilitatedPaymentsMerchantAllowlist)}, |
| #endif // BUILDFLAF(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) |
| {"default-browser-changed-os-notification", |
| flag_descriptions::kDefaultBrowserChangedOsNotificationName, |
| flag_descriptions::kDefaultBrowserChangedOsNotificationDescription, kOsWin, |
| FEATURE_VALUE_TYPE(default_browser::kDefaultBrowserChangedOsNotification)}, |
| |
| {"default-browser-framework", |
| flag_descriptions::kDefaultBrowserFrameworkName, |
| flag_descriptions::kDefaultBrowserFrameworkDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(default_browser::kDefaultBrowserFramework)}, |
| |
| {"default-browser-prompt-surfaces", |
| flag_descriptions::kDefaultBrowserPromptSurfacesName, |
| flag_descriptions::kDefaultBrowserPromptSurfacesDescription, kOsWin, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| default_browser::kDefaultBrowserPromptSurfaces, |
| kDefaultBrowserPromptSurfacesVariations, |
| "DefaultBrowserPromptSurfaces")}, |
| |
| {"default-browser-setter-selection", |
| flag_descriptions::kDefaultBrowserSetterSelectionName, |
| flag_descriptions::kDefaultBrowserSetterSelectionDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| default_browser::kDefaultBrowserSetterSelection, |
| kDefaultBrowserSetterSelectionVariations, |
| "DefaultBrowserSetterSelection")}, |
| |
| {"visual-guided-setter-docking", |
| flag_descriptions::kVisualGuidedSetterDockingName, |
| flag_descriptions::kVisualGuidedSetterDockingDescription, kOsWin, |
| FEATURE_VALUE_TYPE(default_browser::kVisualGuidedSetterDocking)}, |
| #endif // !BUILDFLAG(IS_ANDROID) && ! BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-document-picture-in-picture", |
| flag_descriptions::kAndroidDocumentPictureInPictureName, |
| flag_descriptions::kAndroidDocumentPictureInPictureDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kDocumentPictureInPictureAPI)}, |
| |
| {"credential-management-third-party-web-api-request-forwarding", |
| flag_descriptions:: |
| kCredentialManagementThirdPartyWebApiRequestForwardingName, |
| flag_descriptions:: |
| kCredentialManagementThirdPartyWebApiRequestForwardingDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| credential_management::features:: |
| kCredentialManagementThirdPartyWebApiRequestForwarding)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-window-occlusion", |
| flag_descriptions::kAndroidWindowOcclusionName, |
| flag_descriptions::kAndroidWindowOcclusionDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ui::kAndroidWindowOcclusion, |
| kAndroidWindowOcclusionVariations, |
| "AndroidWindowOcclusion")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"iph-autofill-credit-card-benefit-feature", |
| flag_descriptions::kIPHAutofillCreditCardBenefitFeatureName, |
| flag_descriptions::kIPHAutofillCreditCardBenefitFeatureDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| feature_engagement::kIPHAutofillCreditCardBenefitFeature)}, |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| {"chrome-web-store-navigation-throttle", |
| flag_descriptions::kChromeWebStoreNavigationThrottleName, |
| flag_descriptions::kChromeWebStoreNavigationThrottleDescription, |
| kOsLinux | kOsMac | kOsWin, |
| FEATURE_VALUE_TYPE( |
| enterprise::webstore::kChromeWebStoreNavigationThrottle)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| {"align-pdf-default-print-settings-with-html", |
| flag_descriptions::kAlignPdfDefaultPrintSettingsWithHTMLName, |
| flag_descriptions::kAlignPdfDefaultPrintSettingsWithHTMLDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| printing::features::kAlignPdfDefaultPrintSettingsWithHTML)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-amount-extraction-testing", |
| flag_descriptions::kAutofillEnableAmountExtractionTestingName, |
| flag_descriptions::kAutofillEnableAmountExtractionTestingDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableAmountExtractionTesting)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| {"root-scrollbar-follows-browser-theme", |
| flag_descriptions::kRootScrollbarFollowsTheme, |
| flag_descriptions::kRootScrollbarFollowsThemeDescription, |
| kOsLinux | kOsWin, |
| FEATURE_VALUE_TYPE(blink::features::kRootScrollbarFollowsBrowserTheme)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-theme-module", flag_descriptions::kAndroidThemeModuleName, |
| flag_descriptions::kAndroidThemeModuleDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidThemeModule, |
| kAndroidThemeModuleVariations, |
| "AndroidThemeModule")}, |
| {"android-theme-resource-provider", |
| flag_descriptions::kAndroidThemeResourceProviderName, |
| flag_descriptions::kAndroidThemeResourceProviderDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kAndroidThemeResourceProvider, |
| kAndroidThemeResourceProviderVariations, |
| "AndroidThemeResourceProvider")}, |
| {"display-edge-to-edge-fullscreen", |
| flag_descriptions::kDisplayEdgeToEdgeFullscreenName, |
| flag_descriptions::kDisplayEdgeToEdgeFullscreenDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kDisplayEdgeToEdgeFullscreen)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"local-network-access-check", |
| flag_descriptions::kLocalNetworkAccessChecksName, |
| flag_descriptions::kLocalNetworkAccessChecksDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| network::features::kLocalNetworkAccessChecks, |
| kLocalNetworkAccessChecksVariations, |
| "LocalNetworkAccessChecks")}, |
| {"local-network-access-check-webrtc", |
| flag_descriptions::kLocalNetworkAccessChecksWebRTCName, |
| flag_descriptions::kLocalNetworkAccessChecksWebRTCDescription, kOsAll, |
| FEATURE_VALUE_TYPE(network::features::kLocalNetworkAccessChecksWebRTC)}, |
| {"local-network-access-check-websockets", |
| flag_descriptions::kLocalNetworkAccessChecksWebSocketsName, |
| flag_descriptions::kLocalNetworkAccessChecksWebSocketsDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| network::features::kLocalNetworkAccessChecksWebSockets)}, |
| {"local-network-access-check-webtransport", |
| flag_descriptions::kLocalNetworkAccessChecksWebTransportName, |
| flag_descriptions::kLocalNetworkAccessChecksWebTransportDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| network::features::kLocalNetworkAccessChecksWebTransport)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-surface-color-update", |
| flag_descriptions::kAndroidSurfaceColorUpdateName, |
| flag_descriptions::kAndroidSurfaceColorUpdateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidSurfaceColorUpdate)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"input-on-viz", flag_descriptions::kInputOnVizName, |
| flag_descriptions::kInputOnVizDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(input::features::kInputOnViz)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"aaudio-per-stream-device-selection", |
| flag_descriptions::kAAudioPerStreamDeviceSelectionName, |
| flag_descriptions::kAAudioPerStreamDeviceSelectionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAAudioPerStreamDeviceSelection)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"grid-tab-switcher-surface-color-update", |
| flag_descriptions::kGridTabSwitcherSurfaceColorUpdateName, |
| flag_descriptions::kGridTabSwitcherSurfaceColorUpdateDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kGridTabSwitcherSurfaceColorUpdate)}, |
| |
| // Android Automotive back button bar streamline. |
| {"automotive-back-button-bar-streamline", |
| flag_descriptions::kAutomotiveBackButtonBarStreamlineName, |
| flag_descriptions::kAutomotiveBackButtonBarStreamlineDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAutomotiveBackButtonBarStreamline)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"bundled-security-settings", |
| flag_descriptions::kBundledSecuritySettingsName, |
| flag_descriptions::kBundledSecuritySettingsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(safe_browsing::kBundledSecuritySettings)}, |
| |
| {"invalidate-search-engine-choice-on-device-restore-detection", |
| flag_descriptions:: |
| kInvalidateSearchEngineChoiceOnDeviceRestoreDetectionName, |
| flag_descriptions:: |
| kInvalidateSearchEngineChoiceOnDeviceRestoreDetectionDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| switches::kInvalidateSearchEngineChoiceOnDeviceRestoreDetection, |
| kInvalidateSearchEngineChoiceOnRestoreVariations, |
| "InvalidateSearchEngineChoiceOnDeviceRestoreDetection")}, |
| |
| {"block-cross-partition-blob-url-fetching", |
| flag_descriptions::kBlockCrossPartitionBlobUrlFetchingName, |
| flag_descriptions::kBlockCrossPartitionBlobUrlFetchingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kBlockCrossPartitionBlobUrlFetching)}, |
| |
| {"web-authentication-cross-device-fallback-url", |
| flag_descriptions::kWebAuthnCrossDeviceFallbackUrlName, |
| flag_descriptions::kWebAuthnCrossDeviceFallbackUrlDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(device::kWebAuthnCrossDeviceFallbackUrl)}, |
| |
| {"media-playback-while-not-visible-permission-policy", |
| flag_descriptions::kMediaPlaybackWhileNotVisiblePermissionPolicyName, |
| flag_descriptions:: |
| kMediaPlaybackWhileNotVisiblePermissionPolicyDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| blink::features::kMediaPlaybackWhileNotVisiblePermissionPolicy)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-adaptive-frame-rate", |
| flag_descriptions::kAndroidAdaptiveFrameRateName, |
| flag_descriptions::kAndroidAdaptiveFrameRateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kUseFrameIntervalDeciderAdaptiveFrameRate)}, |
| |
| {"robust-window-management-experimental", |
| flag_descriptions::kRobustWindowManagementExperimentalName, |
| flag_descriptions::kRobustWindowManagementExperimentalDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kRobustWindowManagementExperimental, |
| kRobustWindowManagementExperimentalVariations, |
| "RobustWindowManagementExperimental")}, |
| |
| {"schedule-window-cleaning", flag_descriptions::kScheduleWindowCleaningName, |
| flag_descriptions::kScheduleWindowCleaningDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kScheduleWindowCleaning)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-use-display-topology", |
| flag_descriptions::kAndroidUseDisplayTopologyName, |
| flag_descriptions::kAndroidUseDisplayTopologyDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(ui::kAndroidUseDisplayTopology)}, |
| |
| {"android-window-management-web-api", |
| flag_descriptions::kAndroidWindowManagementWebApiName, |
| flag_descriptions::kAndroidWindowManagementWebApiDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(permissions::features::kAndroidWindowManagementWebApi)}, |
| |
| {"browser-controls-debugging", |
| flag_descriptions::kBrowserControlsDebuggingName, |
| flag_descriptions::kBrowserControlsDebuggingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kBrowserControlsDebugging)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"fwupd-developer-mode", flag_descriptions::kFwupdDeveloperModeName, |
| flag_descriptions::kFwupdDeveloperModeDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kFwupdDeveloperMode)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"tab-group-home", tabs::flag_descriptions::kTabGroupHomeName, |
| tabs::flag_descriptions::kTabGroupHomeDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(tabs::kTabGroupHome)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| {"discount-autofill", commerce::flag_descriptions::kDiscountAutofillName, |
| commerce::flag_descriptions::kDiscountAutofillDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(commerce::kDiscountAutofill)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"touch-to-search-callout", flag_descriptions::kTouchToSearchCalloutName, |
| flag_descriptions::kTouchToSearchCalloutDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTouchToSearchCallout, |
| kTouchToSearchCalloutVariations, |
| "TouchToSearchCallout")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-use-correct-display-work-area", |
| flag_descriptions::kAndroidUseCorrectDisplayWorkAreaName, |
| flag_descriptions::kAndroidUseCorrectDisplayWorkAreaDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(ui::kAndroidUseCorrectDisplayWorkArea)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-use-correct-window-bounds", |
| flag_descriptions::kAndroidUseCorrectWindowBoundsName, |
| flag_descriptions::kAndroidUseCorrectWindowBoundsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(ui::kAndroidUseCorrectWindowBounds)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| // TODO(crbug.com/40680264): Remove this flag after regression investigation |
| // is finished. |
| { |
| "new-content-for-checkerboarded-scrolls", |
| flag_descriptions::kNewContentForCheckerboardedScrollsName, |
| flag_descriptions::kNewContentForCheckerboardedScrollsDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(features::kNewContentForCheckerboardedScrolls), |
| }, |
| #if BUILDFLAG(IS_WIN) |
| {"startup-launch", flag_descriptions::kStartupLaunchName, |
| flag_descriptions::kStartupLaunchDescription, kOsWin, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kLaunchOnStartup, |
| kStartupLaunchVariations, |
| "LaunchOnStartup")}, |
| {"startup-launch-infobar", flag_descriptions::kStartupLaunchInfoBarName, |
| flag_descriptions::kStartupLaunchInfoBarDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kLaunchOnStartupInfoBar)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| {"field-classification-model-caching", |
| flag_descriptions::kFieldClassificationModelCachingName, |
| flag_descriptions::kFieldClassificationModelCachingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kFieldClassificationModelCaching)}, |
| |
| {"disable-autofill-strike-system", |
| flag_descriptions::kDisableAutofillStrikeSystemName, |
| flag_descriptions::kDisableAutofillStrikeSystemDescription, kOsAll, |
| FEATURE_VALUE_TYPE(strike_database::features::kDisableStrikeSystem)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"show-tab-list-animations", flag_descriptions::kShowTabListAnimationsName, |
| flag_descriptions::kShowTabListAnimationsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kShowTabListAnimations)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"facilitated-payments-enable-a2a-payment", |
| flag_descriptions::kFacilitatedPaymentsEnableA2APaymentName, |
| flag_descriptions::kFacilitatedPaymentsEnableA2APaymentDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| payments::facilitated::kFacilitatedPaymentsEnableA2APayment)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"cras-output-plugin-processor", |
| flag_descriptions::kCrasOutputPluginProcessorName, |
| flag_descriptions::kCrasOutputPluginProcessorDescription, kOsCrOS, |
| PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootCrasOutputPluginProcessor")}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"web-app-install-element", flag_descriptions::kWebAppInstallElementName, |
| flag_descriptions::kWebAppInstallElementDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kInstallElement)}, |
| |
| {"web-app-installation-api", flag_descriptions::kWebAppInstallationApiName, |
| flag_descriptions::kWebAppInstallationApiDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kWebAppInstallation)}, |
| |
| {"web-app-migration-api", flag_descriptions::kWebAppMigrationApiName, |
| flag_descriptions::kWebAppMigrationApiDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(blink::features::kWebAppMigrationApi)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-exclusive-access-manager-on-android", |
| flag_descriptions::kEnableExclusiveAccessManagerName, |
| flag_descriptions::kEnableExclusiveAccessManagerDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kEnableExclusiveAccessManager)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-buy-now-pay-later-for-klarna", |
| flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaName, |
| flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableBuyNowPayLaterForKlarna)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"lens-overlay-permission-bubble-alt", |
| flag_descriptions::kLensOverlayPermissionBubbleAltName, |
| flag_descriptions::kLensOverlayPermissionBubbleAltDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayPermissionBubbleAlt)}, |
| |
| {"enable-ntp-browser-promos", |
| flag_descriptions::kEnableNtpBrowserPromosName, |
| flag_descriptions::kEnableNtpBrowserPromosDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| user_education::features::kEnableNtpBrowserPromos, |
| kEnableNtpBrowserPromosVariations, |
| "EnableNtpBrowserPromos")}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-devtools-deep-link-via-extensibility-api", |
| flag_descriptions::kEnableDevtoolsDeepLinkViaExtensibilityApiName, |
| flag_descriptions::kEnableDevtoolsDeepLinkViaExtensibilityApiDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kEnableDevtoolsDeepLinkViaExtensibilityApi)}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-buy-now-pay-later-for-externally-linked", |
| flag_descriptions::kAutofillEnableBuyNowPayLaterForExternallyLinkedName, |
| flag_descriptions:: |
| kAutofillEnableBuyNowPayLaterForExternallyLinkedDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableBuyNowPayLaterForExternallyLinked)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || |
| // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-separate-pix-preference-item", |
| flag_descriptions::kAutofillEnableSeparatePixPreferenceItemName, |
| flag_descriptions::kAutofillEnableSeparatePixPreferenceItemDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableSeparatePixPreferenceItem)}, |
| |
| {"android-open-incognito-as-window", |
| flag_descriptions::kAndroidOpenIncognitoAsWindowName, |
| flag_descriptions::kAndroidOpenIncognitoAsWindowDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(feed::kAndroidOpenIncognitoAsWindow)}, |
| |
| {"android-desktop-bookmark-dialog", |
| flag_descriptions::kAndroidDesktopBookmarkDialogName, |
| flag_descriptions::kAndroidDesktopBookmarkDialogDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidDesktopBookmarkDialog)}, |
| |
| {"android-desktop-bookmark-popup", |
| flag_descriptions::kAndroidDesktopBookmarkPopupName, |
| flag_descriptions::kAndroidDesktopBookmarkPopupDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidDesktopBookmarkPopup)}, |
| |
| {"android-desktop-bookmark-layout", |
| flag_descriptions::kAndroidDesktopBookmarkLayoutName, |
| flag_descriptions::kAndroidDesktopBookmarkLayoutDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidDesktopBookmarkLayout)}, |
| |
| {"android-desktop-history-layout", |
| flag_descriptions::kAndroidDesktopHistoryLayoutName, |
| flag_descriptions::kAndroidDesktopHistoryLayoutDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidDesktopHistoryLayout)}, |
| |
| {"android-desktop-ua-platform", |
| flag_descriptions::kAndroidDesktopUAPlatformName, |
| flag_descriptions::kAndroidDesktopUAPlatformDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAndroidDesktopUAPlatform)}, |
| |
| {"android-desktop-ua-spoof-as-chromeos", |
| flag_descriptions::kAndroidDesktopUASpoofAsChromeOSName, |
| flag_descriptions::kAndroidDesktopUASpoofAsChromeOSDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAndroidDesktopUASpoofAsChromeOS)}, |
| |
| {"android-desktop-webprefs-large-display", |
| flag_descriptions::kAndroidDesktopWebPrefsLargeDisplaysName, |
| flag_descriptions::kAndroidDesktopWebPrefsLargeDisplaysDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAndroidDesktopWebPrefsLargeDisplays)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-seamless-signin", flag_descriptions::kEnableSeamlessSigninName, |
| flag_descriptions::kEnableSeamlessSigninDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kEnableSeamlessSignin, |
| kSeamlessSigninVariations, |
| "SeamlessSigninVariations")}, |
| |
| {"cross-device-signin", flag_descriptions::kCrossDeviceSigninName, |
| flag_descriptions::kCrossDeviceSigninDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kCrossDeviceSignin, |
| kCrossDeviceSigninVariations, |
| "CrossDeviceSignin")}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| {"cross-device-signin-from-desktop", |
| flag_descriptions::kCrossDeviceSigninFromDesktopName, |
| flag_descriptions::kCrossDeviceSigninFromDesktopDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kCrossDeviceSigninFromDesktop, |
| kCrossDeviceSigninFromDesktopVariations, |
| "CrossDeviceSigninFromDesktop")}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-activityless-signin-all-entry-point", |
| flag_descriptions::kEnableActivitylessSigninAllEntryPointName, |
| flag_descriptions::kEnableActivitylessSigninAllEntryPointDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kEnableActivitylessSigninAllEntryPoint)}, |
| |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"force-history-opt-in-screen", |
| flag_descriptions::kForceHistoryOptInScreenName, |
| flag_descriptions::kForceHistoryOptInScreenDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kForceHistoryOptInScreen)}, |
| |
| {"open-system-account-settings-directly", |
| flag_descriptions::kOpenSystemAccountSettingsDirectlyName, |
| flag_descriptions::kOpenSystemAccountSettingsDirectlyDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kOpenSystemAccountSettingsDirectly)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-edu-action-chip", |
| flag_descriptions::kLensOverlayEduActionChipName, |
| flag_descriptions::kLensOverlayEduActionChipDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayEduActionChip)}, |
| |
| #endif |
| |
| {"safety-hub-disruptive-notification-revocation", |
| flag_descriptions::kSafetyHubDisruptiveNotificationRevocationName, |
| flag_descriptions::kSafetyHubDisruptiveNotificationRevocationDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kSafetyHubDisruptiveNotificationRevocation, |
| kSafetyHubDisruptiveNotificationRevocationVariations, |
| "SafetyHubDisruptiveNotificationRevocation")}, |
| |
| {"safety-hub-unused-permission-revocation-for-all-surfaces", |
| flag_descriptions::kSafetyHubUnusedPermissionRevocationForAllSurfacesName, |
| flag_descriptions:: |
| kSafetyHubUnusedPermissionRevocationForAllSurfacesDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| permissions::features:: |
| kSafetyHubUnusedPermissionRevocationForAllSurfaces)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-android-desktop-suppress-accessory-on-empty", |
| flag_descriptions::kAutofillAndroidDesktopSuppressAccessoryOnEmptyName, |
| flag_descriptions:: |
| kAutofillAndroidDesktopSuppressAccessoryOnEmptyDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAndroidDesktopSuppressAccessoryOnEmpty)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {kWebiumFlag, flag_descriptions::kWebiumName, |
| flag_descriptions::kWebiumDescription, kOsDesktop, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(switches::kEnableFeatures, |
| kWebiumFeatures, |
| switches::kDisableFeatures, |
| kWebiumFeatures)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-fullscreen-to-any-screen-android", |
| flag_descriptions::kEnableFullscreenToAnyScreenAndroidName, |
| flag_descriptions::kEnableFullscreenToAnyScreenAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kEnableFullscreenToAnyScreenAndroid)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"default-search-engine-prewarm", |
| flag_descriptions::kDefaultSearchEnginePrewarmName, |
| flag_descriptions::kDefaultSearchEnginePrewarmDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kPrewarm)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| {"apply-clientside-model-predictions-for-password-types", |
| flag_descriptions::kApplyClientsideModelPredictionsForPasswordTypesName, |
| flag_descriptions:: |
| kApplyClientsideModelPredictionsForPasswordTypesDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(password_manager::features:: |
| kApplyClientsideModelPredictionsForPasswordTypes)}, |
| |
| {"canvas-draw-element", flag_descriptions::kCanvasDrawElementName, |
| flag_descriptions::kCanvasDrawElementDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kCanvasDrawElement)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"toolbar-snapshot-refactor", |
| flag_descriptions::kToolbarSnapshotRefactorName, |
| flag_descriptions::kToolbarSnapshotRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kToolbarSnapshotRefactor)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(ENABLE_DICE_SUPPORT) |
| {"enforce-management-disclaimer", |
| flag_descriptions::kEnforceManagementDisclaimerName, |
| flag_descriptions::kEnforceManagementDisclaimerDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| switches::kEnforceManagementDisclaimer, |
| kPolicyDisclaimerRegistrationRetryDelayVariations, |
| "PolicyDisclaimerRegistrationRetryDelayVariations")}, |
| |
| #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-force-empty-csb-query", |
| flag_descriptions::kLensOverlayForceEmptyCsbQueryName, |
| flag_descriptions::kLensOverlayForceEmptyCsbQueryDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayForceEmptyCsbQuery)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-block-misspelling-suggestion-span-in-composition-mode", |
| flag_descriptions:: |
| kAndroidBlockMisspellingSuggestionSpanInCompositionModeName, |
| flag_descriptions:: |
| kAndroidBlockMisspellingSuggestionSpanInCompositionModeDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAndroidBlockMisspellingSuggestionSpanInCompositionMode)}, |
| {"android-block-grammar-suggestion-span-in-composition-mode", |
| flag_descriptions::kAndroidBlockGrammarSuggestionSpanInCompositionModeName, |
| flag_descriptions:: |
| kAndroidBlockGrammarSuggestionSpanInCompositionModeDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| features::kAndroidBlockGrammarSuggestionSpanInCompositionMode)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"browsing-history-actor-integration-M3", |
| flag_descriptions::kBrowsingHistoryActorIntegrationM3Name, |
| flag_descriptions::kBrowsingHistoryActorIntegrationM3Description, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(history::kBrowsingHistoryActorIntegrationM3)}, |
| |
| {"browsing-history-similar-visits-grouping", |
| flag_descriptions::kBrowsingHistorySimilarVisitsGroupingName, |
| flag_descriptions::kBrowsingHistorySimilarVisitsGroupingDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(history::kBrowsingHistorySimilarVisitsGrouping)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"incognito-theme-overlay-testing", |
| flag_descriptions::kIncognitoThemeOverlayTestingName, |
| flag_descriptions::kIncognitoThemeOverlayTestingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kIncognitoThemeOverlayTesting)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"mobile-promo-on-desktop-force-promo-type", |
| flag_descriptions::kMobilePromoOnDesktopForcePromoTypeName, |
| flag_descriptions::kMobilePromoOnDesktopForcePromoTypeDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| kMobilePromoOnDesktopForcePromoType, |
| kMobilePromoOnDesktopForcePromoTypeVariations, |
| "MobilePromoOnDesktopForcePromo")}, |
| {"mobile-promo-on-desktop-with-qr-code", |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeName, |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kMobilePromoOnDesktopWithQRCode, |
| kMobilePromoOnDesktopWithQRCodeVariations, |
| "MobilePromoOnDesktopWithQRCode")}, |
| {"mobile-promo-on-desktop-with-reminder", |
| flag_descriptions::kMobilePromoOnDesktopWithReminderName, |
| flag_descriptions::kMobilePromoOnDesktopWithReminderDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kMobilePromoOnDesktopWithReminder, |
| kMobilePromoOnDesktopVariations, |
| "MobilePromoOnDesktopWithReminder")}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"enable-lens-overlay-text-selection-context-menu-entrypoint", |
| flag_descriptions::kLensOverlayTextSelectionContextMenuEntrypointName, |
| flag_descriptions:: |
| kLensOverlayTextSelectionContextMenuEntrypointDescription, |
| kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| lens::features::kLensOverlayTextSelectionContextMenuEntrypoint, |
| kLensOverlayTextSelectionContextMenuEntrypointVariations, |
| "LensOverlayTextSelectionContextMenuEntrypoint")}, |
| #endif // !BUILDFLAG(IS_ANDROID), |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"tab-group-hover-cards", flag_descriptions::kTabGroupHoverCardsName, |
| flag_descriptions::kTabGroupHoverCardsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kTabGroupHoverCards)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-android-desktop-keyboard-accessory-revamp", |
| flag_descriptions::kAutofillAndroidDesktopKeyboardAccessoryRevampName, |
| flag_descriptions:: |
| kAutofillAndroidDesktopKeyboardAccessoryRevampDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAndroidDesktopKeyboardAccessoryRevamp)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-android-keyboard-accessory-dynamic-positioning", |
| flag_descriptions::kAutofillAndroidKeyboardAccessoryDynamicPositioningName, |
| flag_descriptions:: |
| kAutofillAndroidKeyboardAccessoryDynamicPositioningDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillAndroidKeyboardAccessoryDynamicPositioning)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-android-keyboard-accessory-hover-preview", |
| flag_descriptions::kAutofillAndroidKeyboardAccessoryHoverPreviewName, |
| flag_descriptions:: |
| kAutofillAndroidKeyboardAccessoryHoverPreviewDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAndroidKeyboardAccessoryHoverPreview)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"controlled-frame-web-request-security-info", |
| flag_descriptions::kControlledFrameWebRequestSecurityInfoName, |
| flag_descriptions::kControlledFrameWebRequestSecurityInfoDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kControlledFrameWebRequestSecurityInfo)}, |
| {"source-specific-multicast-in-direct-sockets", |
| flag_descriptions::kSourceSpecificMulticastInDirectSocketsName, |
| flag_descriptions::kSourceSpecificMulticastInDirectSocketsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kSourceSpecificMulticastInDirectSockets)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-animated-progress-bar-in-browser", |
| flag_descriptions::kAndroidAnimatedProgressBarInBrowserName, |
| flag_descriptions::kAndroidAnimatedProgressBarInBrowserDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| features::kAndroidAnimatedProgressBarInBrowser, |
| kAndroidAnimatedProgressBarInBrowserVariations, |
| "AndroidAnimatedProgressBarInBrowser")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"enable-cross-device-pref-tracker", |
| flag_descriptions::kEnableCrossDevicePrefTrackerName, |
| flag_descriptions::kEnableCrossDevicePrefTrackerDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| sync_preferences::features::kEnableCrossDevicePrefTracker)}, |
| {"enable-cross-device-theme-tracker", |
| flag_descriptions::kEnableCrossDeviceThemeTrackerName, |
| flag_descriptions::kEnableCrossDeviceThemeTrackerDescription, kOsAll, |
| FEATURE_VALUE_TYPE(themes::kCrossDeviceThemeTracker)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| { |
| "enable-d3d12-video-encoder", |
| flag_descriptions::kD3D12VideoEncoderName, |
| flag_descriptions::kD3D12VideoEncoderDescription, |
| kOsWin, |
| FEATURE_VALUE_TYPE(media::kD3D12VideoEncodeAccelerator), |
| }, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"media-codec-block-model", flag_descriptions::kMediaCodecBlockModelName, |
| flag_descriptions::kMediaCodecBlockModelDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kMediaCodecBlockModel)}, |
| |
| {"media-codec-block-model-output", |
| flag_descriptions::kMediaCodecBlockModelOutputName, |
| flag_descriptions::kMediaCodecBlockModelOutputDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kMediaCodecBlockModelOutput)}, |
| |
| {"media-codec-low-delay-mode", |
| flag_descriptions::kMediaCodecLowDelayModeName, |
| flag_descriptions::kMediaCodecLowDelayModeDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kMediaCodecLowDelayMode)}, |
| #endif |
| |
| #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ |
| BUILDFLAG(IS_WIN) |
| {"contextual-suggestion-ui-improvements", |
| flag_descriptions::kContextualSuggestionsUiImprovementsName, |
| flag_descriptions::kContextualSuggestionsUiImprovementsDescription, |
| kOsDesktop, MULTI_VALUE_TYPE(kContextualSuggestionsUiImprovementsChoices)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || |
| // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) |
| |
| {"verify-qwacs", flag_descriptions::kVerifyQWACsName, |
| flag_descriptions::kVerifyQWACsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(net::features::kVerifyQWACs)}, |
| |
| {"autofill-prefer-buy-now-pay-later-blocklists", |
| flag_descriptions::kAutofillPreferBuyNowPayLaterBlocklistsName, |
| flag_descriptions::kAutofillPreferBuyNowPayLaterBlocklistsDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillPreferBuyNowPayLaterBlocklists)}, |
| |
| {"autofill-enable-ai-based-amount-extraction", |
| flag_descriptions::kAutofillEnableAiBasedAmountExtractionName, |
| flag_descriptions::kAutofillEnableAiBasedAmountExtractionDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableAiBasedAmountExtraction)}, |
| |
| {"contextual-tasks", |
| contextual_tasks::flag_descriptions::kContextualTasksName, |
| contextual_tasks::flag_descriptions::kContextualTasksDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasks)}, |
| |
| {"contextual-tasks-ephemeral-branded-entry-point", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksEphemeralBrandedEntryPointName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksEphemeralBrandedEntryPointDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| contextual_tasks::kContextualTasksEphemeralBrandedEntryPoint, |
| kEphemeralBrandedEntryPointVariations, |
| "ContextualTasksEphemeralBrandedEntryPoint")}, |
| |
| {"contextual-tasks-ephemeral-pinning-visible-when-permanently-pinned", |
| contextual_tasks::flag_descriptions:: |
| kEphemeralPinningVisibleWhenPermanentlyPinnedName, |
| contextual_tasks::flag_descriptions:: |
| kEphemeralPinningVisibleWhenPermanentlyPinnedDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kEphemeralPinningVisibleWhenPermanentlyPinned)}, |
| |
| {"contextual-tasks-private-api-no-animation", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksPrivateApiNoAnimationName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksPrivateApiNoAnimationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kContextualTasksPrivateApiNoAnimation)}, |
| |
| {"contextual-tasks-side-panel", |
| contextual_tasks::flag_descriptions::kContextualTasksSidePanelName, |
| contextual_tasks::flag_descriptions::kContextualTasksSidePanelDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksSidePanel)}, |
| |
| {"contextual-tasks-override-show-bottom-sheet-on-large-screen", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksOverrideShowBottomSheetOnLargeScreenName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksOverrideShowBottomSheetOnLargeScreenDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks:: |
| kContextualTasksOverrideShowBottomSheetOnLargeScreen)}, |
| |
| {"contextual-tasks-rearchitecture", |
| contextual_tasks::flag_descriptions::kContextualTasksRearchitectureName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksRearchitectureDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksRearchitecture)}, |
| |
| {"contextual-tasks-side-panel-rearchitecture", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksSidePanelRearchitectureName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksSidePanelRearchitectureDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kContextualTasksSidePanelRearchitecture)}, |
| |
| {"contextual-tasks-clobber-active-tab", |
| contextual_tasks::flag_descriptions::kContextualTasksClobberActiveTabName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksClobberActiveTabDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksClobberActiveTab)}, |
| |
| {"contextual-tasks-bypass-dismissed-cap", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksBypassDismissedCapName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksBypassDismissedCapDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksBypassDismissedCap)}, |
| |
| {"omnibox-debug-logs", omnibox::flag_descriptions::kOmniboxDebugLogsName, |
| omnibox::flag_descriptions::kOmniboxDebugLogsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxDebugLogs)}, |
| |
| {"omnibox-cross-device-tab-zero-suggest", |
| flag_descriptions::kOmniboxCrossDeviceTabZeroSuggestName, |
| flag_descriptions::kOmniboxCrossDeviceTabZeroSuggestDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kOmniboxCrossDeviceTabZeroSuggest)}, |
| |
| {"contextual-tasks-context", |
| contextual_tasks::flag_descriptions::kContextualTasksContextName, |
| contextual_tasks::flag_descriptions::kContextualTasksContextDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(contextual_tasks::kContextualTasksContext, |
| kContextualTaskContextVariations, |
| "ContextualTasks")}, |
| |
| {"contextual-tasks-suggestions-enabled", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksSuggestionsEnabledName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksSuggestionsEnabledDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksSuggestionsEnabled)}, |
| |
| {"enable-contextual-tasks-pin-button-in-toolbar", |
| contextual_tasks::flag_descriptions:: |
| kEnableContextualTasksPinButtonInToolbarName, |
| contextual_tasks::flag_descriptions:: |
| kEnableContextualTasksPinButtonInToolbarDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kEnableContextualTasksPinButtonInToolbar)}, |
| |
| {"contextual-tasks-enable-spatial-model-toolbar-layout", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksEnableSpatialModelToolbarLayoutName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksEnableSpatialModelToolbarLayoutDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| contextual_tasks::kContextualTasksEnableSpatialModelToolbarLayout, |
| kContextualTasksEnableSpatialModelToolbarLayoutVariations, |
| "ContextualTasksEnableSpatialModelToolbarLayout")}, |
| |
| {"contextual-tasks-hide-menu-on-ai-page", |
| contextual_tasks::flag_descriptions::kContextualTasksHideMenuOnAiPageName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksHideMenuOnAiPageDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksHideMenuOnAiPage)}, |
| |
| {"contextual-tasks-search-query", |
| contextual_tasks::flag_descriptions::kContextualTasksSearchQueryName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksSearchQueryDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksSearchQuery)}, |
| |
| {"contextual-tasks-context-library", |
| contextual_tasks::flag_descriptions::kContextualTasksContextLibraryName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksContextLibraryDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksContextLibrary)}, |
| |
| {"contextual-tasks-back-button-expands-side-panel", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksBackButtonExpandsSidePanelName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksBackButtonExpandsSidePanelDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kContextualTasksBackButtonExpandsSidePanel)}, |
| |
| {"contextual-tasks-close-tab-expands-side-panel", |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksCloseTabExpandsSidePanelName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksCloseTabExpandsSidePanelDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| contextual_tasks::kContextualTasksCloseTabExpandsSidePanel)}, |
| |
| {"contextual-tasks-cookie-prefetch", |
| contextual_tasks::flag_descriptions::kContextualTasksCookiePrefetchName, |
| contextual_tasks::flag_descriptions:: |
| kContextualTasksCookiePrefetchDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(contextual_tasks::kContextualTasksCookiePrefetch)}, |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-unicorn-chrome-activity-reporting", |
| flag_descriptions::kUnicornChromeActivityReportingName, |
| flag_descriptions::kUnicornChromeActivityReportingDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kUnicornChromeActivityReporting)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| {"autofill-enable-buy-now-pay-later-updated-suggestion-second-line-string", |
| flag_descriptions:: |
| kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineStringName, |
| flag_descriptions:: |
| kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineStringDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineString)}, |
| |
| {"cryptography-compliance-cnsa", |
| flag_descriptions::kCryptographyComplianceCnsaName, |
| flag_descriptions::kCryptographyComplianceCnsaDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kCryptographyComplianceCnsa)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"lens-reinvocation-affordance", |
| flag_descriptions::kLensSearchReinvocationAffordanceName, |
| flag_descriptions::kLensSearchReinvocationAffordanceDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensSearchReinvocationAffordance)}, |
| |
| {"lens-updated-feedback-entrypoint", |
| flag_descriptions::kLensUpdatedFeedbackEntrypointName, |
| flag_descriptions::kLensUpdatedFeedbackEntrypointDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensUpdatedFeedbackEntrypoint)}, |
| |
| {"lens-video-citations", flag_descriptions::kLensVideoCitationsName, |
| flag_descriptions::kLensVideoCitationsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensVideoCitations)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"trusted-web-activity-contacts-delegation", |
| flag_descriptions::kTrustedWebActivityContactsDelegationName, |
| flag_descriptions::kTrustedWebActivityContactsDelegationDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kTrustedWebActivityContactsDelegation)}, |
| |
| {"migrate-account-manager-delegate", |
| flag_descriptions::kMigrateAccountManagerDelegateName, |
| flag_descriptions::kMigrateAccountManagerDelegateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kMigrateAccountManagerDelegate)}, |
| #endif |
| |
| {"variations-seed-corpus", flag_descriptions::kVariationsSeedCorpusName, |
| flag_descriptions::kVariationsSeedCorpusDescription, kOsAll, |
| STRING_VALUE_TYPE(variations::switches::kVariationsSeedCorpus, "")}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"passkey-unlock-error-ui", flag_descriptions::kPasskeyUnlockErrorUiName, |
| flag_descriptions::kPasskeyUnlockErrorUiDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(device::kPasskeyUnlockErrorUi)}, |
| #endif |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"vids-app-preinstall", flag_descriptions::kVidsAppPreinstallName, |
| flag_descriptions::kVidsAppPreinstallDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(chromeos::features::kVidsAppPreinstall)}, |
| #endif |
| |
| #if (BUILDFLAG(IS_ANDROID)) |
| {"android-context-menu-disabled-menu-items", |
| flag_descriptions::kAndroidContextMenuDisabledMenuItemsName, |
| flag_descriptions::kAndroidContextMenuDisabledMenuItemsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidContextMenuDisabledMenuItems)}, |
| #endif |
| |
| {"service-worker-synthetic-response", |
| flag_descriptions::kServiceWorkerSyntheticResponseName, |
| flag_descriptions::kServiceWorkerSyntheticResponseDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kServiceWorkerSyntheticResponse)}, |
| |
| {"user-value-default-browser-strings", |
| flag_descriptions::kUserValueDefaultBrowserStringsName, |
| flag_descriptions::kUserValueDefaultBrowserStringsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kUserValueDefaultBrowserStrings)}, |
| |
| {"mdm-errors-for-dasher-accounts-handling", |
| flag_descriptions::kHandleMdmErrorsForDasherAccountsName, |
| flag_descriptions::kHandleMdmErrorsForDasherAccountsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(switches::kHandleMdmErrorsForDasherAccounts)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| {"profile-creation-decline-signin-cta-experiment", |
| flag_descriptions::kProfileCreationDeclineSigninCTAExperimentName, |
| flag_descriptions::kProfileCreationDeclineSigninCTAExperimentDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kProfileCreationDeclineSigninCTAExperiment)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"search-settings-update", flag_descriptions::kSearchSettingsUpdateName, |
| flag_descriptions::kSearchSettingsUpdateDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(switches::kSearchSettingsUpdate)}, |
| #endif |
| |
| {"profile-signals-reporting-enabled", |
| flag_descriptions::kProfileSignalsReportingEnabledName, |
| flag_descriptions::kProfileSignalsReportingEnabledDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| enterprise_signals::features::kProfileSignalsReportingEnabled)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"organizer-panel", flag_descriptions::kOrganizerPanelName, |
| flag_descriptions::kOrganizerPanelDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(organizer_panel::kOrganizerPanel)}, |
| {"sync-ai-threads", flag_descriptions::kSyncAIThreadsName, |
| flag_descriptions::kSyncAIThreadsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(syncer::kSyncAIThread)}, |
| {"sync-gemini-threads", flag_descriptions::kSyncGeminiThreadsName, |
| flag_descriptions::kSyncGeminiThreadsDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(syncer::kSyncGeminiThread)}, |
| #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ |
| // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS) |
| {"use-unexportable-key-service-in-browser-process", |
| flag_descriptions::kUseUnexportableKeyServiceInBrowserProcessName, |
| flag_descriptions::kUseUnexportableKeyServiceInBrowserProcessDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE( |
| network::features::kUseUnexportableKeyServiceInBrowserProcess)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-desktop-zoom-scaling", |
| flag_descriptions::kAndroidDesktopZoomScalingName, |
| flag_descriptions::kAndroidDesktopZoomScalingDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(features::kAndroidDesktopZoomScaling, |
| kAndroidDesktopZoomScalingVariations, |
| "AndroidDesktopZoomScaling")}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"web-app-migrate-preinstalled-chat", |
| flag_descriptions::kWebAppMigratePreinstalledChatName, |
| flag_descriptions::kWebAppMigratePreinstalledChatDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebAppMigratePreinstalledChat)}, |
| |
| {"web-app-install-dialog", flag_descriptions::kWebAppInstallDialogName, |
| flag_descriptions::kWebAppInstallDialogDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebAppInstallDialog)}, |
| {"web-app-install-dialog-win-pin", |
| flag_descriptions::kWebAppInstallDialogWinPinName, |
| flag_descriptions::kWebAppInstallDialogWinPinDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kWebAppInstallDialogWinPin)}, |
| #endif |
| |
| {"connection-allowlists", flag_descriptions::kConnectionAllowlistsName, |
| flag_descriptions::kConnectionAllowlistsDescription, kOsAll, |
| MULTI_VALUE_TYPE(kConnectionAllowlistsChoices)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-with-readability-enabled", |
| flag_descriptions::kReadAnythingWithReadabilityName, |
| flag_descriptions::kReadAnythingWithReadabilityDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingWithReadability)}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-omnibox-chip", |
| flag_descriptions::kReadAnythingOmniboxChipName, |
| flag_descriptions::kReadAnythingOmniboxChipDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingOmniboxChip)}, |
| #endif |
| |
| #if BUILDFLAG(IS_MAC) |
| {"unexportable-key-deletion", |
| flag_descriptions::kUnexportableKeyDeletionName, |
| flag_descriptions::kUnexportableKeyDeletionDescription, kOsMac, |
| FEATURE_VALUE_TYPE(unexportable_keys::kUnexportableKeyDeletion)}, |
| #endif |
| |
| {"autofill-disable-bnpl-country-check-for-testing", |
| flag_descriptions::kAutofillDisableBnplCountryCheckForTestingName, |
| flag_descriptions::kAutofillDisableBnplCountryCheckForTestingDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillDisableBnplCountryCheckForTesting)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"lens-overlay-non-blocking-privacy-notice", |
| flag_descriptions::kLensOverlayNonBlockingPrivacyNoticeName, |
| flag_descriptions::kLensOverlayNonBlockingPrivacyNoticeDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(lens::features::kLensOverlayNonBlockingPrivacyNotice)}, |
| |
| {"lens-overlay-non-blocking-privacy-notice-for-image-search", |
| flag_descriptions::kLensOverlayNonBlockingPrivacyNoticeForImageSearchName, |
| flag_descriptions:: |
| kLensOverlayNonBlockingPrivacyNoticeForImageSearchDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| lens::features::kLensOverlayNonBlockingPrivacyNoticeForImageSearch)}, |
| #endif |
| |
| {"migrate-syncing-user-to-signed-in", |
| flag_descriptions::kMigrateSyncingUserToSignedInName, |
| flag_descriptions::kMigrateSyncingUserToSignedInDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kMigrateSyncingUserToSignedIn)}, |
| |
| {"undo-migration-of-syncing-user-to-signed-in", |
| flag_descriptions::kUndoMigrationOfSyncingUserToSignedInName, |
| flag_descriptions::kUndoMigrationOfSyncingUserToSignedInDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_VALUE_TYPE(switches::kUndoMigrationOfSyncingUserToSignedIn)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-auto-minted-twa", flag_descriptions::kAndroidAutoMintedTWAName, |
| flag_descriptions::kAndroidAutoMintedTWADescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(webapps::features::kAndroidAutoMintedTWA)}, |
| |
| {"autofill-enable-new-fop-display-android", |
| flag_descriptions::kAutofillEnableNewFopDisplayAndroidName, |
| flag_descriptions::kAutofillEnableNewFopDisplayAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableNewFopDisplayAndroid)}, |
| #endif |
| |
| {"dom-storage-sqlite", flag_descriptions::kDomStorageSqliteName, |
| flag_descriptions::kDomStorageSqliteDescription, kOsAll, |
| FEATURE_VALUE_TYPE(storage::kDomStorageSqlite)}, |
| |
| {"idb-sqlite-backing-store", flag_descriptions::kIdbSqliteBackingStoreName, |
| flag_descriptions::kIdbSqliteBackingStoreDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kIdbSqliteBackingStore)}, |
| |
| // On other platforms, this requires --enable-features=ElasticOverscroll to |
| // have an effect. |
| {"overscroll-effect-on-non-root-scrollers", |
| flag_descriptions::kOverscrollEffectOnNonRootScrollersName, |
| flag_descriptions::kOverscrollEffectOnNonRootScrollersDescription, |
| kOsMac | kOsAndroid | kOsWin, |
| FEATURE_VALUE_TYPE(features::kOverscrollEffectOnNonRootScrollers)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-enable-touch-to-fill-reshow-for-bnpl", |
| flag_descriptions::kAutofillEnableTouchToFillReshowForBnplName, |
| flag_descriptions::kAutofillEnableTouchToFillReshowForBnplDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableTouchToFillReshowForBnpl)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_MAC) |
| {"enable-accessibility-text-operation", |
| flag_descriptions::kMacAccessibilityTextOperationName, |
| flag_descriptions::kMacAccessibilityTextOperationDescription, kOsMac, |
| FEATURE_VALUE_TYPE(features::kMacAccessibilityTextOperation)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"cws-promotion-banner-flag", |
| flag_descriptions::kEnableShouldShowPromotionName, |
| flag_descriptions::kEnableShouldShowPromotionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(extensions_features::kEnableShouldShowPromotion)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"persist-across-reboots", flag_descriptions::kPersistAcrossRebootsName, |
| flag_descriptions::kPersistAcrossRebootsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPersistAcrossReboots)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-force-text-input-state-update-upon-focus", |
| flag_descriptions::kAndroidForceTextInputStateUpdateUponFocusName, |
| flag_descriptions::kAndroidForceTextInputStateUpdateUponFocusDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidForceTextInputStateUpdateUponFocus)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-physical-keyboard-autocorrect-underline", |
| flag_descriptions::kAndroidPkAutocorrectUnderlineName, |
| flag_descriptions::kAndroidPkAutocorrectUnderlineDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidPkAutocorrectUnderline)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-physical-keyboard-autocorrect-underline-v2", |
| flag_descriptions::kAndroidPkAutocorrectUnderlineV2Name, |
| flag_descriptions::kAndroidPkAutocorrectUnderlineV2Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidPkAutocorrectUnderlineV2)}, |
| #endif |
| |
| #if BUILDFLAG(IS_MAC) |
| {"mac-enable-okta-sso", flag_descriptions::kEnableOktaSSOName, |
| flag_descriptions::kEnableOktaSSODescription, kOsMac, |
| FEATURE_VALUE_TYPE(enterprise_auth::kOktaSSO)}, |
| #endif |
| |
| {"autofill-enable-wallet-branding", |
| flag_descriptions::kAutofillEnableWalletBrandingName, |
| flag_descriptions::kAutofillEnableWalletBrandingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableWalletBranding)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"enable-arabic-indic-digit-input", |
| flag_descriptions::kArabicIndicDigitInputName, |
| flag_descriptions::kArabicIndicDigitInputDescription, kOsWin, |
| FEATURE_VALUE_TYPE(features::kArabicIndicDigitInput)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-swipe-to-switch-pane", |
| flag_descriptions::kEnableSwipeToSwitchPaneName, |
| flag_descriptions::kEnableSwipeToSwitchPaneDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kEnableSwipeToSwitchPane, |
| kEnableSwipeToSwitchPaneVariations, |
| "EnableSwipeToSwitchPane")}, |
| #endif |
| |
| {"autofill-ai-based-amount-extraction-ignore-seen-terms-for-testing", |
| flag_descriptions:: |
| kAutofillAiBasedAmountExtractionIgnoreSeenTermsForTestingName, |
| flag_descriptions:: |
| kAutofillAiBasedAmountExtractionIgnoreSeenTermsForTestingDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillAiBasedAmountExtractionIgnoreSeenTermsForTesting)}, |
| |
| {"autofill-ai-always-trigger-server-model", |
| flag_descriptions::kAutofillAiAlwaysTriggerServerModelName, |
| flag_descriptions::kAutofillAiAlwaysTriggerServerModelDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAiAlwaysTriggerServerModel)}, |
| |
| {"autofill-ai-always-show-private-ai-notice", |
| flag_descriptions::kAutofillAiAlwaysShowPrivateAiNoticeName, |
| flag_descriptions::kAutofillAiAlwaysShowPrivateAiNoticeDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::debug::kAutofillAiAlwaysShowPrivateAiNotice)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-ai-available-by-default", |
| flag_descriptions::kAutofillAiAvailableByDefaultName, |
| flag_descriptions::kAutofillAiAvailableByDefaultDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiAvailableByDefault)}, |
| #endif |
| |
| {"autofill-ai-dedupe-entities", |
| flag_descriptions::kAutofillAiDedupeEntitiesName, |
| flag_descriptions::kAutofillAiDedupeEntitiesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiDedupeEntities)}, |
| |
| {"autofill-ai-no-filling-icons-experiment", |
| flag_descriptions::kAutofillAiNoFillingIconsExperimentName, |
| flag_descriptions::kAutofillAiNoFillingIconsExperimentDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAiNoFillingIconsExperiment)}, |
| |
| {"autofill-ai-reauth-required", |
| flag_descriptions::kAutofillAiReauthRequiredName, |
| flag_descriptions::kAutofillAiReauthRequiredDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiReauthRequired)}, |
| |
| {"autofill-ai-server-model", flag_descriptions::kAutofillAiServerModelName, |
| flag_descriptions::kAutofillAiServerModelDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiServerModel)}, |
| |
| {"autofill-ai-valuables-iph", |
| flag_descriptions::kAutofillAiValuablesIPHName, |
| flag_descriptions::kAutofillAiValuablesIPHDescription, kOsAll, |
| FEATURE_VALUE_TYPE(feature_engagement::kIPHAutofillAiValuablesFeature)}, |
| |
| {"autofill-ai-wallet-flight-reservation", |
| flag_descriptions::kAutofillAiWalletFlightReservationName, |
| flag_descriptions::kAutofillAiWalletFlightReservationDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAiWalletFlightReservation)}, |
| |
| {"autofill-ai-wallet-private-passes", |
| flag_descriptions::kAutofillAiWalletPrivatePassesName, |
| flag_descriptions::kAutofillAiWalletPrivatePassesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiWalletPrivatePasses)}, |
| |
| {"autofill-ai-wallet-private-passes-deep-link", |
| flag_descriptions::kAutofillAiWalletPrivatePassesDeepLinkName, |
| flag_descriptions::kAutofillAiWalletPrivatePassesDeepLinkDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAiWalletPrivatePassesDeepLink)}, |
| |
| {"autofill-ai-wallet-vehicle-registration", |
| flag_descriptions::kAutofillAiWalletVehicleRegistrationName, |
| flag_descriptions::kAutofillAiWalletVehicleRegistrationDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAiWalletVehicleRegistration)}, |
| |
| {"autofill-ai-with-data-schema", |
| flag_descriptions::kAutofillAiWithDataSchemaName, |
| flag_descriptions::kAutofillAiWithDataSchemaDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillAiWithDataSchema)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-line-focus", flag_descriptions::kReadAnythingLineFocusName, |
| flag_descriptions::kReadAnythingLineFocusDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingLineFocus)}, |
| #endif |
| |
| {"verify-mtcs", flag_descriptions::kVerifyMTCsName, |
| flag_descriptions::kVerifyMTCsDescription, kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(net::features::kVerifyMTCs)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"desktop-android-link-capturing", |
| flag_descriptions::kDesktopAndroidLinkCapturingName, |
| flag_descriptions::kDesktopAndroidLinkCapturingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDesktopAndroidLinkCapturing)}, |
| {"desktop-android-twa-delete-browser-data", |
| flag_descriptions::kDesktopAndroidTWADeleteBrowserDataName, |
| flag_descriptions::kDesktopAndroidTWADeleteBrowserDataDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDesktopAndroidTWADeleteBrowserData)}, |
| {"desktop-android-twa-disclosures", |
| flag_descriptions::kDesktopAndroidTWADisclosuresName, |
| flag_descriptions::kDesktopAndroidTWADisclosuresDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDesktopAndroidTWADisclosures)}, |
| {"desktop-android-twa-disclosures-help-link", |
| flag_descriptions::kDesktopAndroidTWADisclosuresHelpLinkName, |
| flag_descriptions::kDesktopAndroidTWADisclosuresHelpLinkDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kDesktopAndroidTWADisclosuresHelpLink)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-side-panel", |
| flag_descriptions::kEnableAndroidSidePanelName, |
| flag_descriptions::kEnableAndroidSidePanelDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kEnableAndroidSidePanel, |
| kEnableAndroidSidePanelVariations, |
| "EnableAndroidSidePanel")}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-side-panel-dev-feature", |
| flag_descriptions::kEnableAndroidSidePanelDevFeatureName, |
| flag_descriptions::kEnableAndroidSidePanelDevFeatureDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kEnableAndroidSidePanelDevFeature, |
| kAndroidSidePanelDevFeatureVariations, |
| "AndroidSidePanelDevFeature")}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"signin-level-up-button", flag_descriptions::kSigninLevelUpButtonName, |
| flag_descriptions::kSigninLevelUpButtonDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kSigninLevelUpButton)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"always-draw-composited-toolbar-hairline", |
| flag_descriptions::kAlwaysDrawCompositedToolbarHairlineName, |
| flag_descriptions::kAlwaysDrawCompositedToolbarHairlineDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAlwaysDrawCompositedToolbarHairline)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-xr-immersive-player", |
| flag_descriptions::kAndroidXrImmersivePlayerName, |
| flag_descriptions::kAndroidXrImmersivePlayerDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidXrImmersivePlayer)}, |
| #endif |
| |
| {"saas-usage-reporting", flag_descriptions::kSaasUsageReportingName, |
| flag_descriptions::kSaasUsageReportingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(enterprise_reporting::kSaasUsageReporting)}, |
| |
| {"autofill-enable-pay-now-pay-later-tabs", |
| flag_descriptions::kAutofillEnablePayNowPayLaterTabsName, |
| flag_descriptions::kAutofillEnablePayNowPayLaterTabsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnablePayNowPayLaterTabs)}, |
| |
| {"web-authentication-ambient-signin", |
| flag_descriptions::kWebAuthnAmbientSigninName, |
| flag_descriptions::kWebAuthnAmbientSigninDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(device::kWebAuthnAmbientSignin)}, |
| |
| {"devtools-protocol-monitor", |
| flag_descriptions::kDevToolsProtocolMonitorName, |
| flag_descriptions::kDevToolsProtocolMonitorDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsProtocolMonitor)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"use-surface-view-for-thin-webview", |
| flag_descriptions::kUseSurfaceViewForThinWebViewName, |
| flag_descriptions::kUseSurfaceViewForThinWebViewDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(thin_webview::android::kUseSurfaceViewForThinWebView)}, |
| #endif |
| |
| {"bundled-security-settings-secure-dns-v2", |
| flag_descriptions::kBundledSecuritySettingsSecureDnsV2Name, |
| flag_descriptions::kBundledSecuritySettingsSecureDnsV2Description, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(safe_browsing::kBundledSecuritySettingsSecureDnsV2)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"credential-management-unified-ui", |
| flag_descriptions::kCredentialManagementUnifiedUiName, |
| flag_descriptions::kCredentialManagementUnifiedUiDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| password_manager::features::kCredentialManagementUnifiedUi)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) |
| {"search-engine-explicit-choice-dialog", |
| flag_descriptions::kSearchEngineExplicitChoiceDialogName, |
| flag_descriptions::kSearchEngineExplicitChoiceDialogDescription, |
| kOsWin | kOsMac, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| extensions_features::kSearchEngineExplicitChoiceDialog, |
| kSearchEngineExplicitChoiceDialogVariations, |
| "SearchEngineExplicitChoiceDialogVariations")}, |
| |
| {"search-engine-unconditional-dialog", |
| flag_descriptions::kSearchEngineUnconditionalDialogName, |
| flag_descriptions::kSearchEngineUnconditionalDialogDescription, |
| kOsWin | kOsMac, |
| FEATURE_VALUE_TYPE(extensions_features::kSearchEngineUnconditionalDialog)}, |
| #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) |
| |
| {"enable-webmcp-testing", flag_descriptions::kWebMCPName, |
| flag_descriptions::kWebMCPDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kWebMCP)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"persist-across-reboots-debug-logs", |
| flag_descriptions::kPersistAcrossRebootsDebugLogsName, |
| flag_descriptions::kPersistAcrossRebootsDebugLogsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kPersistAcrossRebootsDebugLogs)}, |
| |
| {"browser-controls-scroll-snap-animation", |
| flag_descriptions::kBrowserControlsScrollSnapAnimationDialogName, |
| flag_descriptions::kBrowserControlsScrollSnapAnimationDialogDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kBrowserControlsScrollSnapAnimation)}, |
| |
| {"edge-to-edge-extra-logs", flag_descriptions::kEdgeToEdgeExtraLogsName, |
| flag_descriptions::kEdgeToEdgeExtraLogsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kEdgeToEdgeExtraLogs)}, |
| |
| {"web-app-short-edges-cutout-mode", |
| flag_descriptions::kWebAppShortEdgesCutoutModeName, |
| flag_descriptions::kWebAppShortEdgesCutoutModeDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kWebAppShortEdgesCutoutMode)}, |
| |
| {"compositor-view-remeasure-fix", |
| flag_descriptions::kCompositorViewRemeasureFixName, |
| flag_descriptions::kCompositorViewRemeasureFixDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCompositorViewRemeasureFix)}, |
| |
| {"debug-toolbar-positioning", |
| flag_descriptions::kDebugToolbarPositioningName, |
| flag_descriptions::kDebugToolbarPositioningDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDebugToolbarPositioning)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"autofill-enable-new-amex-network-art", |
| flag_descriptions::kAutofillEnableNewAmexNetworkArtName, |
| flag_descriptions::kAutofillEnableNewAmexNetworkArtDescription, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableNewAmexNetworkArt)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"chrome-finds-internals", flag_descriptions::kChromeFindsInternalsName, |
| flag_descriptions::kChromeFindsInternalsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(finds::features::kChromeFindsInternals)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"devtools-aria-live-recording", |
| flag_descriptions::kDevToolsAriaLiveRecordingName, |
| flag_descriptions::kDevToolsAriaLiveRecordingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kDevToolsAriaLiveRecording)}, |
| |
| {"devtools-enable-durable-messages", |
| flag_descriptions::kDevToolsEnableDurableMessagesName, |
| flag_descriptions::kDevToolsEnableDurableMessagesDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsEnableDurableMessages)}, |
| |
| {"devtools-mobile-safe-area-emulation", |
| flag_descriptions::kDevToolsMobileSafeAreaEmulationName, |
| flag_descriptions::kDevToolsMobileSafeAreaEmulationDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsMobileSafeAreaEmulation)}, |
| |
| {"unthrottle-async-touch-moves", |
| flag_descriptions::kUnthrottleAsyncTouchMovesName, |
| flag_descriptions::kUnthrottleAsyncTouchMovesDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kUnthrottleAsyncTouchMoves, |
| kUnthrottleAsyncTouchMovesVariations, |
| "UnthrottleAsyncTouchMoves")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"ntp-mvc-refactor", flag_descriptions::kNtpMvcRefactorName, |
| flag_descriptions::kNtpMvcRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kNtpMvcRefactor)}, |
| |
| {"fullscreen-video-picture-in-picture", |
| flag_descriptions::kFullscreenVideoPictureInPictureName, |
| flag_descriptions::kFullscreenVideoPictureInPictureDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(media::kFullscreenVideoPictureInPicture)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"new-tab-page-customization-theme-sync", |
| flag_descriptions::kNewTabPageCustomizationThemeSyncName, |
| flag_descriptions::kNewTabPageCustomizationThemeSyncDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(syncer::kNewTabPageCustomizationThemeSync)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"your-saved-info-settings-page-android", |
| flag_descriptions::kYourSavedInfoSettingsPageAndroidName, |
| flag_descriptions::kYourSavedInfoSettingsPageAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kYourSavedInfoSettingsPageAndroid)}, |
| #endif |
| |
| {"mobile-ntp-promo-on-desktop", |
| flag_descriptions::kMobileNTPPromoOnDesktopName, |
| flag_descriptions::kMobileNTPPromoOnDesktopDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kMobileNTPPromoOnDesktop, |
| kMobileNTPPromoOnDesktopVariations, |
| "MobileNTPPromoOnDesktop")}, |
| #if BUILDFLAG(IS_ANDROID) |
| {"autofill-touch-to-fill-show-manual-fill-for-vcn-fix", |
| flag_descriptions::kAutofillTouchToFillShowManualFillForVcnFixName, |
| flag_descriptions::kAutofillTouchToFillShowManualFillForVcnFixDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillTouchToFillShowManualFillForVcnFix)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch1", flag_descriptions::kApb144Patch1Name, |
| flag_descriptions::kApb144Patch1Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch1)}, |
| #endif |
| |
| #if BUILDFLAG(ENABLE_DICE_SUPPORT) |
| {"signin-promo-on-avatar-pill", |
| flag_descriptions::kSigninPromoOnAvatarPillName, |
| flag_descriptions::kSigninPromoOnAvatarPillDescription, |
| kOsMac | kOsWin | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kSigninPromoOnAvatarPill, |
| kSigninPromoOnAvatarPillVariation, |
| "SigninPromoOnAvatarPillVariation")}, |
| #endif |
| {"mobile-promo-on-desktop-with-qr-code-wave-1", |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeWave1Name, |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeWave1Description, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| kMobilePromoOnDesktopWithQRCodeWave1, |
| kMobilePromoOnDesktopWithQRCodeVariationsWave1, |
| "MobilePromoOnDesktopWithQRCodeWave1")}, |
| {"mobile-promo-on-desktop-with-reminder-wave-1", |
| flag_descriptions::kMobilePromoOnDesktopWithReminderWave1Name, |
| flag_descriptions::kMobilePromoOnDesktopWithReminderWave1Description, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kMobilePromoOnDesktopWithReminderWave1, |
| kMobilePromoOnDesktopVariationsWave1, |
| "MobilePromoOnDesktopWithReminderWave1")}, |
| {"autofill-enable-omnibox-autofill", |
| flag_descriptions::kAutofillEnableOmniboxAutofillName, |
| flag_descriptions::kAutofillEnableOmniboxAutofillDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableOmniboxAutofill)}, |
| {"enable-global-privacy-control", |
| flag_descriptions::kGlobalPrivacyControlName, |
| flag_descriptions::kGlobalPrivacyControlDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kGlobalPrivacyControlForce)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-bottom-bar", flag_descriptions::kAndroidBottomBarName, |
| flag_descriptions::kAndroidBottomBarDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAndroidBottomBar, |
| kAndroidBottomBarVariations, |
| "AndroidBottomBar")}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"reset-suggestions-scroll", flag_descriptions::kResetSuggestionsScrollName, |
| flag_descriptions::kResetSuggestionsScrollDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kResetSuggestionsScroll)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch2", flag_descriptions::kApb144Patch2Name, |
| flag_descriptions::kApb144Patch2Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch2)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch3", flag_descriptions::kApb144Patch3Name, |
| flag_descriptions::kApb144Patch3Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch3)}, |
| #endif |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"show-frozen-update-notification", |
| flag_descriptions::kShowFrozenUpdateNotificationName, |
| flag_descriptions::kShowFrozenUpdateNotificationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ash::features::kShowFrozenUpdateNotification)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-three-dot-menu-back-button", |
| flag_descriptions::kThreeDotMenuBackButtonName, |
| flag_descriptions::kThreeDotMenuBackButtonDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kThreeDotMenuBackButton)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch4", flag_descriptions::kApb144Patch4Name, |
| flag_descriptions::kApb144Patch4Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch4)}, |
| #endif |
| |
| {"autofill-enable-wallet-branding-v2", |
| flag_descriptions::kAutofillEnableWalletBrandingV2Name, |
| flag_descriptions::kAutofillEnableWalletBrandingV2Description, kOsAll, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableWalletBrandingV2)}, |
| {"webcrypto-pqc", flag_descriptions::kWebCryptoPQCName, |
| flag_descriptions::kWebCryptoPQCDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kWebCryptoPQC)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch6", flag_descriptions::kApb144Patch6Name, |
| flag_descriptions::kApb144Patch6Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch6)}, |
| #endif |
| |
| {"defer-os-clipboard-read-call-to-get-type", |
| flag_descriptions::kDeferOsClipboardReadCallToGetTypeName, |
| flag_descriptions::kDeferOsClipboardReadCallToGetTypeDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| blink::features::kReadClipboardDataOnClipboardItemGetType)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch7", flag_descriptions::kApb144Patch7Name, |
| flag_descriptions::kApb144Patch7Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch7)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-pix-in-cct", flag_descriptions::kEnablePixInCctName, |
| flag_descriptions::kEnablePixInCctDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnablePixInCct)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch8", flag_descriptions::kApb144Patch8Name, |
| flag_descriptions::kApb144Patch8Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch8)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"apb144-patch9", flag_descriptions::kApb144Patch9Name, |
| flag_descriptions::kApb144Patch9Description, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kApb144Patch9)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-gesture-user-education-back-swipe", |
| flag_descriptions::kGestureUserEducationBackSwipeName, |
| flag_descriptions::kGestureUserEducationBackSwipeDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kGestureUserEducationBackSwipe, |
| kGestureUserEducationVariations, |
| "GestureUserEducationBackSwipe")}, |
| #endif |
| |
| {"import-export-flags", flag_descriptions::kImportExportFlagsName, |
| flag_descriptions::kImportExportFlagsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kImportExportFlags)}, |
| |
| {"use-persistent-cache-for-code-cache", |
| flag_descriptions::kUsePersistentCacheForCodeCacheName, |
| flag_descriptions::kUsePersistentCacheForCodeCacheDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kUsePersistentCacheForCodeCache)}, |
| |
| {"inline-script-cache", flag_descriptions::kInlineScriptCacheName, |
| flag_descriptions::kInlineScriptCacheDescription, kOsAll, |
| FEATURE_VALUE_TYPE(blink::features::kInlineScriptCache)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enforce-incognito-isolation", |
| flag_descriptions::kEnforceIncognitoIsolationName, |
| flag_descriptions::kEnforceIncognitoIsolationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kEnforceIncognitoIsolation)}, |
| {"favicon-disable-host-fallback", |
| flag_descriptions::kFaviconDisableHostFallbackName, |
| flag_descriptions::kFaviconDisableHostFallbackDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kFaviconDisableHostFallback)}, |
| #endif |
| |
| {"migrate-enhanced-sb-user-to-enhanced-bundle", |
| flag_descriptions::kMigrateEnhancedSbUserToEnhancedBundleName, |
| flag_descriptions::kMigrateEnhancedSbUserToEnhancedBundleDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(safe_browsing::kMigrateEnhancedSbUserToEnhancedBundle)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-side-panel-logs", |
| flag_descriptions::kEnableAndroidSidePanelLogsName, |
| flag_descriptions::kEnableAndroidSidePanelLogsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kEnableAndroidSidePanelLogs)}, |
| {"side-panel-top-hairline-refactor-android", |
| flag_descriptions::kSidePanelTopHairlineRefactorAndroidName, |
| flag_descriptions::kSidePanelTopHairlineRefactorAndroidDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kSidePanelTopHairlineRefactorAndroid)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"sync-search-engines-android-lff", |
| flag_descriptions::kSyncSearchEnginesAndroidLFFName, |
| flag_descriptions::kSyncSearchEnginesAndroidLFFDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(syncer::kSyncSearchEnginesAndroidLFF)}, |
| #endif |
| |
| {"bookmarks-encryption", flag_descriptions::kBookmarksEncryptionName, |
| flag_descriptions::kBookmarksEncryptionDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(bookmarks::kEncryptBookmarks, |
| kBookmarksEncryptionVariations, |
| "BookmarksEncryption")}, |
| {"session-encryption", flag_descriptions::kSessionEncryptionName, |
| flag_descriptions::kSessionEncryptionDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(sessions::kEncryptSessionStorage, |
| kSessionEncryptionVariations, |
| "SessionEncryption")}, |
| {"autofill-upstream-enforce-strike-delay", |
| flag_descriptions::kAutofillUpstreamEnforceStrikeDelayName, |
| flag_descriptions::kAutofillUpstreamEnforceStrikeDelayDescription, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| autofill::features::kAutofillUpstreamEnforceStrikeDelay, |
| kAutofillUpstreamEnforceStrikeDelayVariations, |
| "AutofillUpstreamEnforceStrikeDelay")}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"exact-match-favicons", flag_descriptions::kExactMatchFaviconsName, |
| flag_descriptions::kExactMatchFaviconsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(omnibox::kExactMatchFavicons)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"profile-disc-on-all-pages", flag_descriptions::kProfileDiscOnAllPagesName, |
| flag_descriptions::kProfileDiscOnAllPagesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kProfileDiscOnAllPages)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"bookmarks-bar-ntp", flag_descriptions::kBookmarksBarNTPName, |
| flag_descriptions::kBookmarksBarNTPDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kBookmarksBarNTP)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"bookmarks-bar-context-menu", |
| flag_descriptions::kBookmarksBarContextMenuName, |
| flag_descriptions::kBookmarksBarContextMenuDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kBookmarksBarContextMenu)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"flyout-in-bookmarks-bar", flag_descriptions::kFlyoutInBookmarksBarName, |
| flag_descriptions::kFlyoutInBookmarksBarDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kFlyoutInBookmarksBar)}, |
| #endif |
| |
| {"user-media-element", flag_descriptions::kUserMediaElementName, |
| flag_descriptions::kUserMediaElementDescription, |
| kOsMac | kOsWin | kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kUserMediaElement)}, |
| {"user-media-element-legacy", |
| flag_descriptions::kUserMediaElementLegacyName, |
| flag_descriptions::kUserMediaElementLegacyDescription, |
| kOsMac | kOsWin | kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kUserMediaElementLegacy)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-readability-select-text", |
| flag_descriptions::kReadAnythingReadabilitySelectTextName, |
| flag_descriptions::kReadAnythingReadabilitySelectTextDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingReadabilitySelectText)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-web-signin-loading-dialog", |
| flag_descriptions::kEnableWebSigninLoadingDialogName, |
| flag_descriptions::kEnableWebSigninLoadingDialogDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kEnableWebSigninLoadingDialog)}, |
| |
| {"force-enable-web-signin-loading-dialog", |
| flag_descriptions::kForceShowWebSigninLoadingDialogName, |
| flag_descriptions::kForceShowWebSigninLoadingDialogDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kForceShowWebSigninLoadingDialog)}, |
| #endif |
| |
| {"energy-effect", flag_descriptions::kEnergyEffectName, |
| flag_descriptions::kEnergyEffectDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kEnergyEffect, |
| kEnergyEffectVariations, |
| "EnergyEffect")}, |
| |
| {"energy-effect-animation", flag_descriptions::kEnergyEffectAnimationName, |
| flag_descriptions::kEnergyEffectAnimationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(ntp_features::kEnergyEffectAnimation)}, |
| |
| {"bundled-security-settings-ask-before-http", |
| flag_descriptions::kBundledSecuritySettingsAskBeforeHttpName, |
| flag_descriptions::kBundledSecuritySettingsAskBeforeHttpDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(safe_browsing::kBundledSecuritySettingsAskBeforeHttp)}, |
| |
| {"autofill-enable-travel-category-and-merchant-benefits-from-curinos", |
| flag_descriptions:: |
| kAutofillEnableTravelCategoryAndMerchantBenefitsFromCurinosName, |
| flag_descriptions:: |
| kAutofillEnableTravelCategoryAndMerchantBenefitsFromCurinosDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillEnableTravelCategoryAndMerchantBenefitsFromCurinos)}, |
| |
| #if BUILDFLAG(ENTERPRISE_PROXY) |
| {"enable-dynamic-route-fetching", |
| enterprise_net::flag_descriptions::kEnableDynamicRouteFetchingName, |
| enterprise_net::flag_descriptions::kEnableDynamicRouteFetchingDescription, |
| kOsAll, FEATURE_VALUE_TYPE(enterprise_net::kEnableDynamicRouteFetching)}, |
| {"enterprise-proxy-error-handling", |
| enterprise_net::flag_descriptions::kEnterpriseProxyErrorHandlingName, |
| enterprise_net::flag_descriptions:: |
| kEnterpriseProxyErrorHandlingDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| enterprise_net::kEnterpriseProxyErrorHandling, |
| kEnterpriseProxyErrorHandlingVariations, |
| "EnterpriseProxyErrorHandling")}, |
| #endif |
| |
| {"payment-request-reject-too-small-windows", |
| flag_descriptions::kPaymentRequestRejectTooSmallWindowsName, |
| flag_descriptions::kPaymentRequestRejectTooSmallWindowsDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| payments::features::kPaymentRequestRejectTooSmallWindows)}, |
| |
| {"in-stock-notification", flag_descriptions::kInStockNotificationName, |
| flag_descriptions::kInStockNotificationDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(commerce::kInStockNotification)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"long-screenshots-lenient-memory-check", |
| flag_descriptions::kLongScreenshotsLenientMemoryCheckName, |
| flag_descriptions::kLongScreenshotsLenientMemoryCheckDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kLongScreenshotsLenientMemoryCheck)}, |
| {"send-tab-to-self-gesture", flag_descriptions::kSendTabToSelfGestureName, |
| flag_descriptions::kSendTabToSelfGestureDescription, kOsAndroid, |
| MULTI_VALUE_TYPE(kSendTabToSelfGestureChoices)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| {"enable-cancel-upload-on-content-analysis", |
| flag_descriptions::kEnableCancelUploadOnContentAnalysisName, |
| flag_descriptions::kEnableCancelUploadOnContentAnalysisDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| enterprise_connectors::kEnableCancelUploadOnContentAnalysis)}, |
| |
| {"child-process-security-policy-rust", |
| flag_descriptions::kChildProcessSecurityPolicyRustName, |
| flag_descriptions::kChildProcessSecurityPolicyRustDescription, kOsAll, |
| MULTI_VALUE_TYPE(kChildProcessSecurityPolicyRustChoices)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"home-button-removal", flag_descriptions::kHomeButtonRemovalName, |
| flag_descriptions::kHomeButtonRemovalDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kHomeButtonRemoval, |
| kHomeButtonRemovalVariations, |
| "HomeButtonRemoval")}, |
| {"autofill-enable-ewallet-new-account-linking", |
| flag_descriptions::kAutofillEnableEwalletNewAccountLinkingName, |
| flag_descriptions::kAutofillEnableEwalletNewAccountLinkingDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| payments::facilitated::kEnableEwalletNewAccountLinking)}, |
| #endif |
| #if BUILDFLAG(IS_MAC) |
| {"suppress-appkit-frame-adjustments-during-move-loop", |
| flag_descriptions::kSuppressAppKitFrameAdjustmentsDuringMoveLoopName, |
| flag_descriptions:: |
| kSuppressAppKitFrameAdjustmentsDuringMoveLoopDescription, |
| kOsMac, |
| FEATURE_VALUE_TYPE(remote_cocoa::features:: |
| kSuppressAppKitFrameAdjustmentsDuringMoveLoop)}, |
| #endif |
| {"suspicious-site-warnings", flag_descriptions::kSuspiciousSiteWarningsName, |
| flag_descriptions::kSuspiciousSiteWarningsDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE(safe_browsing::kSuspiciousSiteWarnings)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"update-padding-for-display-calculation", |
| flag_descriptions::kUpdatePaddingForDisplayCalculationName, |
| flag_descriptions::kUpdatePaddingForDisplayCalculationDescription, |
| kOsAndroid, FEATURE_VALUE_TYPE(ui::kUpdatePaddingForDisplayCalculation)}, |
| {"text-classifier-timeout", flag_descriptions::kTextClassifierTimeoutName, |
| flag_descriptions::kTextClassifierTimeoutDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(::features::kTextClassifierTimeout, |
| kTextClassifierTimeoutVariations, |
| "TextClassifierTimeout")}, |
| {"incognito-as-window-full-screen", |
| flag_descriptions::kIncognitoAsWindowFullScreenName, |
| flag_descriptions::kIncognitoAsWindowFullScreenDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kIncognitoAsWindowFullScreen)}, |
| #endif |
| |
| {"autofill-enable-gradient-google-logos", |
| flag_descriptions::kAutofillEnableGradientGoogleLogosName, |
| flag_descriptions::kAutofillEnableGradientGoogleLogosDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableGradientGoogleLogos)}, |
| |
| {"canvas-accessibility", flag_descriptions::kCanvasAccessibilityName, |
| flag_descriptions::kCanvasAccessibilityDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(::features::kAccessibilityCanvas, |
| kCanvasAccessibilityChoices, |
| "CanvasAccessibility")}, |
| |
| {"collect-accessibility-heuristic-in-canvas-ukm", |
| flag_descriptions::kCollectAccessibilityHeuristicInCanvasUkmName, |
| flag_descriptions::kCollectAccessibilityHeuristicInCanvasUkmDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| ::features::kEnableCollectAccessibilityHeuristicInCanvasUkm)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-open-incognito-as-window-restrictions", |
| flag_descriptions::kAndroidOpenIncognitoAsWindowRestrictionsName, |
| flag_descriptions::kAndroidOpenIncognitoAsWindowRestrictionsDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kAndroidOpenIncognitoAsWindowRestrictions)}, |
| #endif |
| |
| {"centralized-infobar-framework", |
| flag_descriptions::kCentralizedInfoBarFrameworkName, |
| flag_descriptions::kCentralizedInfoBarFrameworkDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(infobars::kCentralizedInfoBarFramework)}, |
| |
| {"autofill-ai-wallet-pass-branding-2026", |
| flag_descriptions::kAutofillAiWalletPassBranding2026Name, |
| flag_descriptions::kAutofillAiWalletPassBranding2026Description, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| autofill::features::kAutofillAiWalletPassBranding2026, |
| kAutofillAiWalletPassBranding2026Variations, |
| "AutofillAiWalletPassBranding2026")}, |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-dlp-file-system-api", |
| flag_descriptions::kEnableDlpFileSystemApiName, |
| flag_descriptions::kEnableDlpFileSystemApiDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(enterprise_connectors::kEnableDlpFileSystemApi)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"enable-isolated-web-app-inline-update", |
| flag_descriptions::kIsolatedWebAppInlineUpdateName, |
| flag_descriptions::kIsolatedWebAppInlineUpdateDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE(ash::features::kIsolatedWebAppInlineUpdate)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-bricks-native-page", |
| flag_descriptions::kAndroidBricksNativePageName, |
| flag_descriptions::kAndroidBricksNativePageDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidBricksNativePage)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-tabstrip-startup-capture-bug-fix", |
| flag_descriptions::kAndroidTabstripStartupCaptureBugFixName, |
| flag_descriptions::kAndroidTabstripStartupCaptureBugFixDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidTabstripStartupCaptureBugFix)}, |
| #endif |
| |
| {"autofill-enable-ai-card-recommendation", |
| flag_descriptions::kAutofillEnableAiCardRecommendationName, |
| flag_descriptions::kAutofillEnableAiCardRecommendationDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableAiCardRecommendation)}, |
| |
| {"infobar-inline-links", flag_descriptions::kInfoBarInlineLinksName, |
| flag_descriptions::kInfoBarInlineLinksDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kInfoBarInlineLinks)}, |
| |
| {"autofill-enable-bnpl-affirm-internationalization", |
| flag_descriptions::kAutofillEnableBnplAffirmInternationalizationName, |
| flag_descriptions:: |
| kAutofillEnableBnplAffirmInternationalizationDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableBnplAffirmInternationalization)}, |
| |
| {"autofill-enable-bnpl-klarna-internationalization", |
| flag_descriptions::kAutofillEnableBnplKlarnaInternationalizationName, |
| flag_descriptions:: |
| kAutofillEnableBnplKlarnaInternationalizationDescription, |
| kOsDesktop | kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableBnplKlarnaInternationalization)}, |
| |
| {"devtools-plus-button", flag_descriptions::kDevToolsPlusButtonName, |
| flag_descriptions::kDevToolsPlusButtonDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsPlusButton)}, |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"split-view-horizontal", flag_descriptions::kSplitViewHorizontalName, |
| flag_descriptions::kSplitViewHorizontalDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(tabs::kSplitViewHorizontal, |
| kSplitViewHorizontalVariations, |
| "SplitViewHorizontal")}, |
| #endif |
| |
| {"prefetch-activation-beacon", |
| flag_descriptions::kPrefetchActivationBeaconName, |
| flag_descriptions::kPrefetchActivationBeaconDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kPrefetchActivationBeacon)}, |
| {"prepopulated-engines-shadow-variants", |
| flag_descriptions::kPrepopulatedEnginesShadowVariantsName, |
| flag_descriptions::kPrepopulatedEnginesShadowVariantsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(switches::kPrepopulatedEnginesShadowVariants)}, |
| {"prerender-activation-beacon", |
| flag_descriptions::kPrerenderActivationBeaconName, |
| flag_descriptions::kPrerenderActivationBeaconDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kPrerenderActivationBeacon)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"read-aloud-native", flag_descriptions::kReadAloudNativeName, |
| flag_descriptions::kReadAloudNativeDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kReadAloudNative)}, |
| #endif |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {kWebUIToolbarFlag, flag_descriptions::kWebUIToolbarName, |
| flag_descriptions::kWebUIToolbarDescription, kOsWin | kOsMac | kOsLinux, |
| ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(switches::kEnableFeatures, |
| kWebUIToolbarEnableFeatures, |
| switches::kDisableFeatures, |
| kWebUIToolbarDisableFeatures)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"allow-multiple-media-notifications", |
| flag_descriptions::kAllowMultipleMediaNotificationsName, |
| flag_descriptions::kAllowMultipleMediaNotificationsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAllowMultipleMediaNotifications)}, |
| #endif |
| |
| {"mobile-promo-on-desktop-with-qr-code-wave-2", |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeWave2Name, |
| flag_descriptions::kMobilePromoOnDesktopWithQRCodeWave2Description, kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| kMobilePromoOnDesktopWithQRCodeWave2, |
| kMobilePromoOnDesktopWithQRCodeVariationsWave2, |
| "MobilePromoOnDesktopWithQRCodeWave2")}, |
| {"mobile-promo-on-desktop-with-reminder-wave-2", |
| flag_descriptions::kMobilePromoOnDesktopWithReminderWave2Name, |
| flag_descriptions::kMobilePromoOnDesktopWithReminderWave2Description, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(kMobilePromoOnDesktopWithReminderWave2, |
| kMobilePromoOnDesktopVariationsWave2, |
| "MobilePromoOnDesktopWithReminderWave2")}, |
| |
| {"autofill-enable-resurrecting-payments-users", |
| flag_descriptions::kAutofillEnableResurrectingPaymentsUsersName, |
| flag_descriptions::kAutofillEnableResurrectingPaymentsUsersDescription, |
| kOsAll, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| autofill::features::kAutofillEnableResurrectingPaymentsUsers, |
| kAutofillEnableResurrectingPaymentsUsersVariations, |
| "AutofillEnableResurrectingPaymentsUsers")}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"antivirus-telemetry-for-downloads", |
| flag_descriptions::kAntivirusTelemetryForDownloadsName, |
| flag_descriptions::kAntivirusTelemetryForDownloadsDescription, kOsWin, |
| FEATURE_VALUE_TYPE(safe_browsing::kAntivirusTelemetryForDownloads)}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| {"enable-http-headers-injection", |
| flag_descriptions::kHttpHeadersInjectionName, |
| flag_descriptions::kHttpHeadersInjectionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(enterprise_custom_headers::kHttpHeadersInjection)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"input-cursor-anchor-info-migration", |
| flag_descriptions::kInputCursorAnchorInfoMigrationName, |
| flag_descriptions::kInputCursorAnchorInfoMigrationDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kInputCursorAnchorInfoMigration)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| {"vids-app-existing-consumer-preinstall", |
| flag_descriptions::kVidsAppExistingConsumerPreinstallName, |
| flag_descriptions::kVidsAppExistingConsumerPreinstallDescription, kOsCrOS, |
| FEATURE_VALUE_TYPE( |
| chromeos::features::kVidsAppExistingConsumerPreinstall)}, |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"long-screenshots-no-memory-check", |
| flag_descriptions::kLongScreenshotsNoMemoryCheckName, |
| flag_descriptions::kLongScreenshotsNoMemoryCheckDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kLongScreenshotsNoMemoryCheck)}, |
| #endif |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) |
| {"device-signals-backfill-disclaimer", |
| flag_descriptions::kDeviceSignalsBackfillDisclaimerName, |
| flag_descriptions::kDeviceSignalsBackfillDisclaimerDescription, |
| kOsWin | kOsMac | kOsLinux, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| policy::features::kDeviceSignalsBackfillDisclaimer, |
| kDeviceSignalsBackfillDisclaimerVariations, |
| "DeviceSignalsBackfillDisclaimer")}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-android-enterprise-screenshot-protection", |
| flag_descriptions::kAndroidEnterpriseScreenshotProtectionName, |
| flag_descriptions::kAndroidEnterpriseScreenshotProtectionDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(enterprise_data_protection:: |
| kEnableAndroidEnterpriseScreenshotProtection)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| #if !BUILDFLAG(IS_ANDROID) |
| {"dictation", flag_descriptions::kDictationName, |
| flag_descriptions::kDictationDescription, kOsDesktop, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(dictation::kDictation, |
| kDictationVariations, |
| "Dictation")}, |
| {"populate-dom-node-id-in-focused-node-details", |
| flag_descriptions::kPopulateDOMNodeIdInFocusedNodeDetailsName, |
| flag_descriptions::kPopulateDOMNodeIdInFocusedNodeDetailsDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| blink::features::kPopulateDOMNodeIdInFocusedNodeDetails)}, |
| #endif // !BUILDFLAG(IS_ANDROID) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"ntp-vision", flag_descriptions::kNtpVisionName, |
| flag_descriptions::kNtpVisionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kNtpVision)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"toolbar-progress-bar-refactor", |
| flag_descriptions::kToolbarProgressBarRefactorName, |
| flag_descriptions::kToolbarProgressBarRefactorDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kToolbarProgressBarRefactor)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"text-highlight-full-link", flag_descriptions::kTextHighlightFullLinkName, |
| flag_descriptions::kTextHighlightFullLinkDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kTextHighlightFullLink)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"cct-tab-resumption", flag_descriptions::kCctTabResumptionName, |
| flag_descriptions::kCctTabResumptionDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kCctTabResumption)}, |
| #endif |
| #if BUILDFLAG(IS_ANDROID) |
| {"ntp-aurora", flag_descriptions::kNtpAuroraName, |
| flag_descriptions::kNtpAuroraDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kNtpAurora, |
| kNtpAuroraVariations, |
| "NtpAurora")}, |
| #endif |
| |
| {"enable-account-preview-data", |
| flag_descriptions::kEnableAccountPreviewDataName, |
| flag_descriptions::kEnableAccountPreviewDataDescription, kOsAll, |
| FEATURE_VALUE_TYPE(switches::kEnableAccountPreviewData)}, |
| |
| {"enable-account-preview-entity-previews", |
| flag_descriptions::kEnableAccountPreviewEntityPreviewsName, |
| flag_descriptions::kEnableAccountPreviewEntityPreviewsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(switches::kEnableAccountPreviewEntityPreviews)}, |
| |
| {"enable-account-preview-preferred-account", |
| flag_descriptions::kEnableAccountPreviewPreferredAccountName, |
| flag_descriptions::kEnableAccountPreviewPreferredAccountDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(switches::kEnableAccountPreviewPreferredAccount)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"enable-account-preview-use-app-account", |
| flag_descriptions::kEnableAccountPreviewUseAppAccountName, |
| flag_descriptions::kEnableAccountPreviewUseAppAccountDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kEnableAccountPreviewUseAppAccount)}, |
| {"universal-keyboard-handling", |
| flag_descriptions::kUniversalKeyboardHandlingName, |
| flag_descriptions::kUniversalKeyboardHandlingDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kUniversalKeyboardHandling)}, |
| #endif |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-improved-ui", |
| flag_descriptions::kReadAnythingImprovedUiName, |
| flag_descriptions::kReadAnythingImprovedUiDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingImprovedUi)}, |
| #endif |
| |
| {"camera-and-microphone-elements", |
| flag_descriptions::kCameraAndMicrophoneElementsName, |
| flag_descriptions::kCameraAndMicrophoneElementsDescription, |
| kOsMac | kOsWin | kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kCameraAndMicrophoneElements)}, |
| {"notebook-home-url", flag_descriptions::kNotebookHomeURLName, |
| flag_descriptions::kNotebookHomeURLDescription, kOsDesktop, |
| STRING_VALUE_TYPE(switches::kNotebookHomeURL, "")}, |
| {"export-platform-policies-json", |
| flag_descriptions::kExportPlatformPoliciesJsonName, |
| flag_descriptions::kExportPlatformPoliciesJsonDescription, |
| kOsWin | kOsMac | kOsLinux, |
| FEATURE_VALUE_TYPE(policy::features::kExportPlatformPoliciesJson)}, |
| {"payment-handler-camera-access", |
| flag_descriptions::kPaymentHandlerCameraAccessName, |
| flag_descriptions::kPaymentHandlerCameraAccessDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(payments::features::kPaymentHandlerCameraAccess)}, |
| {"payment-handler-camera-access-ux", |
| flag_descriptions::kPaymentHandlerCameraAccessUxName, |
| flag_descriptions::kPaymentHandlerCameraAccessUxDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(payments::features::kPaymentHandlerCameraAccessUx)}, |
| {"devtools-instrumentation-breakpoints", |
| flag_descriptions::kDevToolsInstrumentationBreakpointsName, |
| flag_descriptions::kDevToolsInstrumentationBreakpointsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsInstrumentationBreakpoints)}, |
| {"devtools-source-map-scopes-in-sources-panel", |
| flag_descriptions::kDevToolsSourceMapScopesInSourcesPanelName, |
| flag_descriptions::kDevToolsSourceMapScopesInSourcesPanelDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE(features::kDevToolsSourceMapScopesInSourcesPanel)}, |
| |
| #if defined(TOOLKIT_VIEWS) |
| {"native-view-host-manages-layers", |
| flag_descriptions::kNativeViewHostManagesLayersName, |
| flag_descriptions::kNativeViewHostManagesLayersDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(views::features::kNativeViewHostManagesLayers)}, |
| #endif // defined(TOOLKIT_VIEWS) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-fre-layout-update", |
| flag_descriptions::kAndroidFreLayoutUpdateName, |
| flag_descriptions::kAndroidFreLayoutUpdateDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidFreLayoutUpdate)}, |
| {"open-download-in-preferred-app", |
| flag_descriptions::kOpenDownloadInPreferredAppName, |
| flag_descriptions::kOpenDownloadInPreferredAppDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kOpenDownloadInPreferredApp)}, |
| {"queued-compositor-web-contents-updates", |
| flag_descriptions::kQueuedCompositorWebContentsUpdatesName, |
| flag_descriptions::kQueuedCompositorWebContentsUpdatesDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kQueuedCompositorWebContentsUpdates)}, |
| #endif |
| |
| {"enable-ai-subscription-avatar-ring", |
| flag_descriptions::kEnableAiSubscriptionAvatarRingName, |
| flag_descriptions::kEnableAiSubscriptionAvatarRingDescription, |
| kOsMac | kOsWin | kOsLinux | kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kEnableAiSubscriptionAvatarRing)}, |
| |
| {"force-ai-subscription-tier", |
| flag_descriptions::kForceAiSubscriptionTierName, |
| flag_descriptions::kForceAiSubscriptionTierDescription, |
| kOsMac | kOsWin | kOsLinux | kOsAndroid, |
| MULTI_VALUE_TYPE(kForceAiSubscriptionTierChoices)}, |
| |
| {"glic-context-menu-below-search", |
| flag_descriptions::kGlicContextMenuBelowSearchName, |
| flag_descriptions::kGlicContextMenuBelowSearchDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kGlicContextMenuBelowSearch)}, |
| |
| {"omnibox-dui-prerendering", flag_descriptions::kOmniboxDuiPrerenderingName, |
| flag_descriptions::kOmniboxDuiPrerenderingDescription, kOsAll, |
| FEATURE_VALUE_TYPE(features::kOmniboxDuiPrerendering)}, |
| |
| {"autofill-enable-expand-iban-regex-pattern", |
| flag_descriptions::kAutofillEnableExpandIbanRegexPatternName, |
| flag_descriptions::kAutofillEnableExpandIbanRegexPatternDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableExpandIbanRegexPattern)}, |
| |
| {"autofill-ignore-payments-churned-users-strikes-for-testing", |
| flag_descriptions:: |
| kAutofillIgnorePaymentsChurnedUsersStrikesForTestingName, |
| flag_descriptions:: |
| kAutofillIgnorePaymentsChurnedUsersStrikesForTestingDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillIgnorePaymentsChurnedUsersStrikesForTesting)}, |
| |
| #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ |
| BUILDFLAG(IS_CHROMEOS) |
| {"read-anything-distiller-refactor", |
| flag_descriptions::kReadAnythingDistillerRefactorName, |
| flag_descriptions::kReadAnythingDistillerRefactorDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kReadAnythingDistillerRefactor)}, |
| |
| {"read-anything-read-aloud-experimental-playback-ui", |
| flag_descriptions::kReadAnythingReadAloudExperimentalPlaybackUiName, |
| flag_descriptions::kReadAnythingReadAloudExperimentalPlaybackUiDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| features::kReadAnythingReadAloudExperimentalPlaybackUi)}, |
| #endif |
| #if !BUILDFLAG(IS_ANDROID) |
| {"password-change-with-glic", |
| flag_descriptions::kPasswordChangeWithGlicName, |
| flag_descriptions::kPasswordChangeWithGlicDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(password_change::features::kPasswordChangeWithGlic)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"switch-to-incognito-in-settings", |
| flag_descriptions::kSwitchToIncognitoInSettingsName, |
| flag_descriptions::kSwitchToIncognitoInSettingsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kSwitchToIncognitoInSettings)}, |
| |
| {"xplat-synced-setup-themes", |
| flag_descriptions::kXplatSyncedSetupThemesName, |
| flag_descriptions::kXplatSyncedSetupThemesDescription, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kXplatSyncedSetupThemes, |
| kXplatSyncedSetupThemesVariations, |
| "XplatSyncedSetupThemes")}, |
| {"cct-tab-switcher-enabled-for-chrome-experiment", |
| flag_descriptions::kCCTTabSwitcherEnabledForChromeExperimentName, |
| flag_descriptions::kCCTTabSwitcherEnabledForChromeExperimentDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kCCTTabSwitcherEnabledForChromeExperiment)}, |
| {"cct-tab-switcher-enabled-for-embedder-experiment", |
| flag_descriptions::kCCTTabSwitcherEnabledForEmbedderExperimentName, |
| flag_descriptions::kCCTTabSwitcherEnabledForEmbedderExperimentDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| chrome::android::kCCTTabSwitcherEnabledForEmbedderExperiment)}, |
| #endif |
| |
| {"critical-action-history", flag_descriptions::kCriticalActionHistoryName, |
| flag_descriptions::kCriticalActionHistoryDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(critical_actions::features::kCriticalActionHistory)}, |
| |
| {"autofill-enable-wallet-direct-offers", |
| flag_descriptions::kAutofillEnableWalletDirectOffersName, |
| flag_descriptions::kAutofillEnableWalletDirectOffersDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableWalletDirectOffers)}, |
| |
| {"universal-opt-out-settings", |
| flag_descriptions::kUniversalOptOutSettingsName, |
| flag_descriptions::kUniversalOptOutSettingsDescription, kOsAll, |
| FEATURE_VALUE_TYPE(universal_optout::features::kUniversalOptOutSettings)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"disable-grid-tab-switcher", |
| flag_descriptions::kDisableGridTabSwitcherName, |
| flag_descriptions::kDisableGridTabSwitcherDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDisableGridTabSwitcher)}, |
| #endif |
| |
| {"autofill-enable-scan-card-option-when-no-cards-saved", |
| flag_descriptions::kAutofillEnableScanCardOptionWhenNoCardsSavedName, |
| flag_descriptions:: |
| kAutofillEnableScanCardOptionWhenNoCardsSavedDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillEnableScanCardOptionWhenNoCardsSaved)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"one-step-aim-access", flag_descriptions::kOneStepAimAccessName, |
| flag_descriptions::kOneStepAimAccessDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kOneStepAimAccess)}, |
| {"on-demand-background-tab-context-capture-optimization", |
| flag_descriptions::kOnDemandBackgroundTabContextCaptureOptimizationName, |
| flag_descriptions:: |
| kOnDemandBackgroundTabContextCaptureOptimizationDescription, |
| kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| chrome::android::kOnDemandBackgroundTabContextCaptureOptimization, |
| kOnDemandBackgroundTabContextCaptureOptimizationVariations, |
| "OnDemandBackgroundTabContextCaptureOptimization")}, |
| {"web-hid-on-android", flag_descriptions::kWebHidOnAndroidName, |
| flag_descriptions::kWebHidOnAndroidDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kWebHID)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| #if !BUILDFLAG(IS_ANDROID) |
| {"remote-actor-credential-sharing", |
| flag_descriptions::kRemoteActorCredentialSharingName, |
| flag_descriptions::kRemoteActorCredentialSharingDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(features::kRemoteActorCredentialSharing)}, |
| |
| {"autofill-gmail-otp", flag_descriptions::kAutofillGmailOtpName, |
| flag_descriptions::kAutofillGmailOtpDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(autofill::features::kAutofillGmailOtp)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"ntp-aurora-v2", flag_descriptions::kNtpAuroraV2Name, |
| flag_descriptions::kNtpAuroraV2Description, kOsAndroid, |
| FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kNtpAuroraV2, |
| kNtpAuroraV2Variations, |
| "NtpAuroraV2")}, |
| |
| {"signin-button-profile-menu", |
| flag_descriptions::kSigninButtonProfileMenuName, |
| flag_descriptions::kSigninButtonProfileMenuDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(switches::kSigninButtonProfileMenu)}, |
| |
| {"google-pay-via-android-intents", |
| flag_descriptions::kGooglePayViaAndroidIntentsName, |
| flag_descriptions::kGooglePayViaAndroidIntentsDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(payments::android::kGooglePayViaAndroidIntents)}, |
| #endif |
| |
| {"autofill-add-chrome-user-context-fields", |
| flag_descriptions::kAutofillAddChromeUserContextFieldsName, |
| flag_descriptions::kAutofillAddChromeUserContextFieldsDescription, kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features::kAutofillAddChromeUserContextFields)}, |
| |
| {"autofill-enable-card-on-device-verification-enforcement", |
| flag_descriptions::kAutofillEnableCardOnDeviceVerificationEnforcementName, |
| flag_descriptions:: |
| kAutofillEnableCardOnDeviceVerificationEnforcementDescription, |
| kOsAll, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillEnableCardOnDeviceVerificationEnforcement)}, |
| |
| #if BUILDFLAG(IS_WIN) |
| {"secure-payment-confirmation-credential-discovery-mode", |
| flag_descriptions::kSecurePaymentConfirmationCredentialDiscoveryModeName, |
| flag_descriptions:: |
| kSecurePaymentConfirmationCredentialDiscoveryModeDescription, |
| kOsWin, |
| FEATURE_WITH_PARAMS_VALUE_TYPE( |
| payments::features::kSecurePaymentConfirmationCredentialDiscoveryMode, |
| kSPCDiscoveryModeVariations, |
| "SecurePaymentConfirmationCredentialDiscoveryMode")}, |
| #endif // BUILDFLAG(IS_WIN) |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-keyboard-shortcut-open-file", |
| flag_descriptions::kAndroidKeyboardShortcutOpenFileName, |
| flag_descriptions::kAndroidKeyboardShortcutOpenFileDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kAndroidKeyboardShortcutOpenFile)}, |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"auto-resize-minimum-page-scale-factor", |
| flag_descriptions::kAutoResizeMinimumPageScaleFactorName, |
| flag_descriptions::kAutoResizeMinimumPageScaleFactorDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(blink::features::kAutoResizeMinimumPageScaleFactor)}, |
| #endif |
| {"enable-desktop-qr-code-detection", |
| flag_descriptions::kEnableDesktopQrCodeDetectionName, |
| flag_descriptions::kEnableDesktopQrCodeDetectionDescription, kOsDesktop, |
| FEATURE_VALUE_TYPE(payments::facilitated::kEnableDesktopQrCodeDetection)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"android-unknown-gamepad-extra-axes", |
| flag_descriptions::kAndroidUnknownGamepadExtraAxesName, |
| flag_descriptions::kAndroidUnknownGamepadExtraAxesDescription, kOsAndroid, |
| FEATURE_VALUE_TYPE(features::kAndroidUnknownGamepadExtraAxes)}, |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| {"autofill-enable-wallet-direct-offers-notification-bubble", |
| flag_descriptions::kAutofillEnableWalletDirectOffersNotificationBubbleName, |
| flag_descriptions:: |
| kAutofillEnableWalletDirectOffersNotificationBubbleDescription, |
| kOsDesktop, |
| FEATURE_VALUE_TYPE( |
| autofill::features:: |
| kAutofillEnableWalletDirectOffersNotificationBubble)}, |
| |
| #if BUILDFLAG(IS_ANDROID) |
| {"desktop-android-file-picker-for-media", |
| flag_descriptions::kDesktopAndroidFilePickerForMediaName, |
| flag_descriptions::kDesktopAndroidFilePickerForMediaDescription, |
| kOsAndroid, |
| FEATURE_VALUE_TYPE(chrome::android::kDesktopAndroidFilePickerForMedia)}, |
| #endif |
| // Add new entries above this line. |
| // NOTE: Adding a new flag requires adding a corresponding entry to enum |
| // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag |
| // Histograms" in tools/metrics/histograms/README.md (run the |
| // AboutFlagsHistogramTest unit test to verify this process). |
| }; |
| |
| class FlagsStateSingleton : public flags_ui::FlagsState::Delegate { |
| public: |
| FlagsStateSingleton() |
| : flags_state_( |
| std::make_unique<flags_ui::FlagsState>(kFeatureEntries, this)) {} |
| FlagsStateSingleton(const FlagsStateSingleton&) = delete; |
| FlagsStateSingleton& operator=(const FlagsStateSingleton&) = delete; |
| ~FlagsStateSingleton() override = default; |
| |
| static FlagsStateSingleton* GetInstance() { |
| return base::Singleton<FlagsStateSingleton>::get(); |
| } |
| |
| static flags_ui::FlagsState* GetFlagsState() { |
| return GetInstance()->flags_state_.get(); |
| } |
| |
| void RebuildState(const std::vector<flags_ui::FeatureEntry>& entries) { |
| flags_state_ = std::make_unique<flags_ui::FlagsState>(entries, this); |
| } |
| |
| void RestoreDefaultState() { |
| flags_state_ = |
| std::make_unique<flags_ui::FlagsState>(kFeatureEntries, this); |
| } |
| |
| private: |
| // flags_ui::FlagsState::Delegate: |
| bool ShouldExcludeFlag(const flags_ui::FlagsStorage* storage, |
| const FeatureEntry& entry) override { |
| return flags::IsFlagExpired(storage, entry.internal_name); |
| } |
| |
| std::unique_ptr<flags_ui::FlagsState> flags_state_; |
| }; |
| |
| bool ShouldSkipNonDeprecatedFeatureEntry(const FeatureEntry& entry) { |
| return ~entry.supported_platforms & kDeprecated; |
| } |
| |
| } // namespace |
| |
| #if BUILDFLAG(IS_CHROMEOS) |
| // This method may be invoked both synchronously or asynchronously. Based on |
| // whether the current user is the owner of the device, generates the |
| // appropriate flag storage. |
| void GetStorageAsync(Profile* profile, |
| GetStorageCallback callback, |
| bool current_user_is_owner) { |
| // On ChromeOS the owner can set system wide flags and other users can only |
| // set flags for their own session. |
| if (current_user_is_owner) { |
| ash::OwnerSettingsServiceAsh* service = |
| ash::OwnerSettingsServiceAshFactory::GetForBrowserContext(profile); |
| std::move(callback).Run( |
| std::make_unique<ash::about_flags::OwnerFlagsStorage>( |
| profile->GetPrefs(), service), |
| flags_ui::kOwnerAccessToFlags); |
| } else { |
| std::move(callback).Run(std::make_unique<flags_ui::PrefServiceFlagsStorage>( |
| profile->GetPrefs()), |
| flags_ui::kGeneralAccessFlagsOnly); |
| } |
| } |
| #endif |
| |
| // ash-chrome uses different storage flag storage logic from other desktop |
| // platforms. |
| void GetStorage(Profile* profile, GetStorageCallback callback) { |
| #if BUILDFLAG(IS_CHROMEOS) |
| // Bypass possible incognito profile. |
| // On ChromeOS the owner can set system wide flags and other users can only |
| // set flags for their own session. |
| Profile* original_profile = profile->GetOriginalProfile(); |
| if (base::SysInfo::IsRunningOnChromeOS() && |
| ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( |
| original_profile)) { |
| ash::OwnerSettingsServiceAsh* service = |
| ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( |
| original_profile); |
| service->IsOwnerAsync(base::BindOnce(&GetStorageAsync, original_profile, |
| std::move(callback))); |
| } else { |
| GetStorageAsync(original_profile, std::move(callback), |
| /*current_user_is_owner=*/false); |
| } |
| #else |
| std::move(callback).Run(std::make_unique<flags_ui::PrefServiceFlagsStorage>( |
| g_browser_process->local_state()), |
| flags_ui::kOwnerAccessToFlags); |
| #endif |
| } |
| |
| bool ShouldSkipConditionalFeatureEntry(const flags_ui::FlagsStorage* storage, |
| const FeatureEntry& entry) { |
| version_info::Channel channel = chrome::GetChannel(); |
| #if BUILDFLAG(IS_CHROMEOS) |
| // enable-ui-devtools is only available on for non Stable channels. |
| if (std::string_view(ui_devtools::switches::kEnableUiDevTools) == |
| entry.internal_name && |
| channel == version_info::Channel::STABLE) { |
| return true; |
| } |
| |
| // Skip arc-enable-attestation if it is enabled by ash switch. |
| if (std::string_view(kArcEnableAttestationFlag) == entry.internal_name) { |
| return base::CommandLine::ForCurrentProcess()->HasSwitch( |
| ash::switches::kArcEnableAttestation); |
| } |
| |
| if (std::string_view(kArcEnableVirtioBlkForDataInternalName) == |
| entry.internal_name) { |
| return !arc::IsArcVmEnabled(); |
| } |
| |
| // Only show the Background Listening flag if channel is one of |
| // Beta/Dev/Canary/Unknown (non-stable). |
| if (std::string_view(kBackgroundListeningName) == entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| |
| // Only show Borealis flags on enabled devices. |
| if (std::string_view(kBorealisBigGlInternalName) == entry.internal_name || |
| std::string_view(kBorealisDGPUInternalName) == entry.internal_name || |
| std::string_view(kBorealisEnableUnsupportedHardwareInternalName) == |
| entry.internal_name || |
| std::string_view(kBorealisForceBetaClientInternalName) == |
| entry.internal_name || |
| std::string_view(kBorealisForceDoubleScaleInternalName) == |
| entry.internal_name || |
| std::string_view(kBorealisLinuxModeInternalName) == entry.internal_name || |
| std::string_view(kBorealisPermittedInternalName) == entry.internal_name || |
| std::string_view(kBorealisProvisionInternalName) == entry.internal_name || |
| std::string_view(kBorealisScaleClientByDPIInternalName) == |
| entry.internal_name || |
| std::string_view(kBorealisZinkGlDriverInternalName) == |
| entry.internal_name) { |
| return !base::FeatureList::IsEnabled(ash::features::kBorealis); |
| } |
| |
| // Only show wallpaper fast refresh flag if channel is one of |
| // Dev/Canary/Unknown. |
| if (std::string_view(kWallpaperFastRefreshInternalName) == |
| entry.internal_name) { |
| return (channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN); |
| } |
| |
| // Disable and prevent users from enabling LL privacy on boards that were |
| // explicitly built without floss or hardware does not support LL privacy. |
| if (std::string_view(kBluetoothUseLLPrivacyInternalName) == |
| entry.internal_name) { |
| return ( |
| base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine( |
| floss::features::kLLPrivacyIsAvailable.name, |
| base::FeatureList::OVERRIDE_DISABLE_FEATURE)); |
| } |
| |
| // Only show Assistant Launcher search IPH flag if channel is one of |
| // Beta/Dev/Canary/Unknown. |
| if (std::string_view(kAssistantIphInternalName) == entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| |
| // Only show Growth campaigns flag if channel is one of Beta/Dev/Canary/ |
| // Unknown. |
| if (std::string_view(kGrowthCampaigns) == entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| |
| // Only show Growth campaigns test tag flag if channel is one of |
| // Beta/Dev/Canary/ Unknown. |
| if (std::string_view(kGrowthCampaignsTestTag) == entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| #endif // BUILDFLAG(IS_CHROMEOS) |
| #if BUILDFLAG(ENABLE_EXTENSIONS) |
| // Only show extension AI data flag in non-stable channels. |
| if (std::string_view(kExtensionAiDataInternalName) == entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| #endif |
| |
| #if BUILDFLAG(IS_ANDROID) |
| // Only show the payments test flag to disable merchant allowlists if channel |
| // is one of Beta/Dev/Canary/ Unknown. |
| if (std::string_view( |
| kDisableFacilitatedPaymentsMerchantAllowlistInternalName) == |
| entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| // Only show the settings in tab URL nav flag on tablets and desktops. |
| if (std::string_view(kSettingsInTabUrlNavInternalName) == |
| entry.internal_name) { |
| auto form_factor = ui::GetDeviceFormFactor(); |
| return form_factor != ui::DEVICE_FORM_FACTOR_DESKTOP && |
| form_factor != ui::DEVICE_FORM_FACTOR_TABLET; |
| } |
| #endif // BUILDFLAG(IS_ANDROID) |
| if (std::string_view(kEnterpriseIsolatedModeInternalName) == |
| entry.internal_name) { |
| return channel != version_info::Channel::BETA && |
| channel != version_info::Channel::DEV && |
| channel != version_info::Channel::CANARY && |
| channel != version_info::Channel::UNKNOWN; |
| } |
| |
| if (flags::IsFlagExpired(storage, entry.internal_name)) { |
| return true; |
| } |
| |
| return false; |
| } |
| |
| void ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage, |
| base::CommandLine* command_line, |
| flags_ui::SentinelsMode sentinels) { |
| if (command_line->HasSwitch(switches::kNoExperiments)) { |
| return; |
| } |
| |
| FlagsStateSingleton::GetFlagsState()->ConvertFlagsToSwitches( |
| flags_storage, command_line, sentinels, switches::kEnableFeatures, |
| switches::kDisableFeatures); |
| } |
| |
| std::vector<std::string> RegisterAllFeatureVariationParameters( |
| flags_ui::FlagsStorage* flags_storage, |
| base::FeatureList* feature_list) { |
| return FlagsStateSingleton::GetFlagsState() |
| ->RegisterAllFeatureVariationParameters(flags_storage, feature_list); |
| } |
| |
| void GetFlagFeatureEntries(flags_ui::FlagsStorage* flags_storage, |
| flags_ui::FlagAccess access, |
| base::ListValue& supported_entries, |
| base::ListValue& unsupported_entries) { |
| FlagsStateSingleton::GetFlagsState()->GetFlagFeatureEntries( |
| flags_storage, access, supported_entries, unsupported_entries, |
| base::BindRepeating(&ShouldSkipConditionalFeatureEntry, |
| // Unretained: this callback doesn't outlive this |
| // stack frame. |
| base::Unretained(flags_storage))); |
| } |
| |
| void GetFlagFeatureEntriesForDeprecatedPage( |
| flags_ui::FlagsStorage* flags_storage, |
| flags_ui::FlagAccess access, |
| base::ListValue& supported_entries, |
| base::ListValue& unsupported_entries) { |
| FlagsStateSingleton::GetFlagsState()->GetFlagFeatureEntries( |
| flags_storage, access, supported_entries, unsupported_entries, |
| base::BindRepeating(&ShouldSkipNonDeprecatedFeatureEntry)); |
| } |
| |
| flags_ui::FlagsState* GetCurrentFlagsState() { |
| return FlagsStateSingleton::GetFlagsState(); |
| } |
| |
| bool IsRestartNeededToCommitChanges() { |
| return FlagsStateSingleton::GetFlagsState()->IsRestartNeededToCommitChanges(); |
| } |
| |
| void SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage, |
| const std::string& internal_name, |
| bool enable) { |
| FlagsStateSingleton::GetFlagsState()->SetFeatureEntryEnabled( |
| flags_storage, internal_name, enable); |
| } |
| |
| void SetOriginListFlag(const std::string& internal_name, |
| const std::string& value, |
| flags_ui::FlagsStorage* flags_storage) { |
| FlagsStateSingleton::GetFlagsState()->SetOriginListFlag(internal_name, value, |
| flags_storage); |
| } |
| |
| void SetStringFlag(const std::string& internal_name, |
| const std::string& value, |
| flags_ui::FlagsStorage* flags_storage) { |
| FlagsStateSingleton::GetFlagsState()->SetStringFlag(internal_name, value, |
| flags_storage); |
| } |
| |
| void RemoveFlagsSwitches(base::CommandLine::SwitchMap* switch_list) { |
| FlagsStateSingleton::GetFlagsState()->RemoveFlagsSwitches(switch_list); |
| } |
| |
| void ResetAllFlags(flags_ui::FlagsStorage* flags_storage) { |
| FlagsStateSingleton::GetFlagsState()->ResetAllFlags(flags_storage); |
| } |
| |
| void RecordUMAStatistics(flags_ui::FlagsStorage* flags_storage, |
| const std::string& histogram_name) { |
| std::set<std::string> switches; |
| std::set<std::string> features; |
| std::set<std::string> variation_ids; |
| FlagsStateSingleton::GetFlagsState()->GetSwitchesAndFeaturesFromFlags( |
| flags_storage, &switches, &features, &variation_ids); |
| // Don't report variation IDs since we don't have an UMA histogram for them. |
| flags_ui::ReportAboutFlagsHistogram(histogram_name, switches, features); |
| } |
| |
| namespace testing { |
| |
| std::vector<FeatureEntry>* GetEntriesForTesting() { |
| static base::NoDestructor<std::vector<FeatureEntry>> entries; |
| return entries.get(); |
| } |
| |
| void SetFeatureEntries(const std::vector<FeatureEntry>& entries) { |
| auto* entries_for_testing = GetEntriesForTesting(); // IN-TEST |
| CHECK(entries_for_testing->empty()); |
| entries_for_testing->insert(entries_for_testing->end(), entries.begin(), |
| entries.end()); |
| FlagsStateSingleton::GetInstance()->RebuildState(*entries_for_testing); |
| } |
| |
| ScopedFeatureEntries::ScopedFeatureEntries( |
| const std::vector<flags_ui::FeatureEntry>& entries) { |
| SetFeatureEntries(entries); |
| } |
| |
| ScopedFeatureEntries::~ScopedFeatureEntries() { |
| GetEntriesForTesting()->clear(); // IN-TEST |
| // Restore the flag state to the production flags. |
| FlagsStateSingleton::GetInstance()->RestoreDefaultState(); |
| } |
| |
| base::span<const FeatureEntry> GetFeatureEntries() { |
| if (const auto* entries_for_testing = GetEntriesForTesting(); |
| !entries_for_testing->empty()) { |
| return *entries_for_testing; |
| } |
| return kFeatureEntries; |
| } |
| |
| } // namespace testing |
| |
| } // namespace about_flags |