blob: 1243c0e4368999a0d97d77f9c0b690c7c56f756b [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
7namespace omnibox {
8
9// Feature used to hide the scheme from steady state URLs displayed in the
10// toolbar. It is restored during editing.
11const base::Feature kHideFileUrlScheme {
12 "OmniboxUIExperimentHideFileUrlScheme",
13// Android and iOS don't have the File security chip, and therefore still
14// need to show the file scheme.
15#if defined(OS_ANDROID) || defined(OS_IOS)
16 base::FEATURE_DISABLED_BY_DEFAULT
17#else
18 base::FEATURE_ENABLED_BY_DEFAULT
19#endif
20};
21
22// Feature used to hide the scheme from steady state URLs displayed in the
23// toolbar. It is restored during editing.
Tommy Lifc8ae9f2019-05-06 16:55:1424const base::Feature kHideSteadyStateUrlScheme {
25 "OmniboxUIExperimentHideSteadyStateUrlScheme",
26#if defined(OS_IOS)
27 base::FEATURE_ENABLED_BY_DEFAULT
28#else
29 base::FEATURE_DISABLED_BY_DEFAULT
30#endif
31};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5732
33// Feature used to hide trivial subdomains from steady state URLs displayed in
34// the toolbar. It is restored during editing.
Tommy Lifc8ae9f2019-05-06 16:55:1435const base::Feature kHideSteadyStateUrlTrivialSubdomains {
36 "OmniboxUIExperimentHideSteadyStateUrlTrivialSubdomains",
37#if defined(OS_IOS)
38 base::FEATURE_ENABLED_BY_DEFAULT
39#else
40 base::FEATURE_DISABLED_BY_DEFAULT
41#endif
42};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5743
44// Feature used to hide the path, query and ref from steady state URLs
45// displayed in the toolbar. It is restored during editing.
46const base::Feature kHideSteadyStateUrlPathQueryAndRef {
47 "OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRef",
48#if defined(OS_IOS)
49 base::FEATURE_ENABLED_BY_DEFAULT
50#else
51 base::FEATURE_DISABLED_BY_DEFAULT
52#endif
53};
54
55// Feature used to undo all omnibox elisions on a single click or focus action.
56const base::Feature kOneClickUnelide{"OmniboxOneClickUnelide",
57 base::FEATURE_DISABLED_BY_DEFAULT};
58
59// This feature simplifies the security indiciator UI for https:// pages. The
60// exact UI treatment is dependent on the parameter 'treatment' which can have
61// the following value:
62// - 'ev-to-secure': Show the "Secure" chip for pages with an EV certificate.
63// - 'secure-to-lock': Show only the lock icon for non-EV https:// pages.
64// - 'both-to-lock': Show only the lock icon for all https:// pages.
65// - 'keep-secure-chip': Show the old "Secure" chip for non-EV https:// pages.
66// The default behavior is the same as 'secure-to-lock'.
67// This feature is used for EV UI removal experiment (https://crbug.com/803501).
68const base::Feature kSimplifyHttpsIndicator{"SimplifyHttpsIndicator",
69 base::FEATURE_DISABLED_BY_DEFAULT};
70
manukaddd3c42019-04-09 21:20:5971// Feature used to enable local entity suggestions. Similar to rich entities but
72// but location specific. E.g., typing 'starbucks near' could display the local
73// entity suggestion 'starbucks near disneyland \n starbucks * Anaheim, CA'.
74const base::Feature kOmniboxLocalEntitySuggestions{
75 "OmniboxLocalEntitySuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
76
Tomasz Wiszkowskid938a1112019-03-06 18:01:5777// Feature used to enable entity suggestion images and enhanced presentation
78// showing more context and descriptive text about the entity.
79const base::Feature kOmniboxRichEntitySuggestions{
Justin Donnelly481a69c2019-05-03 20:41:4280 "OmniboxRichEntitySuggestions",
81#if defined(OS_IOS) || defined(OS_ANDROID)
82 base::FEATURE_DISABLED_BY_DEFAULT
83#else
84 base::FEATURE_ENABLED_BY_DEFAULT
85#endif
86};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5787
88// Feature used to enable enhanced presentation showing larger images.
89// This is currently only used on Android.
90const base::Feature kOmniboxNewAnswerLayout{"OmniboxNewAnswerLayout",
91 base::FEATURE_DISABLED_BY_DEFAULT};
92
93// Feature used to enable swapping the rows on answers.
94const base::Feature kOmniboxReverseAnswers{"OmniboxReverseAnswers",
95 base::FEATURE_DISABLED_BY_DEFAULT};
96
Kevin Bailey7d918b92019-05-02 16:00:1497// Feature used to enable matching short words to bookmarks for suggestions.
98const base::Feature kOmniboxShortBookmarkSuggestions{
99 "OmniboxShortBookmarkSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
100
Tomasz Wiszkowskid938a1112019-03-06 18:01:57101// Feature used to force on the experiment of transmission of tail suggestions
102// from GWS to this client, currently testing for desktop.
103const base::Feature kOmniboxTailSuggestions{
104 "OmniboxTailSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
105
Stepan Khapuginb09801662019-05-07 10:17:04106// Feature that enables the tab-switch button on suggestions corresponding to an
107// open tab. Enabled by default on Desktop and iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:57108const base::Feature kOmniboxTabSwitchSuggestions{
109 "OmniboxTabSwitchSuggestions",
Stepan Khapuginb09801662019-05-07 10:17:04110#if defined(OS_ANDROID)
Tomasz Wiszkowskid938a1112019-03-06 18:01:57111 base::FEATURE_DISABLED_BY_DEFAULT
112#else
113 base::FEATURE_ENABLED_BY_DEFAULT
114#endif
115};
116
117// Feature used to reverse the sense of the tab switch button. Selecting the
118// suggestion will switch to the tab, while the button will navigate
119// locally.
120const base::Feature kOmniboxReverseTabSwitchLogic{
121 "OmniboxReverseTabSwitchLogic", base::FEATURE_DISABLED_BY_DEFAULT};
122
123// Feature used to enable various experiments on keyword mode, UI and
124// suggestions.
125const base::Feature kExperimentalKeywordMode{"OmniboxExperimentalKeywordMode",
126 base::FEATURE_DISABLED_BY_DEFAULT};
127
128// Feature used to enable Pedal suggestions.
129const base::Feature kOmniboxPedalSuggestions{"OmniboxPedalSuggestions",
130 base::FEATURE_DISABLED_BY_DEFAULT};
131
Tommy C. Lia2c75fb2019-04-08 20:22:34132// Feature used for UI that improves transparency of and control over omnibox
133// suggestions. This includes UI cues (like a clock icon for Search History
134// suggestions), as well as user controls to delete personalized suggestions.
135// This will be eventually enabled by default.
136const base::Feature kOmniboxSuggestionTransparencyOptions{
137 "OmniboxSuggestionTransparencyOptions", base::FEATURE_DISABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57138
Tommy C. Lie57096e92019-04-23 21:18:55139// Feature that shows UI cues to differentiate Search History matches from
140// other search suggestions provided by the default search provider. This
141// feature is a narrow subset of kOmniboxSuggestionTransparencyOptions.
142const base::Feature kOmniboxUICuesForSearchHistoryMatches{
143 "OmniboxUICuesForSearchHistoryMatches", base::FEATURE_DISABLED_BY_DEFAULT};
144
Tommy C. Li7af8664b2019-04-24 18:10:29145// Feature that shows an alternate separator before the description of
146// omnibox matches. In English, this changes the separator from '-' to '|'.
147const base::Feature kOmniboxAlternateMatchDescriptionSeparator{
148 "OmniboxAlternateMatchDescriptionSeparator",
149 base::FEATURE_DISABLED_BY_DEFAULT};
150
Tomasz Wiszkowskid938a1112019-03-06 18:01:57151// Feature to enable clipboard provider to suggest copied text.
152const base::Feature kEnableClipboardProviderTextSuggestions{
153 "OmniboxEnableClipboardProviderTextSuggestions",
154 base::FEATURE_DISABLED_BY_DEFAULT};
155
156// Feature to enable clipboard provider to suggest searching for copied images.
157const base::Feature kEnableClipboardProviderImageSuggestions{
158 "OmniboxEnableClipboardProviderImageSuggestions",
159 base::FEATURE_DISABLED_BY_DEFAULT};
160
161// Feature to enable the search provider to send a request to the suggest
162// server on focus. This allows the suggest server to warm up, by, for
163// example, loading per-user models into memory. Having a per-user model
164// in memory allows the suggest server to respond more quickly with
165// personalized suggestions as the user types.
166const base::Feature kSearchProviderWarmUpOnFocus{
167 "OmniboxWarmUpSearchProviderOnFocus",
168#if defined(OS_IOS)
169 base::FEATURE_DISABLED_BY_DEFAULT
170#else
171 base::FEATURE_ENABLED_BY_DEFAULT
172#endif
173};
174
175// Feature used for the Zero Suggest Redirect to Chrome Field Trial.
Mark Pearsonca4231e2019-05-09 04:26:19176//
177// This feature is *enabled* in order to *disable* all forms of suggestions
178// based on the URL on-focus (whether from "redirect to Chrome" or the
179// default suggest server). The actual disabling of redirect to Chrome
180// suggestions happens in contextual_suggestions_service.cc. See comments
181// by kDefaultExperimentalServerAddress.
182//
183// If this feature were not enabled, Chrome would use the default suggest
184// server for suggestions based on the current URL on focus. There is no
185// code in Chrome to disable that, so that why we took this route.
Tomasz Wiszkowskid938a1112019-03-06 18:01:57186const base::Feature kZeroSuggestRedirectToChrome{
Mark Pearsonca4231e2019-05-09 04:26:19187 "ZeroSuggestRedirectToChrome", base::FEATURE_ENABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57188
189// Feature used to display the title of the current URL match.
190const base::Feature kDisplayTitleForCurrentUrl{
191 "OmniboxDisplayTitleForCurrentUrl",
192#if !defined(OS_IOS)
193 base::FEATURE_ENABLED_BY_DEFAULT
194#else
195 base::FEATURE_DISABLED_BY_DEFAULT
196#endif
197};
198
199// Feature used for the max autocomplete matches UI experiment.
200const base::Feature kUIExperimentMaxAutocompleteMatches{
201 "OmniboxUIExperimentMaxAutocompleteMatches",
202 base::FEATURE_DISABLED_BY_DEFAULT};
203
204// Feature used to display the search terms instead of the URL in the Omnibox
205// when the user is on the search results page of the default search provider.
206const base::Feature kQueryInOmnibox{"QueryInOmnibox",
207 base::FEATURE_DISABLED_BY_DEFAULT};
208
Tommy C. Li0001b822019-05-10 00:10:03209// Feature used for showing the URL suggestion favicons as a UI experiment.
210// Already launched on Desktop, and currently under development on Android.
211// This flag is not used on iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:57212const base::Feature kUIExperimentShowSuggestionFavicons{
Tomasz Wiszkowski4af1f7352019-04-08 16:46:15213 "OmniboxUIExperimentShowSuggestionFavicons",
214#if defined(OS_ANDROID)
215 base::FEATURE_DISABLED_BY_DEFAULT
216#else
217 base::FEATURE_ENABLED_BY_DEFAULT
218#endif
219};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57220
221// Feature used to always swap the title and URL.
222const base::Feature kUIExperimentSwapTitleAndUrl{
223 "OmniboxUIExperimentSwapTitleAndUrl",
224#if defined(OS_IOS) || defined(OS_ANDROID)
225 base::FEATURE_DISABLED_BY_DEFAULT
226#else
227 base::FEATURE_ENABLED_BY_DEFAULT
228#endif
229};
230
231// Feature used for the vertical margin UI experiment, currently only used on
232// desktop platforms.
233const base::Feature kUIExperimentVerticalMargin{
234 "OmniboxUIExperimentVerticalMargin", base::FEATURE_DISABLED_BY_DEFAULT};
235
Tommy C. Lie35fb6b2019-04-30 16:29:54236// Feature used to limit the vertical margin UI experiment to non-touch
237// devices only. Has no effect if kUIExperimentVerticalMargin is not enabled.
238const base::Feature kUIExperimentVerticalMarginLimitToNonTouchOnly{
239 "OmniboxUIExperimentVerticalMarginLimitToNonTouchOnly",
240 base::FEATURE_DISABLED_BY_DEFAULT};
241
Tomasz Wiszkowskid938a1112019-03-06 18:01:57242// Feature used to color "blue" the generic search icon and search terms.
243// Technically, this makes the search icon and search terms match the color of
244// Omnibox link text, which is blue by convention.
245const base::Feature kUIExperimentBlueSearchLoopAndSearchQuery{
246 "OmniboxUIExperimentBlueSearchLoopAndSearchQuery",
247 base::FEATURE_DISABLED_BY_DEFAULT};
248
249// Feature used to change the color of text in navigation suggestions. It
250// changes title text from black to blue, and URL text from blue to gray.
251const base::Feature kUIExperimentBlueTitlesAndGrayUrlsOnPageSuggestions{
252 "OmniboxUIExperimentBlueTitlesAndGrayUrlsOnPageSuggestions",
253 base::FEATURE_DISABLED_BY_DEFAULT};
254
255// Feature used to change the color of text in navigation suggestions. It
256// changes title text from black to blue.
257const base::Feature kUIExperimentBlueTitlesOnPageSuggestions{
258 "OmniboxUIExperimentBlueTitlesOnPageSuggestions",
259 base::FEATURE_DISABLED_BY_DEFAULT};
260
261// Feature used to show a " - Google Search", " - Bing Search", etc. suffix on
262// all search suggestions instead of just the first one in each cluster.
263const base::Feature kUIExperimentShowSuffixOnAllSearchSuggestions{
264 "OmniboxUIExperimentShowSuffixOnAllSearchSuggestions",
265 base::FEATURE_DISABLED_BY_DEFAULT};
266
267// Feature used to show a white background in the omnibox while it's unfocused.
268// More technically, with this flag on, it uses the same background color as
269// the results popup (conventionally white).
270const base::Feature kUIExperimentWhiteBackgroundOnBlur{
271 "OmniboxUIExperimentWhiteBackgroundOnBlur",
272 base::FEATURE_DISABLED_BY_DEFAULT};
273
274// Feature used to show a generic vector icon for omnibox search instead of the
275// search engine favicon.
276//
277// This feature flag's string has a typo: "Omnibox" => "Ominbox".
278// Do not correct this typo, because this misspelled string is being used
279// as-is in field trials.
280const base::Feature kUIExperimentUseGenericSearchEngineIcon{
281 "OminboxUIExperimentUseGenericSearchEngineIcon",
282 base::FEATURE_DISABLED_BY_DEFAULT};
283
284// Feature used to bold the "user text" part of search suggestions instead
285// of the "autocomplete" part. For example, if the user typed "point reyes",
286// and the search suggestion was "point reyes weather", this feature makes
287// the "point reyes" part of the suggestion bold, instead of "weather".
288const base::Feature kUIExperimentBoldUserTextOnSearchSuggestions{
289 "OmniboxUIExperimentBoldUserTextOnSearchSuggestions",
290 base::FEATURE_DISABLED_BY_DEFAULT};
291
292// Feature used to unbold suggestion text.
293const base::Feature kUIExperimentUnboldSuggestionText{
294 "OmniboxUIExperimentUnboldSuggestionText",
295 base::FEATURE_DISABLED_BY_DEFAULT};
296
Dan Beamc6f0d222019-04-26 00:38:31297// Shows the "Search Google or type a URL" omnibox placeholder even when the
298// caret (text edit cursor) is showing / when focused. views::Textfield works
299// this way, as does <input placeholder="">. Omnibox and the NTP's "fakebox"
300// are exceptions in this regard and this experiment makes this more consistent.
301const base::Feature kUIExperimentShowPlaceholderWhenCaretShowing{
302 "OmniboxUIExperimentShowPlaceholderWhenCaretShowing",
303 base::FEATURE_DISABLED_BY_DEFAULT};
304
Tomasz Wiszkowskid938a1112019-03-06 18:01:57305// Feature used to enable speculatively starting a service worker associated
306// with the destination of the default match when the user's input looks like a
307// query.
308const base::Feature kSpeculativeServiceWorkerStartOnQueryInput{
309 "OmniboxSpeculativeServiceWorkerStartOnQueryInput",
310 base::FEATURE_ENABLED_BY_DEFAULT
311};
312
313// Feature used to fetch document suggestions.
314const base::Feature kDocumentProvider{"OmniboxDocumentProvider",
315 base::FEATURE_DISABLED_BY_DEFAULT};
316
317// Feature used to dedupe Google Drive URLs between different formats.
318// OmniboxDocumentProvider arms may wish to enable this, though it may also be
319// run on its own.
320const base::Feature kDedupeGoogleDriveURLs{"OmniboxDedupeGoogleDriveURLs",
321 base::FEATURE_DISABLED_BY_DEFAULT};
322
323// Feature to replace the standard ZeroSuggest with icons for most visited sites
324// and collections (bookmarks, history, recent tabs, reading list). Only
325// available on iOS.
326const base::Feature kOmniboxPopupShortcutIconsInZeroState{
327 "OmniboxPopupShortcutIconsInZeroState", base::FEATURE_DISABLED_BY_DEFAULT};
328
329// Feature to use material design weather icons in the omnibox when displaying
330// weather answers.
331const base::Feature kOmniboxMaterialDesignWeatherIcons{
332 "OmniboxMaterialDesignWeatherIcons", base::FEATURE_DISABLED_BY_DEFAULT};
333
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25334// Allow suggestions to be shown to the user on the New Tab Page upon focusing
335// URL bar (the omnibox).
336const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",
337 base::FEATURE_DISABLED_BY_DEFAULT};
338
Tomasz Wiszkowskid938a1112019-03-06 18:01:57339} // namespace omnibox