blob: 65fb56a638d5674fde706f568670839f247a3b89 [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
Patrick Noland2b4968b2019-06-27 14:50:26119// Returns whether IsInstantExtendedAPIEnabled should be ignored when deciding
120// the number of Google-provided search suggestions.
121const base::Feature kOmniboxDisableInstantExtendedLimit{
Justin Donnellyca2d5b22020-09-03 19:37:50122 "OmniboxDisableInstantExtendedLimit", enabled_by_default_android_ios};
Patrick Noland2b4968b2019-06-27 14:50:26123
Brandon Wylief8dd4e82019-07-11 16:39:57124// Show the search engine logo in the omnibox on Android (desktop already does
125// this).
126const base::Feature kOmniboxSearchEngineLogo{"OmniboxSearchEngineLogo",
Brandon Wyliee480f8252020-07-28 19:25:01127 base::FEATURE_ENABLED_BY_DEFAULT};
Brandon Wylief8dd4e82019-07-11 16:39:57128
manukbf3c8ab2019-10-24 16:52:08129// Feature used to allow users to remove suggestions from clipboard.
130const base::Feature kOmniboxRemoveSuggestionsFromClipboard{
Filip Gorski87f1594002020-08-18 21:07:55131 "OmniboxRemoveSuggestionsFromClipboard", enabled_by_default_android_only};
manukbf3c8ab2019-10-24 16:52:08132
manukbf3c8ab2019-10-24 16:52:08133// Feature to debounce drive requests from the document provider.
134const base::Feature kDebounceDocumentProvider{
135 "OmniboxDebounceDocumentProvider", base::FEATURE_DISABLED_BY_DEFAULT};
136
manuk7b89f6642019-11-08 19:25:24137// Demotes the relevance scores when comparing suggestions based on the
138// suggestion's |AutocompleteMatchType| and the user's |PageClassification|.
139// This feature's main job is to contain the DemoteByType parameter.
140const base::Feature kOmniboxDemoteByType{"OmniboxDemoteByType",
141 base::FEATURE_DISABLED_BY_DEFAULT};
142
Justin Donnelly477e35e2020-04-02 14:40:00143// A special flag, enabled by default, that can be used to disable all new
144// search features (e.g. zero suggest).
145const base::Feature kNewSearchFeatures{"OmniboxNewSearchFeatures",
146 base::FEATURE_ENABLED_BY_DEFAULT};
147
manukh7a2bc532020-09-08 15:52:25148// Feature used to reduce entity latency by sharing a decoder. Param values will
149// configure other optimizations as well.
150const base::Feature kEntitySuggestionsReduceLatency{
151 "OmniboxEntitySuggestionsReduceLatency", base::FEATURE_DISABLED_BY_DEFAULT};
152
manuk89d73982020-05-12 01:17:34153// Feature used to cap max zero suggestions shown according to the param
154// OmniboxMaxZeroSuggestMatches. If omitted,
155// OmniboxUIExperimentMaxAutocompleteMatches will be used instead. If present,
156// OmniboxMaxZeroSuggestMatches will override
157// OmniboxUIExperimentMaxAutocompleteMatches when |from_omnibox_focus| is true.
158const base::Feature kMaxZeroSuggestMatches{"OmniboxMaxZeroSuggestMatches",
159 base::FEATURE_DISABLED_BY_DEFAULT};
160
manuk89d73982020-05-12 01:17:34161// Feature used to cap max suggestions shown according to the params
162// UIMaxAutocompleteMatches and UIMaxAutocompleteMatchesByProvider.
163const base::Feature kUIExperimentMaxAutocompleteMatches{
164 "OmniboxUIExperimentMaxAutocompleteMatches",
165 base::FEATURE_DISABLED_BY_DEFAULT};
166
Justin Donnelly444aa062020-05-14 23:27:20167// Feature used to cap the number of URL-type matches shown within the
168// Omnibox. If enabled, the number of URL-type matches is limited (unless
169// there are no more non-URL matches available.) If enabled, there is a
170// companion parameter - OmniboxMaxURLMatches - which specifies the maximum
171// desired number of URL-type matches.
172const bool kOmniboxMaxURLMatchesEnabledByDefault =
173#if defined(OS_IOS) || defined(OS_ANDROID)
174 false;
175#else
176 true;
177#endif
178const base::Feature kOmniboxMaxURLMatches{
179 "OmniboxMaxURLMatches", kOmniboxMaxURLMatchesEnabledByDefault
180 ? base::FEATURE_ENABLED_BY_DEFAULT
181 : base::FEATURE_DISABLED_BY_DEFAULT};
182
manuk4e2979d2020-07-08 23:29:28183// Feature used to cap max suggestions to a dynamic limit based on how many URLs
184// would be shown. E.g., show up to 10 suggestions if doing so would display no
185// URLs; else show up to 8 suggestions if doing so would include 1 or more URLs.
186const base::Feature kDynamicMaxAutocomplete{"OmniboxDynamicMaxAutocomplete",
187 base::FEATURE_DISABLED_BY_DEFAULT};
188
manukhd1870412020-09-15 03:42:14189// Feature used to enable bubbling URL suggestions above search suggestions
190// after grouping if 2 conditions are met:
191// 1) There must be a sufficient score gap between the adjacent searches.
192// 2) There must be a sufficient buffer between the URL and search scores.
193const base::Feature kBubbleUrlSuggestions{"OmniboxBubbleUrlSuggestions",
194 base::FEATURE_DISABLED_BY_DEFAULT};
195
Tommy Li354a0e42020-07-30 16:46:14196// If enabled, when the user clears the whole omnibox text (i.e. via Backspace),
Tommy Li19e27ede2020-08-14 22:52:40197// Chrome will request remote ZeroSuggest suggestions for the OTHER page
198// classification (contextual web).
199const base::Feature kClobberTriggersContextualWebZeroSuggest{
200 "OmniboxClobberTriggersContextualWebZeroSuggest",
201 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li354a0e42020-07-30 16:46:14202
Moe Ahmadi72c8e812020-07-10 21:34:23203// Used to adjust the age threshold since the last visit in order to consider a
204// normalized keyword search term as a zero-prefix suggestion. If disabled, the
205// default value of history::kLowQualityMatchAgeLimitInDays is used. If enabled,
206// the age threshold is determined by this feature's companion parameter,
207// OmniboxFieldTrial::kOmniboxLocalZeroSuggestAgeThresholdParam.
208const base::Feature kOmniboxLocalZeroSuggestAgeThreshold{
209 "OmniboxLocalZeroSuggestAgeThreshold", base::FEATURE_DISABLED_BY_DEFAULT};
210
Moe Ahmadi54823262020-10-13 03:00:41211// If enabled, enables local zero-prefix suggestions for signed in users.
212// Local zero-prefix suggestions are enabled for signed in users by default. We
213// will be experimenting with DISABLING this behavior.
214const base::Feature kOmniboxLocalZeroSuggestForAuthenticatedUsers{
215 "OmniboxLocalZeroSuggestForAuthenticatedUsers",
216 base::FEATURE_ENABLED_BY_DEFAULT};
217
Moe Ahmadi064dbcd2020-08-20 01:53:31218// If enabled, ranks the local zero-prefix suggestions based on frecency
219// (combined frequency and recency).
220const base::Feature kOmniboxLocalZeroSuggestFrecencyRanking{
221 "OmniboxLocalZeroSuggestFrecencyRanking",
222 base::FEATURE_DISABLED_BY_DEFAULT};
223
224// Used to force enable/disable trending zero-prefix suggestions on the NTP
225// (Omnibox and NTP realbox). This feature triggers a server-side behavior only
226// and has no direct impact on the client behavior.
227const base::Feature kOmniboxTrendingZeroPrefixSuggestionsOnNTP{
228 "OmniboxTrendingZeroPrefixSuggestionsOnNTP",
229 base::FEATURE_DISABLED_BY_DEFAULT};
230
Tommy Lib4b3bb5b2020-05-01 02:34:56231// Feature that configures ZeroSuggestProvider using the "ZeroSuggestVariant"
232// per-page-classification parameter.
Tommy Li55784022020-04-28 20:58:18233//
Tommy Lib4b3bb5b2020-05-01 02:34:56234// Generally speaking - do NOT use this for future server-side experiments.
235// Instead, create your a new narrowly scoped base::Feature for each experiment.
236//
237// Because our Field Trial system can only configure this base::Feature in a
238// single study, and does not merge parameters, using this creates conflicts.
Tommy C. Li090105512019-05-16 22:00:56239const base::Feature kOnFocusSuggestions{"OmniboxOnFocusSuggestions",
240 base::FEATURE_ENABLED_BY_DEFAULT};
241
Tommy Li55784022020-04-28 20:58:18242// Enables on-focus suggestions on the Open Web, that are contextual to the
243// current URL. Will only work if user is signed-in and syncing, or is
244// otherwise eligible to send the current page URL to the suggest server.
Tommy Lie0a3a992020-05-29 21:32:05245//
246// There's multiple flags here for multiple backend configurations:
247// - Default (search queries)
248// - On-Content Suggestions
Tommy Li55784022020-04-28 20:58:18249const base::Feature kOnFocusSuggestionsContextualWeb{
250 "OmniboxOnFocusSuggestionsContextualWeb",
251 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Lie0a3a992020-05-29 21:32:05252const base::Feature kOnFocusSuggestionsContextualWebOnContent{
253 "OmniboxOnFocusSuggestionsContextualWebOnContent",
254 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li55784022020-04-28 20:58:18255
Moe Ahmadi31147bc2020-06-02 19:07:56256// Enables Reactive Zero-Prefix Suggestions (rZPS) on the NTP, for the Omnibox
257// and Realbox respectively. Note: enabling this feature merely makes
Tommy Lib4b3bb5b2020-05-01 02:34:56258// ZeroSuggestProvider send the request. There are additional requirements,
Moe Ahmadi31147bc2020-06-02 19:07:56259// like the user being signed-in, and the suggest server having rZPS enabled.
260const base::Feature kReactiveZeroSuggestionsOnNTPOmnibox{
261 "OmniboxReactiveZeroSuggestionsOnNTPOmnibox",
Tommy Lib4b3bb5b2020-05-01 02:34:56262 base::FEATURE_DISABLED_BY_DEFAULT};
Moe Ahmadi31147bc2020-06-02 19:07:56263const base::Feature kReactiveZeroSuggestionsOnNTPRealbox{
264 "OmniboxReactiveZeroSuggestionsOnNTPRealbox",
Tommy Lib4b3bb5b2020-05-01 02:34:56265 base::FEATURE_DISABLED_BY_DEFAULT};
266
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25267// Allow suggestions to be shown to the user on the New Tab Page upon focusing
268// URL bar (the omnibox).
269const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",
Moe Ahmadi55b0f57c2020-08-15 01:20:03270 base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25271
Moe Ahmadi4005ec92019-09-09 16:55:53272// Allow suggestions to be shown to the user on the New Tab Page upon focusing
273// the real search box.
274const base::Feature kZeroSuggestionsOnNTPRealbox{
Moe Ahmadi55b0f57c2020-08-15 01:20:03275 "OmniboxZeroSuggestionsOnNTPRealbox", base::FEATURE_ENABLED_BY_DEFAULT};
Moe Ahmadi4005ec92019-09-09 16:55:53276
Tommy Li1d03b9bf2019-09-23 23:46:34277// Allow on-focus query refinements to be shown on the default SERP.
278const base::Feature kZeroSuggestionsOnSERP{"OmniboxZeroSuggestionsOnSERP",
279 base::FEATURE_ENABLED_BY_DEFAULT};
280
Ce Chenc8d803a2020-04-27 09:31:33281// Features to provide non personalized head search suggestion from a compact
282// on device model. More specifically, feature name with suffix Incognito /
283// NonIncognito will only controls behaviors under incognito / non-incognito
284// mode respectively.
285const base::Feature kOnDeviceHeadProviderIncognito{
286 "OmniboxOnDeviceHeadProviderIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
287const base::Feature kOnDeviceHeadProviderNonIncognito{
Ce Chenc5ff8bcf2020-09-21 02:29:18288 "OmniboxOnDeviceHeadProviderNonIncognito", enabled_by_default_android_ios};
Ce Chenc8d803a2020-04-27 09:31:33289
Justin Donnellyf2703482019-10-24 21:42:15290// If enabled, changes the way Google-provided search suggestions are scored by
291// the backend. Note that this Feature is only used for triggering a server-
292// side experiment config that will send experiment IDs to the backend. It is
293// not referred to in any of the Chromium code.
294const base::Feature kOmniboxExperimentalSuggestScoring{
295 "OmniboxExperimentalSuggestScoring", base::FEATURE_DISABLED_BY_DEFAULT};
296
manukh3bb80c92020-01-22 00:19:46297// If disabled, terms with no wordstart matches disqualify the suggestion unless
298// they occur in the URL host. If enabled, terms with no wordstart matches are
299// allowed but not scored. E.g., both inputs 'java script' and 'java cript' will
300// match a suggestion titled 'javascript' and score equivalently.
manukh5ff0f582020-01-14 03:54:13301const base::Feature kHistoryQuickProviderAllowButDoNotScoreMidwordTerms{
302 "OmniboxHistoryQuickProviderAllowButDoNotScoreMidwordTerms",
manuk8f1b1e1a2020-07-28 22:02:13303 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13304
manukh3bb80c92020-01-22 00:19:46305// If disabled, midword matches are ignored except in the URL host, and input
306// terms with no wordstart matches are scored 0, resulting in an overall score
307// of 0. If enabled, midword matches are allowed and scored when they begin
308// immediately after the previous match ends. E.g. 'java script' will match a
309// suggestion titled 'javascript' but the input 'java cript' won't.
manukh5ff0f582020-01-14 03:54:13310const base::Feature kHistoryQuickProviderAllowMidwordContinuations{
311 "OmniboxHistoryQuickProviderAllowMidwordContinuations",
manuk8f1b1e1a2020-07-28 22:02:13312 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13313
manukh61e782512020-10-01 17:33:45314// If enabled, inputs may match bookmark paths. These path matches won't
315// contribute to scoring. E.g. 'planets jupiter' can suggest a bookmark titled
316// 'Jupiter' with URL 'en.wikipedia.org/wiki/Jupiter' located in a path
317// containing 'planet.'
318const base::Feature kBookmarkPaths{"OmniboxBookmarkPaths",
319 base::FEATURE_DISABLED_BY_DEFAULT};
320
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19321// If enabled, shows slightly more compact suggestions, allowing the
322// kAdaptiveSuggestionsCount feature to fit more suggestions on screen.
323const base::Feature kCompactSuggestions{"OmniboxCompactSuggestions",
324 base::FEATURE_DISABLED_BY_DEFAULT};
325
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19326// If enabled, defers keyboard popup when user highlights the omnibox until
327// the user taps the Omnibox again.
328extern const base::Feature kDeferredKeyboardPopup{
329 "OmniboxDeferredKeyboardPopup", base::FEATURE_DISABLED_BY_DEFAULT};
330
Filip Gorskib116dee2020-08-20 14:12:10331// If enbaled, frequently visited sites are presented in form of a single row
332// with a carousel of tiles, instead of one URL per row.
333extern const base::Feature kMostVisitedTiles{"OmniboxMostVisitedTiles",
334 base::FEATURE_DISABLED_BY_DEFAULT};
335
manuk695f9d4532020-03-18 19:22:08336// If enabled, expands autocompletion to possibly (depending on params) include
337// suggestion titles and non-prefixes as opposed to be restricted to URL
338// prefixes. Will also adjust the location bar UI and omnibox text selection to
339// accommodate the autocompletions.
340const base::Feature kRichAutocompletion{"OmniboxRichAutocompletion",
341 base::FEATURE_DISABLED_BY_DEFAULT};
342
Tomasz Wiszkowski457253d32020-08-18 01:37:26343// Feature that enables Search Ready Omnibox in incognito.
Filip Gorski05279842020-06-12 12:49:02344const base::Feature kOmniboxSearchReadyIncognito{
345 "OmniboxSearchReadyIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
346
Orin Jaworskifc174722020-01-29 00:32:22347// Feature that puts a single row of buttons on suggestions with actionable
348// elements like keywords, tab-switch buttons, and Pedals.
349const base::Feature kOmniboxSuggestionButtonRow{
350 "OmniboxSuggestionButtonRow", base::FEATURE_DISABLED_BY_DEFAULT};
351
Justin Donnelly5726ecf2020-08-14 00:53:52352// Feature used to enable Pedal suggestions.
353const base::Feature kOmniboxPedalSuggestions{"OmniboxPedalSuggestions",
354 base::FEATURE_DISABLED_BY_DEFAULT};
355
356// Feature used to enable the keyword search button.
357const base::Feature kOmniboxKeywordSearchButton{
358 "OmniboxKeywordSearchButton", base::FEATURE_DISABLED_BY_DEFAULT};
359
Angela Yoeurng81552632020-09-22 23:52:14360// Enables new UI changes indicating focus and hover states.
361const base::Feature kOmniboxRefinedFocusState{
362 "OmniboxRefinedFocusState", base::FEATURE_DISABLED_BY_DEFAULT};
363
Filip Gorski927709ea2020-04-30 15:58:37364// Enables using an Android RecyclerView to render the suggestions dropdown
365// instead of a ListView.
366const base::Feature kOmniboxSuggestionsRecyclerView{
Filip Gorskieb6dbc82020-08-18 20:53:12367 "OmniboxSuggestionsRecyclerView", base::FEATURE_ENABLED_BY_DEFAULT};
Filip Gorski927709ea2020-04-30 15:58:37368
Tomasz Wiszkowski5ec4f532020-05-19 21:28:10369// Allows long Omnibox suggestions to wrap around to next line.
370const base::Feature kOmniboxSuggestionsWrapAround{
371 "OmniboxSuggestionsWrapAround", base::FEATURE_DISABLED_BY_DEFAULT};
372
Tommy Li1f1fc4a2020-01-31 21:02:07373// If enabled, uses WebUI to render the omnibox suggestions popup, similar to
374// how the NTP "fakebox" is implemented.
375const base::Feature kWebUIOmniboxPopup{"WebUIOmniboxPopup",
376 base::FEATURE_DISABLED_BY_DEFAULT};
377
Brandon Wylie1299ff82020-01-23 02:13:37378// When enabled, use Assistant for omnibox voice query recognition instead of
379// Android's built-in voice recognition service. Only works on Android.
380const base::Feature kOmniboxAssistantVoiceSearch{
381 "OmniboxAssistantVoiceSearch", base::FEATURE_DISABLED_BY_DEFAULT};
382
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