blob: 3d9879bfc926c300c65db80d18654d9102222b1f [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/omnibox/common/omnibox_features.h"
#include "base/feature_list.h"
#include "build/build_config.h"
#include "ui/base/ui_base_features.h"
#if BUILDFLAG(IS_ANDROID)
#include "base/android/feature_map.h"
#include "base/no_destructor.h"
#include "components/omnibox/common/jni_headers/OmniboxFeatureMap_jni.h"
#endif
namespace omnibox {
constexpr auto enabled_by_default_desktop_only =
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
base::FEATURE_DISABLED_BY_DEFAULT;
#else
base::FEATURE_ENABLED_BY_DEFAULT;
#endif
constexpr auto enabled_by_default_android_only =
#if BUILDFLAG(IS_ANDROID)
base::FEATURE_ENABLED_BY_DEFAULT;
#else
base::FEATURE_DISABLED_BY_DEFAULT;
#endif
constexpr auto enabled_by_default_desktop_android =
#if BUILDFLAG(IS_IOS)
base::FEATURE_DISABLED_BY_DEFAULT;
#else
base::FEATURE_ENABLED_BY_DEFAULT;
#endif
constexpr auto enabled_by_default_desktop_ios =
#if BUILDFLAG(IS_ANDROID)
base::FEATURE_DISABLED_BY_DEFAULT;
#else
base::FEATURE_ENABLED_BY_DEFAULT;
#endif
// Feature to enable showing thumbnail in front of the Omnibox clipboard image
// search suggestion.
BASE_FEATURE(kImageSearchSuggestionThumbnail,
"ImageSearchSuggestionThumbnail",
enabled_by_default_android_only);
// Feature used to allow users to remove suggestions from clipboard.
BASE_FEATURE(kOmniboxRemoveSuggestionsFromClipboard,
"OmniboxRemoveSuggestionsFromClipboard",
enabled_by_default_android_only);
// When enabled, uses the grouping framework with prefixed suggestions (i.e.
// autocomplete_grouper_sections.h) to limit and group (but not sort) matches.
BASE_FEATURE(kGroupingFrameworkForNonZPS,
"OmniboxGroupingFrameworkForNonZPS",
enabled_by_default_android_only);
// Demotes the relevance scores when comparing suggestions based on the
// suggestion's |AutocompleteMatchType| and the user's |PageClassification|.
// This feature's main job is to contain the DemoteByType parameter.
BASE_FEATURE(kOmniboxDemoteByType,
"OmniboxDemoteByType",
base::FEATURE_DISABLED_BY_DEFAULT);
// When enabled, deduping prefers non-shortcut provider matches, while still
// treating fuzzy provider matches as the least preferred.
BASE_FEATURE(kPreferNonShortcutMatchesWhenDeduping,
"OmniboxPreferNonShortcutMatchesWhenDeduping",
base::FEATURE_ENABLED_BY_DEFAULT);
// Feature used to cap max zero suggestions shown according to the param
// OmniboxMaxZeroSuggestMatches. If omitted,
// OmniboxUIExperimentMaxAutocompleteMatches will be used instead. If present,
// OmniboxMaxZeroSuggestMatches will override
// OmniboxUIExperimentMaxAutocompleteMatches when |from_omnibox_focus| is true.
BASE_FEATURE(kMaxZeroSuggestMatches,
"OmniboxMaxZeroSuggestMatches",
base::FEATURE_DISABLED_BY_DEFAULT);
// Feature used to cap max suggestions shown according to the params
// UIMaxAutocompleteMatches and UIMaxAutocompleteMatchesByProvider.
BASE_FEATURE(kUIExperimentMaxAutocompleteMatches,
"OmniboxUIExperimentMaxAutocompleteMatches",
base::FEATURE_DISABLED_BY_DEFAULT);
// Feature used to cap the number of URL-type matches shown within the
// Omnibox. If enabled, the number of URL-type matches is limited (unless
// there are no more non-URL matches available.) If enabled, there is a
// companion parameter - OmniboxMaxURLMatches - which specifies the maximum
// desired number of URL-type matches.
BASE_FEATURE(kOmniboxMaxURLMatches,
"OmniboxMaxURLMatches",
base::FEATURE_ENABLED_BY_DEFAULT);
// Feature used to cap max suggestions to a dynamic limit based on how many URLs
// would be shown. E.g., show up to 10 suggestions if doing so would display no
// URLs; else show up to 8 suggestions if doing so would include 1 or more URLs.
BASE_FEATURE(kDynamicMaxAutocomplete,
"OmniboxDynamicMaxAutocomplete",
enabled_by_default_desktop_android);
// If enabled, takes the search intent query params into account for triggering
// switch to tab actions on matches.
BASE_FEATURE(kDisambiguateTabMatchingForEntitySuggestions,
"DisambiguateTabMatchingForEntitySuggestions",
base::FEATURE_ENABLED_BY_DEFAULT);
// Used to adjust the relevance for the local history zero-prefix suggestions.
// If enabled, the relevance is determined by this feature's companion
// parameter, OmniboxFieldTrial::kLocalHistoryZeroSuggestRelevanceScore.
BASE_FEATURE(kAdjustLocalHistoryZeroSuggestRelevanceScore,
"AdjustLocalHistoryZeroSuggestRelevanceScore",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables on-clobber (i.e., when the user clears the whole omnibox text)
// zero-prefix suggestions on the Open Web, that are contextual to the current
// URL. Will only work if user is signed-in and syncing, or is otherwise
// eligible to send the current page URL to the suggest server.
BASE_FEATURE(kClobberTriggersContextualWebZeroSuggest,
"OmniboxClobberTriggersContextualWebZeroSuggest",
enabled_by_default_desktop_android);
// Enables on-clobber (i.e., when the user clears the whole omnibox text)
// zero-prefix suggestions on the SRP.
BASE_FEATURE(kClobberTriggersSRPZeroSuggest,
"OmniboxClobberTriggersSRPZeroSuggest",
enabled_by_default_desktop_android);
// Enables local history zero-prefix suggestions in every context in which the
// remote zero-prefix suggestions are enabled.
BASE_FEATURE(kLocalHistoryZeroSuggestBeyondNTP,
"LocalHistoryZeroSuggestBeyondNTP",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, SearchProvider uses `normalized_term` instead of `term` from the
// `keyword_search_terms` table. `normalized_term` is the original search term
// in lower case with extra whitespace characters collapsed. To ensure
// suggestions from SearchProvider continue to get deduped with those from
// ShortcutsProvider, AutocompleteMatch::GURLToStrippedGURL uses the normalized
// term to build the destination URLs so they are identical despite case
// mismatches in the terms.
BASE_FEATURE(kNormalizeSearchSuggestions,
"NormalizeSearchSuggestions",
base::FEATURE_DISABLED_BY_DEFAULT);
// Mainly used to enable sending INTERACTION_CLOBBER focus type for zero-prefix
// requests with an empty input on Web/SRP on Mobile. Enabled by default on
// Desktop because it is also used by Desktop in the cross-platform code in the
// OmniboxEditModel for triggering zero-suggest prefetching on Web/SRP.
BASE_FEATURE(kOmniboxOnClobberFocusTypeOnContent,
"OmniboxOnClobberFocusTypeOnContent",
enabled_by_default_desktop_android);
// If enabled, zero prefix suggestions will be stored using an in-memory caching
// service, instead of using the existing prefs-based cache.
BASE_FEATURE(kZeroSuggestInMemoryCaching,
"ZeroSuggestInMemoryCaching",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables the use of a request debouncer to throttle the number of ZPS prefetch
// requests initiated over a given period of time (to help minimize the
// performance impact of ZPS prefetching on the remote Suggest service).
BASE_FEATURE(kZeroSuggestPrefetchDebouncing,
"ZeroSuggestPrefetchDebouncing",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables prefetching of the zero prefix suggestions for eligible users on NTP.
BASE_FEATURE(kZeroSuggestPrefetching,
"ZeroSuggestPrefetching",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enables prefetching of the zero prefix suggestions for eligible users on SRP.
BASE_FEATURE(kZeroSuggestPrefetchingOnSRP,
"ZeroSuggestPrefetchingOnSRP",
enabled_by_default_desktop_ios);
// Enables prefetching of the zero prefix suggestions for eligible users on the
// Web (i.e. non-NTP and non-SRP URLs).
BASE_FEATURE(kZeroSuggestPrefetchingOnWeb,
"ZeroSuggestPrefetchingOnWeb",
base::FEATURE_DISABLED_BY_DEFAULT);
// Features to provide head and tail non personalized search suggestion from
// compact on device models. More specifically, feature name with suffix
// Incognito / NonIncognito will only controls behaviors under incognito /
// non-incognito mode respectively.
BASE_FEATURE(kOnDeviceHeadProviderIncognito,
"OmniboxOnDeviceHeadProviderIncognito",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kOnDeviceHeadProviderNonIncognito,
"OmniboxOnDeviceHeadProviderNonIncognito",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kOnDeviceHeadProviderKorean,
"OmniboxOnDeviceHeadProviderKorean",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kOnDeviceTailModel,
"OmniboxOnDeviceTailModel",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, the relevant AutocompleteProviders will store "title" data in
// AutocompleteMatch::contents and "URL" data in AutocompleteMatch::description
// for URL-based omnibox suggestions (see crbug.com/1202964 for more details).
BASE_FEATURE(kStoreTitleInContentsAndUrlInDescription,
"OmniboxStoreTitleInContentsAndUrlInDescription",
base::FEATURE_DISABLED_BY_DEFAULT);
// Feature used to fetch document suggestions.
BASE_FEATURE(kDocumentProvider,
"OmniboxDocumentProvider",
enabled_by_default_desktop_only);
// If enabled, the 'Show Google Drive Suggestions' setting is removed and Drive
// suggestions are available to all clients who meet the other requirements.
BASE_FEATURE(kDocumentProviderNoSetting,
"OmniboxDocumentProviderNoSetting",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, the requirement to be in an active Sync state is removed and
// Drive suggestions are available to all clients who meet the other
// requirements.
BASE_FEATURE(kDocumentProviderNoSyncRequirement,
"OmniboxDocumentProviderNoSyncRequirement",
base::FEATURE_DISABLED_BY_DEFAULT);
// Feature to determine if the HQP should double as a domain provider by
// suggesting up to the provider limit for each of the user's highly visited
// domains.
BASE_FEATURE(kDomainSuggestions,
"OmniboxDomainSuggestions",
base::FEATURE_DISABLED_BY_DEFAULT);
// Feature to determine if omnibox should use a pref based data collection
// consent helper instead of a history sync based one.
BASE_FEATURE(kPrefBasedDataCollectionConsentHelper,
"PrefBasedDataCollectionConsentHelper",
enabled_by_default_desktop_ios);
// If enabled, clipboard suggestion will not show the clipboard content until
// the user clicks the reveal button.
BASE_FEATURE(kClipboardSuggestionContentHidden,
"ClipboardSuggestionContentHidden",
enabled_by_default_android_only);
// If enabled, uses the Chrome Refresh 2023 design's shape for action chips in
// the omnibox suggestion popup.
BASE_FEATURE(kCr2023ActionChips,
"Cr2023ActionChips",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, uses the Chrome Refresh 2023 design's icons for action chips in
// the omnibox suggestion popup.
BASE_FEATURE(kCr2023ActionChipsIcons,
"Cr2023ActionChipsIcons",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, makes Most Visited Tiles a Horizontal render group.
// Horizontal render group decomposes aggregate suggestions (such as old Most
// Visited Tiles), expecting individual AutocompleteMatch entry for every
// element in the carousel.
BASE_FEATURE(kMostVisitedTilesHorizontalRenderGroup,
"OmniboxMostVisitedTilesHorizontalRenderGroup",
enabled_by_default_android_only);
// If enabled, expands autocompletion to possibly (depending on params) include
// suggestion titles and non-prefixes as opposed to be restricted to URL
// prefixes. Will also adjust the location bar UI and omnibox text selection to
// accommodate the autocompletions.
BASE_FEATURE(kRichAutocompletion,
"OmniboxRichAutocompletion",
enabled_by_default_desktop_ios);
// Feature used to enable Pedals in the NTP Realbox.
BASE_FEATURE(kNtpRealboxPedals,
"NtpRealboxPedals",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, adds a grey square background to search icons, and makes answer
// icon square instead of round.
// TODO(manukh): Partially launched; still experimenting with
// `OmniboxSquareSuggestIconWeather`. Clean up when that param launches and
// reaches stable.
BASE_FEATURE(kSquareSuggestIcons,
"OmniboxSquareIcons",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, forces omnibox suggestion rows to be uniformly sized.
// TODO(manukh): Clean up feature code 9/12 when m117 reaches stable; we're
// launching the rest of CR23 in m117.
BASE_FEATURE(kUniformRowHeight,
"OmniboxUniformRowHeight",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, shows the omnibox suggestions popup in WebUI.
BASE_FEATURE(kWebUIOmniboxPopup,
"WebUIOmniboxPopup",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "expanded state" height is increased from 42 px to 44 px.
BASE_FEATURE(kExpandedStateHeight,
"OmniboxExpandedStateHeight",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, Omnibox "expanded state" corner radius is increased from 8px to
// 16px.
BASE_FEATURE(kExpandedStateShape,
"OmniboxExpandedStateShape",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, Omnibox "expanded state" colors are updated to match CR23
// guidelines.
BASE_FEATURE(kExpandedStateColors,
"OmniboxExpandedStateColors",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "expanded state" icons are updated to match CR23
// guidelines.
BASE_FEATURE(kExpandedStateSuggestIcons,
"OmniboxExpandedStateSuggestIcons",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "expanded state" layout is updated to match CR23
// guidelines.
BASE_FEATURE(kExpandedLayout,
"OmniboxExpandedLayout",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, the shape of the "hover fill" that's rendered for Omnibox
// suggestions is updated to match CR23 guidelines.
BASE_FEATURE(kSuggestionHoverFillShape,
"OmniboxSuggestionHoverFillShape",
base::FEATURE_DISABLED_BY_DEFAULT);
// When enabled, use Assistant for omnibox voice query recognition instead of
// Android's built-in voice recognition service. Only works on Android.
BASE_FEATURE(kOmniboxAssistantVoiceSearch,
"OmniboxAssistantVoiceSearch",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox LHS and RHS icons are updated to match CR23
// guidelines.
BASE_FEATURE(kOmniboxCR23SteadyStateIcons,
"kOmniboxCR23SteadyStateIcons",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "steady state" background color is updated to match CR23
// guidelines.
BASE_FEATURE(kOmniboxSteadyStateBackgroundColor,
"OmniboxSteadyStateBackgroundColor",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "steady state" height is increased from 28 dp to 34 dp to
// match CR23 guidelines.
// TODO(manukh): Clean up feature code 9/12 when m117 reaches stable; we're
// launching the rest of CR23 in m117.
BASE_FEATURE(kOmniboxSteadyStateHeight,
"OmniboxSteadyStateHeight",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, Omnibox "steady state" text style is updated to match CR23
// guidelines.
BASE_FEATURE(kOmniboxSteadyStateTextStyle,
"OmniboxSteadyStateTextStyle",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Omnibox "steady state" text color is updated to match CR23
// guidelines.
BASE_FEATURE(kOmniboxSteadyStateTextColor,
"OmniboxSteadyStateTextColor",
base::FEATURE_DISABLED_BY_DEFAULT);
// Android only flag that controls whether the new security indicator should be
// used, on non-Android platforms this is controlled through the
// ChromeRefresh2023 flag.
BASE_FEATURE(kUpdatedConnectionSecurityIndicators,
"OmniboxUpdatedConnectionSecurityIndicators",
base::FEATURE_ENABLED_BY_DEFAULT);
// Feature used to default typed navigations to use HTTPS instead of HTTP.
// This only applies to navigations that don't have a scheme such as
// "example.com". Presently, typing "example.com" in a clean browsing profile
// loads http://example.com. When this feature is enabled, it should load
// https://example.com instead, with fallback to http://example.com if
// necessary.
BASE_FEATURE(kDefaultTypedNavigationsToHttps,
"OmniboxDefaultTypedNavigationsToHttps",
base::FEATURE_ENABLED_BY_DEFAULT);
// Override the delay to create a spare renderer when the omnibox is focused
// on Android.
BASE_FEATURE(kOverrideAndroidOmniboxSpareRendererDelay,
"OverrideAndroidOmniboxSpareRendererDelay",
base::FEATURE_DISABLED_BY_DEFAULT);
// Parameter name used to look up the delay before falling back to the HTTP URL
// while trying an HTTPS URL. The parameter is treated as a TimeDelta, so the
// unit must be included in the value as well (e.g. 3s for 3 seconds).
// - If the HTTPS load finishes successfully during this time, the timer is
// cleared and no more work is done.
// - Otherwise, a new navigation to the the fallback HTTP URL is started.
const char kDefaultTypedNavigationsToHttpsTimeoutParam[] = "timeout";
// If enabled, logs Omnibox URL scoring signals to OmniboxEventProto for
// training the ML scoring models.
BASE_FEATURE(kLogUrlScoringSignals,
"LogUrlScoringSignals",
base::FEATURE_DISABLED_BY_DEFAULT);
// If true, enables history scoring signal annotator for populating history
// scoring signals associated with Search suggestions. These signals will be
// empty for Search suggestions otherwise.
BASE_FEATURE(kEnableHistoryScoringSignalsAnnotatorForSearches,
"EnableHistoryScoringSignalsAnnotatorForSearches",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, (floating-point) ML model scores are mapped to (integral)
// relevance scores by means of a piecewise function. This allows for the
// integration of URL model scores with search traditional scores.
BASE_FEATURE(kMlUrlPiecewiseMappedSearchBlending,
"MlUrlPiecewiseMappedSearchBlending",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, the ML scoring service will make use of an in-memory ML score
// cache in order to speed up the overall scoring process.
BASE_FEATURE(kMlUrlScoreCaching,
"MlUrlScoreCaching",
enabled_by_default_desktop_only);
// If enabled, runs the ML scoring model to assign new relevance scores to the
// URL suggestions and reranks them.
BASE_FEATURE(kMlUrlScoring, "MlUrlScoring", enabled_by_default_desktop_only);
// If enabled, specifies how URL model scores integrate with search traditional
// scores.
BASE_FEATURE(kMlUrlSearchBlending,
"MlUrlSearchBlending",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, creates Omnibox autocomplete URL scoring model. Prerequisite for
// `kMlUrlScoring` & `kMlUrlSearchBlending`.
BASE_FEATURE(kUrlScoringModel,
"UrlScoringModel",
enabled_by_default_desktop_only);
// Actions in Suggest is a data-driven feature; it's considered enabled when the
// data is available.
// The feature flag below helps us tune feature behaviors.
BASE_FEATURE(kActionsInSuggest,
"OmniboxActionsInSuggest",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kAnimateSuggestionsListAppearance,
"AnimateSuggestionsListAppearance",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kOmniboxAnswerActions,
"OmniboxAnswerActions",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, treats categorical suggestions just like the entity suggestions
// by reusing the `ACMatchType::SEARCH_SUGGEST_ENTITY` and reports the original
// `omnibox::TYPE_CATEGORICAL_QUERY` to the server.
BASE_FEATURE(kCategoricalSuggestions,
"CategoricalSuggestions",
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, merges the suggestion subtypes for the remote suggestions and the
// local verbatim and history suggestion duplicates at the provider level. This
// is needed for omnibox::kCategoricalSuggestions to function correctly but is
// being controlled by a separate feature in case there are unintended side
// effects beyond the categorical suggestions.
BASE_FEATURE(kMergeSubtypes, "MergeSubtypes", base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, sends a signal when a user touches down on a search suggestion to
// |SearchPrefetchService|. |SearchPrefetchService| will then prefetch
// suggestion iff the SearchNavigationPrefetch feature and "touch_down" param
// are enabled.
BASE_FEATURE(kOmniboxTouchDownTriggerForPrefetch,
"OmniboxTouchDownTriggerForPrefetch",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, site search engines featured by policy are shown on @ state in
// the omnibox above starter pack suggestions.
BASE_FEATURE(kShowFeaturedEnterpriseSiteSearch,
"ShowFeaturedEnterpriseSiteSearch",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables an informational IPH message at the bottom of the Omnibox directing
// users to featured Enterprise search engines created by policy.
BASE_FEATURE(kShowFeaturedEnterpriseSiteSearchIPH,
"ShowFeaturedEnterpriseSiteSearchIPH",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, site search engines defined by policy are saved into prefs and
// committed to the keyword database, so that they can be accessed from the
// Omnibox and the Settings page.
// This feature only has any effect if the policy is set by the administrator,
// so it's safe to keep it enabled by default - in case of errors, disabling
// the policy should be enough.
// Keeping the feature as a kill switch in case we identify any major regression
// in the implementation.
BASE_FEATURE(kSiteSearchSettingsPolicy,
"SiteSearchSettingsPolicy",
enabled_by_default_desktop_only);
// Enables additional site search providers for the Site search Starter Pack.
BASE_FEATURE(kStarterPackExpansion,
"StarterPackExpansion",
enabled_by_default_desktop_only);
// Enables an informational IPH message at the bottom of the Omnibox directing
// users to certain starter pack engines.
BASE_FEATURE(kStarterPackIPH,
"StarterPackIPH",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, |SearchProvider| will not function in Zero Suggest.
BASE_FEATURE(kAblateSearchProviderWarmup,
"AblateSearchProviderWarmup",
base::FEATURE_DISABLED_BY_DEFAULT);
// When enabled, removes unrecognized TemplateURL parameters, rather than
// keeping them verbatim. This feature will ensure that the new versions of
// Chrome will properly behave when supplied with Template URLs featuring
// unknown parameters; rather than inlining the verbatim unexpanded placeholder,
// the placeholder will be replaced with an empty string.
BASE_FEATURE(kDropUnrecognizedTemplateUrlParameters,
"DropUnrecognizedTemplateUrlParameters",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, hl= is reported in search requests (applicable to iOS only).
BASE_FEATURE(kReportApplicationLanguageInSearchRequest,
"ReportApplicationLanguageInSearchRequest",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enables storing successful query/match in the shortcut database On Android.
BASE_FEATURE(kOmniboxShortcutsAndroid,
"OmniboxShortcutsAndroid",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enable asynchronous Omnibox/Suggest view inflation.
BASE_FEATURE(kOmniboxAsyncViewInflation,
"OmniboxAsyncViewInflation",
base::FEATURE_DISABLED_BY_DEFAULT);
// Use FusedLocationProvider on Android to fetch device location.
BASE_FEATURE(kUseFusedLocationProvider,
"UseFusedLocationProvider",
base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID)
// Enable the Elegant Text Height attribute on the UrlBar.
// This attribute increases line height by up to 60% to accommodate certain
// scripts (e.g. Burmese).
BASE_FEATURE(kOmniboxElegantTextHeight,
"OmniboxElegantTextHeight",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kOmniboxAblateVisibleNetworks,
"OmniboxAblateVisibleNetworks",
base::FEATURE_DISABLED_BY_DEFAULT);
namespace android {
static jlong JNI_OmniboxFeatureMap_GetNativeMap(JNIEnv* env) {
static base::NoDestructor<base::android::FeatureMap> kFeatureMap(
std::vector<const base::Feature*>{{
&kOmniboxAnswerActions,
&kAnimateSuggestionsListAppearance,
&kOmniboxTouchDownTriggerForPrefetch,
&kOmniboxAsyncViewInflation,
&kRichAutocompletion,
&kUseFusedLocationProvider,
&kOmniboxElegantTextHeight,
&kOmniboxAblateVisibleNetworks,
}});
return reinterpret_cast<jlong>(kFeatureMap.get());
}
} // namespace android
#endif // BUILDFLAG(IS_ANDROID)
} // namespace omnibox