blob: ebebedd2c04f96e0a682d3829fa8a3a06fa7653d [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
Tomasz Wiszkowski8a0e0dc42020-02-19 00:06:3746// Allows Omnibox to dynamically adjust number of offered suggestions to fill in
47// the space between Omnibox an the soft keyboard. The number of suggestions
48// shown will be no less than minimum for the platform (eg. 5 for Android).
49const base::Feature kAdaptiveSuggestionsCount{
50 "OmniboxAdaptiveSuggestionsCount", base::FEATURE_DISABLED_BY_DEFAULT};
51
Tomasz Wiszkowskid938a1112019-03-06 18:01:5752// Feature used to hide the scheme from steady state URLs displayed in the
53// toolbar. It is restored during editing.
manuk06717f92020-05-29 15:38:4754const base::Feature kHideFileUrlScheme{
55 "OmniboxUIExperimentHideFileUrlScheme",
56 // Android and iOS don't have the File security chip, and therefore still
57 // need to show the file scheme.
58 enabled_by_default_desktop_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5759
manukaddd3c42019-04-09 21:20:5960// Feature used to enable local entity suggestions. Similar to rich entities but
61// but location specific. E.g., typing 'starbucks near' could display the local
62// entity suggestion 'starbucks near disneyland \n starbucks * Anaheim, CA'.
63const base::Feature kOmniboxLocalEntitySuggestions{
64 "OmniboxLocalEntitySuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
65
Tomasz Wiszkowskid938a1112019-03-06 18:01:5766// Feature used to enable swapping the rows on answers.
67const base::Feature kOmniboxReverseAnswers{"OmniboxReverseAnswers",
68 base::FEATURE_DISABLED_BY_DEFAULT};
69
Kevin Bailey7d918b92019-05-02 16:00:1470// Feature used to enable matching short words to bookmarks for suggestions.
71const base::Feature kOmniboxShortBookmarkSuggestions{
72 "OmniboxShortBookmarkSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
73
Tomasz Wiszkowskid938a1112019-03-06 18:01:5774// Feature used to force on the experiment of transmission of tail suggestions
75// from GWS to this client, currently testing for desktop.
Filip Gorski87f1594002020-08-18 21:07:5576const base::Feature kOmniboxTailSuggestions{"OmniboxTailSuggestions",
77 base::FEATURE_DISABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5778
Kevin Bailey37bbf1d2019-08-21 19:23:5579// Feature that enables the tab-switch suggestions corresponding to an open
80// tab, for a button or dedicated suggestion. Enabled by default on Desktop
81// and iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:5782const base::Feature kOmniboxTabSwitchSuggestions{
Filip Gorski87f1594002020-08-18 21:07:5583 "OmniboxTabSwitchSuggestions", enabled_by_default_desktop_ios};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5784
Tomasz Wiszkowskid938a1112019-03-06 18:01:5785// Feature used to enable various experiments on keyword mode, UI and
86// suggestions.
87const base::Feature kExperimentalKeywordMode{"OmniboxExperimentalKeywordMode",
88 base::FEATURE_DISABLED_BY_DEFAULT};
89
Tomasz Wiszkowskid938a1112019-03-06 18:01:5790// Feature to enable clipboard provider to suggest searching for copied images.
91const base::Feature kEnableClipboardProviderImageSuggestions{
Filip Gorski87f1594002020-08-18 21:07:5592 "OmniboxEnableClipboardProviderImageSuggestions",
93 enabled_by_default_ios_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5794
95// Feature to enable the search provider to send a request to the suggest
96// server on focus. This allows the suggest server to warm up, by, for
97// example, loading per-user models into memory. Having a per-user model
98// in memory allows the suggest server to respond more quickly with
99// personalized suggestions as the user types.
100const base::Feature kSearchProviderWarmUpOnFocus{
Filip Gorski87f1594002020-08-18 21:07:55101 "OmniboxWarmUpSearchProviderOnFocus", enabled_by_default_desktop_android};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57102
Tomasz Wiszkowskid938a1112019-03-06 18:01:57103// Feature used to display the title of the current URL match.
104const base::Feature kDisplayTitleForCurrentUrl{
Filip Gorski87f1594002020-08-18 21:07:55105 "OmniboxDisplayTitleForCurrentUrl", enabled_by_default_desktop_android};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57106
Tomasz Wiszkowskid938a1112019-03-06 18:01:57107// Feature used to always swap the title and URL.
108const base::Feature kUIExperimentSwapTitleAndUrl{
Filip Gorski87f1594002020-08-18 21:07:55109 "OmniboxUIExperimentSwapTitleAndUrl", enabled_by_default_desktop_only};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57110
Tomasz Wiszkowskid938a1112019-03-06 18:01:57111// Feature used to enable speculatively starting a service worker associated
112// with the destination of the default match when the user's input looks like a
113// query.
114const base::Feature kSpeculativeServiceWorkerStartOnQueryInput{
Filip Gorski87f1594002020-08-18 21:07:55115 "OmniboxSpeculativeServiceWorkerStartOnQueryInput",
116 base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57117
118// Feature used to fetch document suggestions.
119const base::Feature kDocumentProvider{"OmniboxDocumentProvider",
120 base::FEATURE_DISABLED_BY_DEFAULT};
121
manuk4542e232019-09-11 19:27:35122// Feature used to autocomplete bookmark, history, and document suggestions when
123// the user input is a prefix of their titles, as opposed to their URLs.
124const base::Feature kAutocompleteTitles{"OmniboxAutocompleteTitles",
125 base::FEATURE_DISABLED_BY_DEFAULT};
126
Patrick Noland2b4968b2019-06-27 14:50:26127// Returns whether IsInstantExtendedAPIEnabled should be ignored when deciding
128// the number of Google-provided search suggestions.
129const base::Feature kOmniboxDisableInstantExtendedLimit{
Filip Gorski87f1594002020-08-18 21:07:55130 "OmniboxDisableInstantExtendedLimit", enabled_by_default_android_only};
Patrick Noland2b4968b2019-06-27 14:50:26131
Brandon Wylief8dd4e82019-07-11 16:39:57132// Show the search engine logo in the omnibox on Android (desktop already does
133// this).
134const base::Feature kOmniboxSearchEngineLogo{"OmniboxSearchEngineLogo",
Brandon Wyliee480f8252020-07-28 19:25:01135 base::FEATURE_ENABLED_BY_DEFAULT};
Brandon Wylief8dd4e82019-07-11 16:39:57136
manukbf3c8ab2019-10-24 16:52:08137// Feature used to allow users to remove suggestions from clipboard.
138const base::Feature kOmniboxRemoveSuggestionsFromClipboard{
Filip Gorski87f1594002020-08-18 21:07:55139 "OmniboxRemoveSuggestionsFromClipboard", enabled_by_default_android_only};
manukbf3c8ab2019-10-24 16:52:08140
manukbf3c8ab2019-10-24 16:52:08141// Feature to debounce drive requests from the document provider.
142const base::Feature kDebounceDocumentProvider{
143 "OmniboxDebounceDocumentProvider", base::FEATURE_DISABLED_BY_DEFAULT};
144
Tommy Li6390ecc2019-09-06 21:08:57145// Preserves the default match against change when providers return results
146// asynchronously. This prevents the default match from changing after the user
147// finishes typing. Without this feature, if the default match is updated right
148// when the user presses Enter, the user may go to a surprising destination.
149const base::Feature kOmniboxPreserveDefaultMatchAgainstAsyncUpdate{
150 "OmniboxPreserveDefaultMatchAgainstAsyncUpdate",
Tommy Li2b9db032020-03-02 22:12:14151 base::FEATURE_ENABLED_BY_DEFAULT};
Tommy Li6390ecc2019-09-06 21:08:57152
manuk7b89f6642019-11-08 19:25:24153// Demotes the relevance scores when comparing suggestions based on the
154// suggestion's |AutocompleteMatchType| and the user's |PageClassification|.
155// This feature's main job is to contain the DemoteByType parameter.
156const base::Feature kOmniboxDemoteByType{"OmniboxDemoteByType",
157 base::FEATURE_DISABLED_BY_DEFAULT};
158
Justin Donnelly477e35e2020-04-02 14:40:00159// A special flag, enabled by default, that can be used to disable all new
160// search features (e.g. zero suggest).
161const base::Feature kNewSearchFeatures{"OmniboxNewSearchFeatures",
162 base::FEATURE_ENABLED_BY_DEFAULT};
163
manuk89d73982020-05-12 01:17:34164// Feature used to cap max zero suggestions shown according to the param
165// OmniboxMaxZeroSuggestMatches. If omitted,
166// OmniboxUIExperimentMaxAutocompleteMatches will be used instead. If present,
167// OmniboxMaxZeroSuggestMatches will override
168// OmniboxUIExperimentMaxAutocompleteMatches when |from_omnibox_focus| is true.
169const base::Feature kMaxZeroSuggestMatches{"OmniboxMaxZeroSuggestMatches",
170 base::FEATURE_DISABLED_BY_DEFAULT};
171
manuk89d73982020-05-12 01:17:34172// Feature used to cap max suggestions shown according to the params
173// UIMaxAutocompleteMatches and UIMaxAutocompleteMatchesByProvider.
174const base::Feature kUIExperimentMaxAutocompleteMatches{
175 "OmniboxUIExperimentMaxAutocompleteMatches",
176 base::FEATURE_DISABLED_BY_DEFAULT};
177
Justin Donnelly444aa062020-05-14 23:27:20178// Feature used to cap the number of URL-type matches shown within the
179// Omnibox. If enabled, the number of URL-type matches is limited (unless
180// there are no more non-URL matches available.) If enabled, there is a
181// companion parameter - OmniboxMaxURLMatches - which specifies the maximum
182// desired number of URL-type matches.
183const bool kOmniboxMaxURLMatchesEnabledByDefault =
184#if defined(OS_IOS) || defined(OS_ANDROID)
185 false;
186#else
187 true;
188#endif
189const base::Feature kOmniboxMaxURLMatches{
190 "OmniboxMaxURLMatches", kOmniboxMaxURLMatchesEnabledByDefault
191 ? base::FEATURE_ENABLED_BY_DEFAULT
192 : base::FEATURE_DISABLED_BY_DEFAULT};
193
manuk4e2979d2020-07-08 23:29:28194// Feature used to cap max suggestions to a dynamic limit based on how many URLs
195// would be shown. E.g., show up to 10 suggestions if doing so would display no
196// URLs; else show up to 8 suggestions if doing so would include 1 or more URLs.
197const base::Feature kDynamicMaxAutocomplete{"OmniboxDynamicMaxAutocomplete",
198 base::FEATURE_DISABLED_BY_DEFAULT};
199
Tommy Li354a0e42020-07-30 16:46:14200// If enabled, when the user clears the whole omnibox text (i.e. via Backspace),
Tommy Li19e27ede2020-08-14 22:52:40201// Chrome will request remote ZeroSuggest suggestions for the OTHER page
202// classification (contextual web).
203const base::Feature kClobberTriggersContextualWebZeroSuggest{
204 "OmniboxClobberTriggersContextualWebZeroSuggest",
205 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li354a0e42020-07-30 16:46:14206
Moe Ahmadi72c8e812020-07-10 21:34:23207// Used to adjust the age threshold since the last visit in order to consider a
208// normalized keyword search term as a zero-prefix suggestion. If disabled, the
209// default value of history::kLowQualityMatchAgeLimitInDays is used. If enabled,
210// the age threshold is determined by this feature's companion parameter,
211// OmniboxFieldTrial::kOmniboxLocalZeroSuggestAgeThresholdParam.
212const base::Feature kOmniboxLocalZeroSuggestAgeThreshold{
213 "OmniboxLocalZeroSuggestAgeThreshold", base::FEATURE_DISABLED_BY_DEFAULT};
214
Moe Ahmadi064dbcd2020-08-20 01:53:31215// If enabled, ranks the local zero-prefix suggestions based on frecency
216// (combined frequency and recency).
217const base::Feature kOmniboxLocalZeroSuggestFrecencyRanking{
218 "OmniboxLocalZeroSuggestFrecencyRanking",
219 base::FEATURE_DISABLED_BY_DEFAULT};
220
221// Used to force enable/disable trending zero-prefix suggestions on the NTP
222// (Omnibox and NTP realbox). This feature triggers a server-side behavior only
223// and has no direct impact on the client behavior.
224const base::Feature kOmniboxTrendingZeroPrefixSuggestionsOnNTP{
225 "OmniboxTrendingZeroPrefixSuggestionsOnNTP",
226 base::FEATURE_DISABLED_BY_DEFAULT};
227
Tommy Lib4b3bb5b2020-05-01 02:34:56228// Feature that configures ZeroSuggestProvider using the "ZeroSuggestVariant"
229// per-page-classification parameter.
Tommy Li55784022020-04-28 20:58:18230//
Tommy Lib4b3bb5b2020-05-01 02:34:56231// Generally speaking - do NOT use this for future server-side experiments.
232// Instead, create your a new narrowly scoped base::Feature for each experiment.
233//
234// Because our Field Trial system can only configure this base::Feature in a
235// single study, and does not merge parameters, using this creates conflicts.
Tommy C. Li090105512019-05-16 22:00:56236const base::Feature kOnFocusSuggestions{"OmniboxOnFocusSuggestions",
237 base::FEATURE_ENABLED_BY_DEFAULT};
238
Tommy Li55784022020-04-28 20:58:18239// Enables on-focus suggestions on the Open Web, that are contextual to the
240// current URL. Will only work if user is signed-in and syncing, or is
241// otherwise eligible to send the current page URL to the suggest server.
Tommy Lie0a3a992020-05-29 21:32:05242//
243// There's multiple flags here for multiple backend configurations:
244// - Default (search queries)
245// - On-Content Suggestions
Tommy Li55784022020-04-28 20:58:18246const base::Feature kOnFocusSuggestionsContextualWeb{
247 "OmniboxOnFocusSuggestionsContextualWeb",
248 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Lie0a3a992020-05-29 21:32:05249const base::Feature kOnFocusSuggestionsContextualWebOnContent{
250 "OmniboxOnFocusSuggestionsContextualWebOnContent",
251 base::FEATURE_DISABLED_BY_DEFAULT};
Tommy Li55784022020-04-28 20:58:18252
Moe Ahmadi31147bc2020-06-02 19:07:56253// Enables Reactive Zero-Prefix Suggestions (rZPS) on the NTP, for the Omnibox
254// and Realbox respectively. Note: enabling this feature merely makes
Tommy Lib4b3bb5b2020-05-01 02:34:56255// ZeroSuggestProvider send the request. There are additional requirements,
Moe Ahmadi31147bc2020-06-02 19:07:56256// like the user being signed-in, and the suggest server having rZPS enabled.
257const base::Feature kReactiveZeroSuggestionsOnNTPOmnibox{
258 "OmniboxReactiveZeroSuggestionsOnNTPOmnibox",
Tommy Lib4b3bb5b2020-05-01 02:34:56259 base::FEATURE_DISABLED_BY_DEFAULT};
Moe Ahmadi31147bc2020-06-02 19:07:56260const base::Feature kReactiveZeroSuggestionsOnNTPRealbox{
261 "OmniboxReactiveZeroSuggestionsOnNTPRealbox",
Tommy Lib4b3bb5b2020-05-01 02:34:56262 base::FEATURE_DISABLED_BY_DEFAULT};
263
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25264// Allow suggestions to be shown to the user on the New Tab Page upon focusing
265// URL bar (the omnibox).
266const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",
Moe Ahmadi55b0f57c2020-08-15 01:20:03267 base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25268
Moe Ahmadi4005ec92019-09-09 16:55:53269// Allow suggestions to be shown to the user on the New Tab Page upon focusing
270// the real search box.
271const base::Feature kZeroSuggestionsOnNTPRealbox{
Moe Ahmadi55b0f57c2020-08-15 01:20:03272 "OmniboxZeroSuggestionsOnNTPRealbox", base::FEATURE_ENABLED_BY_DEFAULT};
Moe Ahmadi4005ec92019-09-09 16:55:53273
Tommy Li1d03b9bf2019-09-23 23:46:34274// Allow on-focus query refinements to be shown on the default SERP.
275const base::Feature kZeroSuggestionsOnSERP{"OmniboxZeroSuggestionsOnSERP",
276 base::FEATURE_ENABLED_BY_DEFAULT};
277
Ce Chenc8d803a2020-04-27 09:31:33278// Features to provide non personalized head search suggestion from a compact
279// on device model. More specifically, feature name with suffix Incognito /
280// NonIncognito will only controls behaviors under incognito / non-incognito
281// mode respectively.
282const base::Feature kOnDeviceHeadProviderIncognito{
283 "OmniboxOnDeviceHeadProviderIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
284const base::Feature kOnDeviceHeadProviderNonIncognito{
285 "OmniboxOnDeviceHeadProviderNonIncognito",
286 base::FEATURE_DISABLED_BY_DEFAULT};
287
Justin Donnellyf2703482019-10-24 21:42:15288// If enabled, changes the way Google-provided search suggestions are scored by
289// the backend. Note that this Feature is only used for triggering a server-
290// side experiment config that will send experiment IDs to the backend. It is
291// not referred to in any of the Chromium code.
292const base::Feature kOmniboxExperimentalSuggestScoring{
293 "OmniboxExperimentalSuggestScoring", base::FEATURE_DISABLED_BY_DEFAULT};
294
manukh3bb80c92020-01-22 00:19:46295// If disabled, terms with no wordstart matches disqualify the suggestion unless
296// they occur in the URL host. If enabled, terms with no wordstart matches are
297// allowed but not scored. E.g., both inputs 'java script' and 'java cript' will
298// match a suggestion titled 'javascript' and score equivalently.
manukh5ff0f582020-01-14 03:54:13299const base::Feature kHistoryQuickProviderAllowButDoNotScoreMidwordTerms{
300 "OmniboxHistoryQuickProviderAllowButDoNotScoreMidwordTerms",
manuk8f1b1e1a2020-07-28 22:02:13301 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13302
manukh3bb80c92020-01-22 00:19:46303// If disabled, midword matches are ignored except in the URL host, and input
304// terms with no wordstart matches are scored 0, resulting in an overall score
305// of 0. If enabled, midword matches are allowed and scored when they begin
306// immediately after the previous match ends. E.g. 'java script' will match a
307// suggestion titled 'javascript' but the input 'java cript' won't.
manukh5ff0f582020-01-14 03:54:13308const base::Feature kHistoryQuickProviderAllowMidwordContinuations{
309 "OmniboxHistoryQuickProviderAllowMidwordContinuations",
manuk8f1b1e1a2020-07-28 22:02:13310 base::FEATURE_ENABLED_BY_DEFAULT};
manukh5ff0f582020-01-14 03:54:13311
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19312// If enabled, shows slightly more compact suggestions, allowing the
313// kAdaptiveSuggestionsCount feature to fit more suggestions on screen.
314const base::Feature kCompactSuggestions{"OmniboxCompactSuggestions",
315 base::FEATURE_DISABLED_BY_DEFAULT};
316
Tomasz Wiszkowski70fb35f2020-02-27 00:39:19317// If enabled, defers keyboard popup when user highlights the omnibox until
318// the user taps the Omnibox again.
319extern const base::Feature kDeferredKeyboardPopup{
320 "OmniboxDeferredKeyboardPopup", base::FEATURE_DISABLED_BY_DEFAULT};
321
Filip Gorskib116dee2020-08-20 14:12:10322// If enbaled, frequently visited sites are presented in form of a single row
323// with a carousel of tiles, instead of one URL per row.
324extern const base::Feature kMostVisitedTiles{"OmniboxMostVisitedTiles",
325 base::FEATURE_DISABLED_BY_DEFAULT};
326
manuk695f9d4532020-03-18 19:22:08327// If enabled, expands autocompletion to possibly (depending on params) include
328// suggestion titles and non-prefixes as opposed to be restricted to URL
329// prefixes. Will also adjust the location bar UI and omnibox text selection to
330// accommodate the autocompletions.
331const base::Feature kRichAutocompletion{"OmniboxRichAutocompletion",
332 base::FEATURE_DISABLED_BY_DEFAULT};
333
Tomasz Wiszkowski457253d32020-08-18 01:37:26334// Feature that enables Search Ready Omnibox in incognito.
Filip Gorski05279842020-06-12 12:49:02335const base::Feature kOmniboxSearchReadyIncognito{
336 "OmniboxSearchReadyIncognito", base::FEATURE_DISABLED_BY_DEFAULT};
337
Orin Jaworskifc174722020-01-29 00:32:22338// Feature that puts a single row of buttons on suggestions with actionable
339// elements like keywords, tab-switch buttons, and Pedals.
340const base::Feature kOmniboxSuggestionButtonRow{
341 "OmniboxSuggestionButtonRow", base::FEATURE_DISABLED_BY_DEFAULT};
342
Justin Donnelly5726ecf2020-08-14 00:53:52343// Feature used to enable Pedal suggestions.
344const base::Feature kOmniboxPedalSuggestions{"OmniboxPedalSuggestions",
345 base::FEATURE_DISABLED_BY_DEFAULT};
346
347// Feature used to enable the keyword search button.
348const base::Feature kOmniboxKeywordSearchButton{
349 "OmniboxKeywordSearchButton", base::FEATURE_DISABLED_BY_DEFAULT};
350
Filip Gorski927709ea2020-04-30 15:58:37351// Enables using an Android RecyclerView to render the suggestions dropdown
352// instead of a ListView.
353const base::Feature kOmniboxSuggestionsRecyclerView{
Filip Gorskieb6dbc82020-08-18 20:53:12354 "OmniboxSuggestionsRecyclerView", base::FEATURE_ENABLED_BY_DEFAULT};
Filip Gorski927709ea2020-04-30 15:58:37355
Tomasz Wiszkowski5ec4f532020-05-19 21:28:10356// Allows long Omnibox suggestions to wrap around to next line.
357const base::Feature kOmniboxSuggestionsWrapAround{
358 "OmniboxSuggestionsWrapAround", base::FEATURE_DISABLED_BY_DEFAULT};
359
Tommy Li1f1fc4a2020-01-31 21:02:07360// If enabled, uses WebUI to render the omnibox suggestions popup, similar to
361// how the NTP "fakebox" is implemented.
362const base::Feature kWebUIOmniboxPopup{"WebUIOmniboxPopup",
363 base::FEATURE_DISABLED_BY_DEFAULT};
364
Brandon Wylie1299ff82020-01-23 02:13:37365// When enabled, use Assistant for omnibox voice query recognition instead of
366// Android's built-in voice recognition service. Only works on Android.
367const base::Feature kOmniboxAssistantVoiceSearch{
368 "OmniboxAssistantVoiceSearch", base::FEATURE_DISABLED_BY_DEFAULT};
369
Livvie Lin30a9f9d2020-03-17 19:45:19370// When enabled, provides an omnibox context menu option that prevents URL
371// elisions.
372const base::Feature kOmniboxContextMenuShowFullUrls{
Livvie Lin77ff5e92020-08-18 15:45:21373 "OmniboxContextMenuShowFullUrls", base::FEATURE_ENABLED_BY_DEFAULT};
Livvie Lin30a9f9d2020-03-17 19:45:19374
Emily Stark4bca290ac2020-06-29 21:02:30375// Feature used to reveal the path, query and ref from steady state URLs
376// on hover.
377const base::Feature kRevealSteadyStateUrlPathQueryAndRefOnHover{
378 "OmniboxUIExperimentRevealSteadyStateUrlPathQueryAndRefOnHover",
379 base::FEATURE_DISABLED_BY_DEFAULT};
380
381// Feature used to hide the path, query and ref from steady state URLs
382// on interaction with the page.
383const base::Feature kHideSteadyStateUrlPathQueryAndRefOnInteraction{
384 "OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRefOnInteraction",
385 base::FEATURE_DISABLED_BY_DEFAULT};
386
Joe DeBlasio6d5806e12020-08-06 17:27:18387// Feature used to possibly elide not just the path, query, and ref from steady
388// state URLs, but also subdomains beyond the registrable domain, depending on
389// whether the hostname fails lookalike checks. Has no effect unless
Emily Stark4bca290ac2020-06-29 21:02:30390// kRevealSteadyStateUrlPathQueryAndRefOnHover and/or
391// kHideSteadyStateUrlPathQueryAndRefOnInteraction are enabled.
Joe DeBlasio6d5806e12020-08-06 17:27:18392const base::Feature kMaybeElideToRegistrableDomain{
Emily Stark4bca290ac2020-06-29 21:02:30393 "OmniboxUIExperimentElideToRegistrableDomain",
394 base::FEATURE_DISABLED_BY_DEFAULT};
395
Tomasz Wiszkowskid938a1112019-03-06 18:01:57396} // namespace omnibox