blob: 23bff334774bc002597b5605ba893fc4f078bfa2 [file] [log] [blame]
Tomasz Wiszkowskid938a1112019-03-06 18:01:571// Copyright 2019 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "components/omnibox/common/omnibox_features.h"
6
manukc32a8eff2019-07-02 15:48:307#include "build/build_config.h"
8
Tomasz Wiszkowskid938a1112019-03-06 18:01:579namespace omnibox {
10
manuk06717f92020-05-29 15:38:4711const auto enabled_by_default_desktop_only =
12#if defined(OS_ANDROID) || defined(OS_IOS)
Filip Gorski87f1594002020-08-18 21:07:5513 base::FEATURE_DISABLED_BY_DEFAULT;
manuk06717f92020-05-29 15:38:4714#else
Filip Gorski87f1594002020-08-18 21:07:5515 base::FEATURE_ENABLED_BY_DEFAULT;
manuk06717f92020-05-29 15:38:4716#endif
Filip Gorski87f1594002020-08-18 21:07:5517
18const auto enabled_by_default_android_only =
19#if defined(OS_ANDROID)
20 base::FEATURE_ENABLED_BY_DEFAULT;
21#else
22 base::FEATURE_DISABLED_BY_DEFAULT;
23#endif
24
25const auto enabled_by_default_ios_only =
26#if defined(OS_IOS)
27 base::FEATURE_ENABLED_BY_DEFAULT;
28#else
29 base::FEATURE_DISABLED_BY_DEFAULT;
30#endif
31
32const auto enabled_by_default_desktop_android =
33#if defined(OS_IOS)
34 base::FEATURE_DISABLED_BY_DEFAULT;
35#else
36 base::FEATURE_ENABLED_BY_DEFAULT;
37#endif
38
39const auto enabled_by_default_desktop_ios =
40#if defined(OS_ANDROID)
41 base::FEATURE_DISABLED_BY_DEFAULT;
42#else
43 base::FEATURE_ENABLED_BY_DEFAULT;
44#endif
manuk06717f92020-05-29 15:38:4745
Justin Donnellyca2d5b22020-09-03 19:37:5046const auto enabled_by_default_android_ios =
47#if defined(OS_ANDROID) || defined(OS_IOS)
48 base::FEATURE_ENABLED_BY_DEFAULT;
49#else
50 base::FEATURE_DISABLED_BY_DEFAULT;
51#endif
52
Tomasz Wiszkowski8a0e0dc42020-02-19 00:06:3753// Allows Omnibox to dynamically adjust number of offered suggestions to fill in
54// the space between Omnibox an the soft keyboard. The number of suggestions
55// shown will be no less than minimum for the platform (eg. 5 for Android).
56const base::Feature kAdaptiveSuggestionsCount{
57 "OmniboxAdaptiveSuggestionsCount", base::FEATURE_DISABLED_BY_DEFAULT};
58
Tomasz Wiszkowskid938a1112019-03-06 18:01:5759// Feature used to hide the scheme from steady state URLs displayed in the
60// toolbar. It is restored during editing.
manuk06717f92020-05-29 15:38:4761const base::Feature kHideFileUrlScheme{
62 "OmniboxUIExperimentHideFileUrlScheme",
63 // Android and iOS don't have the File security chip, and therefore still
64 // need to show the file scheme.
65 enabled_by_default_desktop_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5766
Kevin Bailey7d918b92019-05-02 16:00:1467// Feature used to enable matching short words to bookmarks for suggestions.
68const base::Feature kOmniboxShortBookmarkSuggestions{
69 "OmniboxShortBookmarkSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
70
Tomasz Wiszkowskid938a1112019-03-06 18:01:5771// Feature used to force on the experiment of transmission of tail suggestions
72// from GWS to this client, currently testing for desktop.
Filip Gorski87f1594002020-08-18 21:07:5573const base::Feature kOmniboxTailSuggestions{"OmniboxTailSuggestions",
74 base::FEATURE_DISABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5775
Kevin Bailey37bbf1d2019-08-21 19:23:5576// Feature that enables the tab-switch suggestions corresponding to an open
77// tab, for a button or dedicated suggestion. Enabled by default on Desktop
78// and iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:5779const base::Feature kOmniboxTabSwitchSuggestions{
Filip Gorski87f1594002020-08-18 21:07:5580 "OmniboxTabSwitchSuggestions", enabled_by_default_desktop_ios};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5781
Tomasz Wiszkowskid938a1112019-03-06 18:01:5782// Feature used to enable various experiments on keyword mode, UI and
83// suggestions.
84const base::Feature kExperimentalKeywordMode{"OmniboxExperimentalKeywordMode",
85 base::FEATURE_DISABLED_BY_DEFAULT};
86
Tomasz Wiszkowskid938a1112019-03-06 18:01:5787// Feature to enable clipboard provider to suggest searching for copied images.
88const base::Feature kEnableClipboardProviderImageSuggestions{
Filip Gorski87f1594002020-08-18 21:07:5589 "OmniboxEnableClipboardProviderImageSuggestions",
90 enabled_by_default_ios_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5791
92// Feature to enable the search provider to send a request to the suggest
93// server on focus. This allows the suggest server to warm up, by, for
94// example, loading per-user models into memory. Having a per-user model
95// in memory allows the suggest server to respond more quickly with
96// personalized suggestions as the user types.
97const base::Feature kSearchProviderWarmUpOnFocus{
Filip Gorski87f1594002020-08-18 21:07:5598 "OmniboxWarmUpSearchProviderOnFocus", enabled_by_default_desktop_android};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5799
Tomasz Wiszkowskid938a1112019-03-06 18:01:57100// Feature used to display the title of the current URL match.
101const base::Feature kDisplayTitleForCurrentUrl{
Filip Gorski87f1594002020-08-18 21:07:55102 "OmniboxDisplayTitleForCurrentUrl", enabled_by_default_desktop_android};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57103
Tomasz Wiszkowskid938a1112019-03-06 18:01:57104// Feature used to always swap the title and URL.
105const base::Feature kUIExperimentSwapTitleAndUrl{
Filip Gorski87f1594002020-08-18 21:07:55106 "OmniboxUIExperimentSwapTitleAndUrl", enabled_by_default_desktop_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57107
Tomasz Wiszkowskid938a1112019-03-06 18:01:57108// Feature used to enable speculatively starting a service worker associated
109// with the destination of the default match when the user's input looks like a
110// query.
111const base::Feature kSpeculativeServiceWorkerStartOnQueryInput{
Filip Gorski87f1594002020-08-18 21:07:55112 "OmniboxSpeculativeServiceWorkerStartOnQueryInput",
113 base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57114
115// Feature used to fetch document suggestions.
116const base::Feature kDocumentProvider{"OmniboxDocumentProvider",
117 base::FEATURE_DISABLED_BY_DEFAULT};
118
manuk4542e232019-09-11 19:27:35119// Feature used to autocomplete bookmark, history, and document suggestions when
120// the user input is a prefix of their titles, as opposed to their URLs.
121const base::Feature kAutocompleteTitles{"OmniboxAutocompleteTitles",
122 base::FEATURE_DISABLED_BY_DEFAULT};
123
Patrick Noland2b4968b2019-06-27 14:50:26124// Returns whether IsInstantExtendedAPIEnabled should be ignored when deciding
125// the number of Google-provided search suggestions.
126const base::Feature kOmniboxDisableInstantExtendedLimit{
Justin Donnellyca2d5b22020-09-03 19:37:50127 "OmniboxDisableInstantExtendedLimit", enabled_by_default_android_ios};
Patrick Noland2b4968b2019-06-27 14:50:26128
Brandon Wylief8dd4e82019-07-11 16:39:57129// Show the search engine logo in the omnibox on Android (desktop already does
130// this).
131const base::Feature kOmniboxSearchEngineLogo{"OmniboxSearchEngineLogo",
Brandon Wyliee480f8252020-07-28 19:25:01132 base::FEATURE_ENABLED_BY_DEFAULT};
Brandon Wylief8dd4e82019-07-11 16:39:57133
manukbf3c8ab2019-10-24 16:52:08134// Feature used to allow users to remove suggestions from clipboard.
135const base::Feature kOmniboxRemoveSuggestionsFromClipboard{
Filip Gorski87f1594002020-08-18 21:07:55136 "OmniboxRemoveSuggestionsFromClipboard", enabled_by_default_android_only};
manukbf3c8ab2019-10-24 16:52:08137
manukbf3c8ab2019-10-24 16:52:08138// Feature to debounce drive requests from the document provider.
139const base::Feature kDebounceDocumentProvider{
140 "OmniboxDebounceDocumentProvider", base::FEATURE_DISABLED_BY_DEFAULT};
141
Tommy Li6390ecc2019-09-06 21:08:57142// Preserves the default match against change when providers return results
143// asynchronously. This prevents the default match from changing after the user
144// finishes typing. Without this feature, if the default match is updated right
145// when the user presses Enter, the user may go to a surprising destination.
146const base::Feature kOmniboxPreserveDefaultMatchAgainstAsyncUpdate{
147 "OmniboxPreserveDefaultMatchAgainstAsyncUpdate",
Tommy Li2b9db032020-03-02 22:12:14148 base::FEATURE_ENABLED_BY_DEFAULT};
Tommy Li6390ecc2019-09-06 21:08:57149
manuk7b89f6642019-11-08 19:25:24150// Demotes the relevance scores when comparing suggestions based on the
151// suggestion's |AutocompleteMatchType| and the user's |PageClassification|.
152// This feature's main job is to contain the DemoteByType parameter.
153const base::Feature kOmniboxDemoteByType{"OmniboxDemoteByType",
154 base::FEATURE_DISABLED_BY_DEFAULT};
155
Justin Donnelly477e35e2020-04-02 14:40:00156// A special flag, enabled by default, that can be used to disable all new
157// search features (e.g. zero suggest).
158const base::Feature kNewSearchFeatures{"OmniboxNewSearchFeatures",
159 base::FEATURE_ENABLED_BY_DEFAULT};
160
manukh7a2bc532020-09-08 15:52:25161// Feature used to reduce entity latency by sharing a decoder. Param values will
162// configure other optimizations as well.
163const base::Feature kEntitySuggestionsReduceLatency{
164 "OmniboxEntitySuggestionsReduceLatency", base::FEATURE_DISABLED_BY_DEFAULT};
165
manuk89d73982020-05-12 01:17:34166// Feature used to cap max zero suggestions shown according to the param
167// OmniboxMaxZeroSuggestMatches. If omitted,
168// OmniboxUIExperimentMaxAutocompleteMatches will be used instead. If present,
169// OmniboxMaxZeroSuggestMatches will override
170// OmniboxUIExperimentMaxAutocompleteMatches when |from_omnibox_focus| is true.
171const base::Feature kMaxZeroSuggestMatches{"OmniboxMaxZeroSuggestMatches",
172 base::FEATURE_DISABLED_BY_DEFAULT};
173
manuk89d73982020-05-12 01:17:34174// Feature used to cap max suggestions shown according to the params
175// UIMaxAutocompleteMatches and UIMaxAutocompleteMatchesByProvider.
176const base::Feature kUIExperimentMaxAutocompleteMatches{
177 "OmniboxUIExperimentMaxAutocompleteMatches",
178 base::FEATURE_DISABLED_BY_DEFAULT};
179
Justin Donnelly444aa062020-05-14 23:27:20180// Feature used to cap the number of URL-type matches shown within the
181// Omnibox. If enabled, the number of URL-type matches is limited (unless
182// there are no more non-URL matches available.) If enabled, there is a
183// companion parameter - OmniboxMaxURLMatches - which specifies the maximum
184// desired number of URL-type matches.
185const bool kOmniboxMaxURLMatchesEnabledByDefault =
186#if defined(OS_IOS) || defined(OS_ANDROID)
187 false;
188#else
189 true;
190#endif
191const base::Feature kOmniboxMaxURLMatches{
192 "OmniboxMaxURLMatches", kOmniboxMaxURLMatchesEnabledByDefault
193 ? base::FEATURE_ENABLED_BY_DEFAULT
194 : base::FEATURE_DISABLED_BY_DEFAULT};
195
manuk4e2979d2020-07-08 23:29:28196// Feature used to cap max suggestions to a dynamic limit based on how many URLs
197// would be shown. E.g., show up to 10 suggestions if doing so would display no
198// URLs; else show up to 8 suggestions if doing so would include 1 or more URLs.
199const base::Feature kDynamicMaxAutocomplete{"OmniboxDynamicMaxAutocomplete",
200 base::FEATURE_DISABLED_BY_DEFAULT};
201
manukhd1870412020-09-15 03:42:14202// Feature used to enable bubbling URL suggestions above search suggestions
203// after grouping if 2 conditions are met:
204// 1) There must be a sufficient score gap between the adjacent searches.
205// 2) There must be a sufficient buffer between the URL and search scores.
206const base::Feature kBubbleUrlSuggestions{"OmniboxBubbleUrlSuggestions",
207 base::FEATURE_DISABLED_BY_DEFAULT};
208
Tommy Li354a0e42020-07-30 16:46:14209// If enabled, when the user clears the whole omnibox text (i.e. via Backspace),
Tommy Li19e27ede2020-08-14 22:52:40210// Chrome will request remote ZeroSuggest suggestions for the OTHER page
211// classification (contextual web).
212const base::Feature kClobberTriggersContextualWebZeroSuggest{
213 "OmniboxClobberTriggersContextualWebZeroSuggest",
214 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li354a0e42020-07-30 16:46:14215
Moe Ahmadi72c8e812020-07-10 21:34:23216// Used to adjust the age threshold since the last visit in order to consider a
217// normalized keyword search term as a zero-prefix suggestion. If disabled, the
218// default value of history::kLowQualityMatchAgeLimitInDays is used. If enabled,
219// the age threshold is determined by this feature's companion parameter,
220// OmniboxFieldTrial::kOmniboxLocalZeroSuggestAgeThresholdParam.
221const base::Feature kOmniboxLocalZeroSuggestAgeThreshold{
222 "OmniboxLocalZeroSuggestAgeThreshold", base::FEATURE_DISABLED_BY_DEFAULT};
223
Moe Ahmadi064dbcd2020-08-20 01:53:31224// If enabled, ranks the local zero-prefix suggestions based on frecency
225// (combined frequency and recency).
226const base::Feature kOmniboxLocalZeroSuggestFrecencyRanking{
227 "OmniboxLocalZeroSuggestFrecencyRanking",
228 base::FEATURE_DISABLED_BY_DEFAULT};
229
230// Used to force enable/disable trending zero-prefix suggestions on the NTP
231// (Omnibox and NTP realbox). This feature triggers a server-side behavior only
232// and has no direct impact on the client behavior.
233const base::Feature kOmniboxTrendingZeroPrefixSuggestionsOnNTP{
234 "OmniboxTrendingZeroPrefixSuggestionsOnNTP",
235 base::FEATURE_DISABLED_BY_DEFAULT};
236
Tommy Lib4b3bb5b2020-05-01 02:34:56237// Feature that configures ZeroSuggestProvider using the "ZeroSuggestVariant"
238// per-page-classification parameter.
Tommy Li55784022020-04-28 20:58:18239//
Tommy Lib4b3bb5b2020-05-01 02:34:56240// Generally speaking - do NOT use this for future server-side experiments.
241// Instead, create your a new narrowly scoped base::Feature for each experiment.
242//
243// Because our Field Trial system can only configure this base::Feature in a
244// single study, and does not merge parameters, using this creates conflicts.
Tommy C. Li090105512019-05-16 22:00:56245const base::Feature kOnFocusSuggestions{"OmniboxOnFocusSuggestions",
246 base::FEATURE_ENABLED_BY_DEFAULT};
247
Tommy Li55784022020-04-28 20:58:18248// Enables on-focus suggestions on the Open Web, that are contextual to the
249// current URL. Will only work if user is signed-in and syncing, or is
250// otherwise eligible to send the current page URL to the suggest server.
Tommy Lie0a3a992020-05-29 21:32:05251//
252// There's multiple flags here for multiple backend configurations:
253// - Default (search queries)
254// - On-Content Suggestions
Tommy Li55784022020-04-28 20:58:18255const base::Feature kOnFocusSuggestionsContextualWeb{
256 "OmniboxOnFocusSuggestionsContextualWeb",
257 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Lie0a3a992020-05-29 21:32:05258const base::Feature kOnFocusSuggestionsContextualWebOnContent{
259 "OmniboxOnFocusSuggestionsContextualWebOnContent",
260 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li55784022020-04-28 20:58:18261
Moe Ahmadi31147bc2020-06-02 19:07:56262// Enables Reactive Zero-Prefix Suggestions (rZPS) on the NTP, for the Omnibox
263// and Realbox respectively. Note: enabling this feature merely makes
Tommy Lib4b3bb5b2020-05-01 02:34:56264// ZeroSuggestProvider send the request. There are additional requirements,
Moe Ahmadi31147bc2020-06-02 19:07:56265// like the user being signed-in, and the suggest server having rZPS enabled.
266const base::Feature kReactiveZeroSuggestionsOnNTPOmnibox{
267 "OmniboxReactiveZeroSuggestionsOnNTPOmnibox",
Tommy Lib4b3bb5b2020-05-01 02:34:56268 base::FEATURE_DISABLED_BY_DEFAULT};
Moe Ahmadi31147bc2020-06-02 19:07:56269const base::Feature kReactiveZeroSuggestionsOnNTPRealbox{
270 "OmniboxReactiveZeroSuggestionsOnNTPRealbox",
Tommy Lib4b3bb5b2020-05-01 02:34:56271 base::FEATURE_DISABLED_BY_DEFAULT};
272
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25273// Allow suggestions to be shown to the user on the New Tab Page upon focusing
274// URL bar (the omnibox).
275const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",
Moe Ahmadi55b0f57c2020-08-15 01:20:03276 base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25277
Moe Ahmadi4005ec92019-09-09 16:55:53278// Allow suggestions to be shown to the user on the New Tab Page upon focusing
279// the real search box.
280const base::Feature kZeroSuggestionsOnNTPRealbox{
Moe Ahmadi55b0f57c2020-08-15 01:20:03281 "OmniboxZeroSuggestionsOnNTPRealbox", base::FEATURE_ENABLED_BY_DEFAULT};
Moe Ahmadi4005ec92019-09-09 16:55:53282
Tommy Li1d03b9bf2019-09-23 23:46:34283// Allow on-focus query refinements to be shown on the default SERP.
284const base::Feature kZeroSuggestionsOnSERP{"OmniboxZeroSuggestionsOnSERP",
285 base::FEATURE_ENABLED_BY_DEFAULT};
286
Ce Chenc8d803a2020-04-27 09:31:33287// Features to provide non personalized head search suggestion from a compact
288// on device model. More specifically, feature name with suffix Incognito /
289// NonIncognito will only controls behaviors under incognito / non-incognito
290// mode respectively.
291const base::Feature kOnDeviceHeadProviderIncognito{
292 "OmniboxOnDeviceHeadProviderIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
293const base::Feature kOnDeviceHeadProviderNonIncognito{
Ce Chenc5ff8bcf2020-09-21 02:29:18294 "OmniboxOnDeviceHeadProviderNonIncognito", enabled_by_default_android_ios};
Ce Chenc8d803a2020-04-27 09:31:33295
Justin Donnellyf2703482019-10-24 21:42:15296// If enabled, changes the way Google-provided search suggestions are scored by
297// the backend. Note that this Feature is only used for triggering a server-
298// side experiment config that will send experiment IDs to the backend. It is
299// not referred to in any of the Chromium code.
300const base::Feature kOmniboxExperimentalSuggestScoring{
301 "OmniboxExperimentalSuggestScoring", base::FEATURE_DISABLED_BY_DEFAULT};
302
manukh3bb80c92020-01-22 00:19:46303// If disabled, terms with no wordstart matches disqualify the suggestion unless
304// they occur in the URL host. If enabled, terms with no wordstart matches are
305// allowed but not scored. E.g., both inputs 'java script' and 'java cript' will
306// match a suggestion titled 'javascript' and score equivalently.
manukh5ff0f582020-01-14 03:54:13307const base::Feature kHistoryQuickProviderAllowButDoNotScoreMidwordTerms{
308 "OmniboxHistoryQuickProviderAllowButDoNotScoreMidwordTerms",
manuk8f1b1e1a2020-07-28 22:02:13309 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13310
manukh3bb80c92020-01-22 00:19:46311// If disabled, midword matches are ignored except in the URL host, and input
312// terms with no wordstart matches are scored 0, resulting in an overall score
313// of 0. If enabled, midword matches are allowed and scored when they begin
314// immediately after the previous match ends. E.g. 'java script' will match a
315// suggestion titled 'javascript' but the input 'java cript' won't.
manukh5ff0f582020-01-14 03:54:13316const base::Feature kHistoryQuickProviderAllowMidwordContinuations{
317 "OmniboxHistoryQuickProviderAllowMidwordContinuations",
manuk8f1b1e1a2020-07-28 22:02:13318 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13319
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19320// If enabled, shows slightly more compact suggestions, allowing the
321// kAdaptiveSuggestionsCount feature to fit more suggestions on screen.
322const base::Feature kCompactSuggestions{"OmniboxCompactSuggestions",
323 base::FEATURE_DISABLED_BY_DEFAULT};
324
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19325// If enabled, defers keyboard popup when user highlights the omnibox until
326// the user taps the Omnibox again.
327extern const base::Feature kDeferredKeyboardPopup{
328 "OmniboxDeferredKeyboardPopup", base::FEATURE_DISABLED_BY_DEFAULT};
329
Filip Gorskib116dee2020-08-20 14:12:10330// If enbaled, frequently visited sites are presented in form of a single row
331// with a carousel of tiles, instead of one URL per row.
332extern const base::Feature kMostVisitedTiles{"OmniboxMostVisitedTiles",
333 base::FEATURE_DISABLED_BY_DEFAULT};
334
manuk695f9d4532020-03-18 19:22:08335// If enabled, expands autocompletion to possibly (depending on params) include
336// suggestion titles and non-prefixes as opposed to be restricted to URL
337// prefixes. Will also adjust the location bar UI and omnibox text selection to
338// accommodate the autocompletions.
339const base::Feature kRichAutocompletion{"OmniboxRichAutocompletion",
340 base::FEATURE_DISABLED_BY_DEFAULT};
341
Tomasz Wiszkowski457253d32020-08-18 01:37:26342// Feature that enables Search Ready Omnibox in incognito.
Filip Gorski05279842020-06-12 12:49:02343const base::Feature kOmniboxSearchReadyIncognito{
344 "OmniboxSearchReadyIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
345
Orin Jaworskifc174722020-01-29 00:32:22346// Feature that puts a single row of buttons on suggestions with actionable
347// elements like keywords, tab-switch buttons, and Pedals.
348const base::Feature kOmniboxSuggestionButtonRow{
349 "OmniboxSuggestionButtonRow", base::FEATURE_DISABLED_BY_DEFAULT};
350
Justin Donnelly5726ecf2020-08-14 00:53:52351// Feature used to enable Pedal suggestions.
352const base::Feature kOmniboxPedalSuggestions{"OmniboxPedalSuggestions",
353 base::FEATURE_DISABLED_BY_DEFAULT};
354
355// Feature used to enable the keyword search button.
356const base::Feature kOmniboxKeywordSearchButton{
357 "OmniboxKeywordSearchButton", base::FEATURE_DISABLED_BY_DEFAULT};
358
Filip Gorski927709ea2020-04-30 15:58:37359// Enables using an Android RecyclerView to render the suggestions dropdown
360// instead of a ListView.
361const base::Feature kOmniboxSuggestionsRecyclerView{
Filip Gorskieb6dbc82020-08-18 20:53:12362 "OmniboxSuggestionsRecyclerView", base::FEATURE_ENABLED_BY_DEFAULT};
Filip Gorski927709ea2020-04-30 15:58:37363
Tomasz Wiszkowski5ec4f532020-05-19 21:28:10364// Allows long Omnibox suggestions to wrap around to next line.
365const base::Feature kOmniboxSuggestionsWrapAround{
366 "OmniboxSuggestionsWrapAround", base::FEATURE_DISABLED_BY_DEFAULT};
367
Tommy Li1f1fc4a2020-01-31 21:02:07368// If enabled, uses WebUI to render the omnibox suggestions popup, similar to
369// how the NTP "fakebox" is implemented.
370const base::Feature kWebUIOmniboxPopup{"WebUIOmniboxPopup",
371 base::FEATURE_DISABLED_BY_DEFAULT};
372
Brandon Wylie1299ff82020-01-23 02:13:37373// When enabled, use Assistant for omnibox voice query recognition instead of
374// Android's built-in voice recognition service. Only works on Android.
375const base::Feature kOmniboxAssistantVoiceSearch{
376 "OmniboxAssistantVoiceSearch", base::FEATURE_DISABLED_BY_DEFAULT};
377
Livvie Lin30a9f9d2020-03-17 19:45:19378// When enabled, provides an omnibox context menu option that prevents URL
379// elisions.
380const base::Feature kOmniboxContextMenuShowFullUrls{
Livvie Lin77ff5e92020-08-18 15:45:21381 "OmniboxContextMenuShowFullUrls", base::FEATURE_ENABLED_BY_DEFAULT};
Livvie Lin30a9f9d2020-03-17 19:45:19382
Emily Stark4bca290ac2020-06-29 21:02:30383// Feature used to reveal the path, query and ref from steady state URLs
384// on hover.
385const base::Feature kRevealSteadyStateUrlPathQueryAndRefOnHover{
386 "OmniboxUIExperimentRevealSteadyStateUrlPathQueryAndRefOnHover",
387 base::FEATURE_DISABLED_BY_DEFAULT};
388
389// Feature used to hide the path, query and ref from steady state URLs
390// on interaction with the page.
391const base::Feature kHideSteadyStateUrlPathQueryAndRefOnInteraction{
392 "OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRefOnInteraction",
393 base::FEATURE_DISABLED_BY_DEFAULT};
394
Joe DeBlasio6d5806e12020-08-06 17:27:18395// Feature used to possibly elide not just the path, query, and ref from steady
396// state URLs, but also subdomains beyond the registrable domain, depending on
397// whether the hostname fails lookalike checks. Has no effect unless
Emily Stark4bca290ac2020-06-29 21:02:30398// kRevealSteadyStateUrlPathQueryAndRefOnHover and/or
399// kHideSteadyStateUrlPathQueryAndRefOnInteraction are enabled.
Joe DeBlasio6d5806e12020-08-06 17:27:18400const base::Feature kMaybeElideToRegistrableDomain{
Emily Stark4bca290ac2020-06-29 21:02:30401 "OmniboxUIExperimentElideToRegistrableDomain",
402 base::FEATURE_DISABLED_BY_DEFAULT};
403
Tomasz Wiszkowskid938a1112019-03-06 18:01:57404} // namespace omnibox