blob: 2e8d422ab6f44d33d66c5c9aad4b60bfac52d140 [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
Kevin Bailey0f7d1592019-05-23 19:07:3571// This feature is used to have final suggestions within the Omnibox grouped
72// by type. i.e. search types are first, followed by all others, except for
73// the default match which is unchanged in position.
74const base::Feature kOmniboxGroupSuggestionsByType{
75 "OmniboxGroupSuggestionsByType", base::FEATURE_DISABLED_BY_DEFAULT};
76
manukaddd3c42019-04-09 21:20:5977// Feature used to enable local entity suggestions. Similar to rich entities but
78// but location specific. E.g., typing 'starbucks near' could display the local
79// entity suggestion 'starbucks near disneyland \n starbucks * Anaheim, CA'.
80const base::Feature kOmniboxLocalEntitySuggestions{
81 "OmniboxLocalEntitySuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
82
Tomasz Wiszkowskid938a1112019-03-06 18:01:5783// Feature used to enable entity suggestion images and enhanced presentation
84// showing more context and descriptive text about the entity.
85const base::Feature kOmniboxRichEntitySuggestions{
Justin Donnelly481a69c2019-05-03 20:41:4286 "OmniboxRichEntitySuggestions",
87#if defined(OS_IOS) || defined(OS_ANDROID)
88 base::FEATURE_DISABLED_BY_DEFAULT
89#else
90 base::FEATURE_ENABLED_BY_DEFAULT
91#endif
92};
Tomasz Wiszkowskid938a1112019-03-06 18:01:5793
94// Feature used to enable enhanced presentation showing larger images.
95// This is currently only used on Android.
96const base::Feature kOmniboxNewAnswerLayout{"OmniboxNewAnswerLayout",
97 base::FEATURE_DISABLED_BY_DEFAULT};
98
Kevin Baileyabf05d62019-05-15 17:29:5699const base::Feature kOmniboxPreserveDefaultMatchScore{
100 "OmniboxPreserveDefaultMatchScore", base::FEATURE_DISABLED_BY_DEFAULT};
101
Tomasz Wiszkowskid938a1112019-03-06 18:01:57102// Feature used to enable swapping the rows on answers.
103const base::Feature kOmniboxReverseAnswers{"OmniboxReverseAnswers",
104 base::FEATURE_DISABLED_BY_DEFAULT};
105
Kevin Bailey7d918b92019-05-02 16:00:14106// Feature used to enable matching short words to bookmarks for suggestions.
107const base::Feature kOmniboxShortBookmarkSuggestions{
108 "OmniboxShortBookmarkSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
109
Tomasz Wiszkowskid938a1112019-03-06 18:01:57110// Feature used to force on the experiment of transmission of tail suggestions
111// from GWS to this client, currently testing for desktop.
112const base::Feature kOmniboxTailSuggestions{
113 "OmniboxTailSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
114
Stepan Khapuginb09801662019-05-07 10:17:04115// Feature that enables the tab-switch button on suggestions corresponding to an
116// open tab. Enabled by default on Desktop and iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:57117const base::Feature kOmniboxTabSwitchSuggestions{
118 "OmniboxTabSwitchSuggestions",
Stepan Khapuginb09801662019-05-07 10:17:04119#if defined(OS_ANDROID)
Tomasz Wiszkowskid938a1112019-03-06 18:01:57120 base::FEATURE_DISABLED_BY_DEFAULT
121#else
122 base::FEATURE_ENABLED_BY_DEFAULT
123#endif
124};
125
126// Feature used to reverse the sense of the tab switch button. Selecting the
127// suggestion will switch to the tab, while the button will navigate
128// locally.
129const base::Feature kOmniboxReverseTabSwitchLogic{
130 "OmniboxReverseTabSwitchLogic", base::FEATURE_DISABLED_BY_DEFAULT};
131
132// Feature used to enable various experiments on keyword mode, UI and
133// suggestions.
134const base::Feature kExperimentalKeywordMode{"OmniboxExperimentalKeywordMode",
135 base::FEATURE_DISABLED_BY_DEFAULT};
136
137// Feature used to enable Pedal suggestions.
138const base::Feature kOmniboxPedalSuggestions{"OmniboxPedalSuggestions",
139 base::FEATURE_DISABLED_BY_DEFAULT};
140
Tommy C. Lia2c75fb2019-04-08 20:22:34141// Feature used for UI that improves transparency of and control over omnibox
142// suggestions. This includes UI cues (like a clock icon for Search History
143// suggestions), as well as user controls to delete personalized suggestions.
144// This will be eventually enabled by default.
145const base::Feature kOmniboxSuggestionTransparencyOptions{
146 "OmniboxSuggestionTransparencyOptions", base::FEATURE_DISABLED_BY_DEFAULT};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57147
Tommy C. Lie57096e92019-04-23 21:18:55148// Feature that shows UI cues to differentiate Search History matches from
149// other search suggestions provided by the default search provider. This
150// feature is a narrow subset of kOmniboxSuggestionTransparencyOptions.
151const base::Feature kOmniboxUICuesForSearchHistoryMatches{
152 "OmniboxUICuesForSearchHistoryMatches", base::FEATURE_DISABLED_BY_DEFAULT};
153
Tommy C. Li7af8664b2019-04-24 18:10:29154// Feature that shows an alternate separator before the description of
155// omnibox matches. In English, this changes the separator from '-' to '|'.
156const base::Feature kOmniboxAlternateMatchDescriptionSeparator{
157 "OmniboxAlternateMatchDescriptionSeparator",
158 base::FEATURE_DISABLED_BY_DEFAULT};
159
Tomasz Wiszkowskid938a1112019-03-06 18:01:57160// Feature to enable clipboard provider to suggest copied text.
161const base::Feature kEnableClipboardProviderTextSuggestions{
162 "OmniboxEnableClipboardProviderTextSuggestions",
163 base::FEATURE_DISABLED_BY_DEFAULT};
164
165// Feature to enable clipboard provider to suggest searching for copied images.
166const base::Feature kEnableClipboardProviderImageSuggestions{
167 "OmniboxEnableClipboardProviderImageSuggestions",
168 base::FEATURE_DISABLED_BY_DEFAULT};
169
170// Feature to enable the search provider to send a request to the suggest
171// server on focus. This allows the suggest server to warm up, by, for
172// example, loading per-user models into memory. Having a per-user model
173// in memory allows the suggest server to respond more quickly with
174// personalized suggestions as the user types.
175const base::Feature kSearchProviderWarmUpOnFocus{
176 "OmniboxWarmUpSearchProviderOnFocus",
177#if defined(OS_IOS)
178 base::FEATURE_DISABLED_BY_DEFAULT
179#else
180 base::FEATURE_ENABLED_BY_DEFAULT
181#endif
182};
183
Tomasz Wiszkowskid938a1112019-03-06 18:01:57184// Feature used to display the title of the current URL match.
185const base::Feature kDisplayTitleForCurrentUrl{
186 "OmniboxDisplayTitleForCurrentUrl",
187#if !defined(OS_IOS)
188 base::FEATURE_ENABLED_BY_DEFAULT
189#else
190 base::FEATURE_DISABLED_BY_DEFAULT
191#endif
192};
193
194// Feature used for the max autocomplete matches UI experiment.
195const base::Feature kUIExperimentMaxAutocompleteMatches{
196 "OmniboxUIExperimentMaxAutocompleteMatches",
197 base::FEATURE_DISABLED_BY_DEFAULT};
198
199// Feature used to display the search terms instead of the URL in the Omnibox
200// when the user is on the search results page of the default search provider.
201const base::Feature kQueryInOmnibox{"QueryInOmnibox",
202 base::FEATURE_DISABLED_BY_DEFAULT};
203
Tommy C. Li0001b822019-05-10 00:10:03204// Feature used for showing the URL suggestion favicons as a UI experiment.
205// Already launched on Desktop, and currently under development on Android.
206// This flag is not used on iOS.
Tomasz Wiszkowskid938a1112019-03-06 18:01:57207const base::Feature kUIExperimentShowSuggestionFavicons{
Tomasz Wiszkowski4af1f7352019-04-08 16:46:15208 "OmniboxUIExperimentShowSuggestionFavicons",
209#if defined(OS_ANDROID)
210 base::FEATURE_DISABLED_BY_DEFAULT
211#else
212 base::FEATURE_ENABLED_BY_DEFAULT
213#endif
214};
Tomasz Wiszkowskid938a1112019-03-06 18:01:57215
216// Feature used to always swap the title and URL.
217const base::Feature kUIExperimentSwapTitleAndUrl{
218 "OmniboxUIExperimentSwapTitleAndUrl",
219#if defined(OS_IOS) || defined(OS_ANDROID)
220 base::FEATURE_DISABLED_BY_DEFAULT
221#else
222 base::FEATURE_ENABLED_BY_DEFAULT
223#endif
224};
225
226// Feature used for the vertical margin UI experiment, currently only used on
227// desktop platforms.
228const base::Feature kUIExperimentVerticalMargin{
229 "OmniboxUIExperimentVerticalMargin", base::FEATURE_DISABLED_BY_DEFAULT};
230
Tommy C. Lie35fb6b2019-04-30 16:29:54231// Feature used to limit the vertical margin UI experiment to non-touch
232// devices only. Has no effect if kUIExperimentVerticalMargin is not enabled.
233const base::Feature kUIExperimentVerticalMarginLimitToNonTouchOnly{
234 "OmniboxUIExperimentVerticalMarginLimitToNonTouchOnly",
235 base::FEATURE_DISABLED_BY_DEFAULT};
236
Dan Beamc6f0d222019-04-26 00:38:31237// Shows the "Search Google or type a URL" omnibox placeholder even when the
238// caret (text edit cursor) is showing / when focused. views::Textfield works
239// this way, as does <input placeholder="">. Omnibox and the NTP's "fakebox"
240// are exceptions in this regard and this experiment makes this more consistent.
241const base::Feature kUIExperimentShowPlaceholderWhenCaretShowing{
242 "OmniboxUIExperimentShowPlaceholderWhenCaretShowing",
243 base::FEATURE_DISABLED_BY_DEFAULT};
244
Tomasz Wiszkowskid938a1112019-03-06 18:01:57245// Feature used to enable speculatively starting a service worker associated
246// with the destination of the default match when the user's input looks like a
247// query.
248const base::Feature kSpeculativeServiceWorkerStartOnQueryInput{
249 "OmniboxSpeculativeServiceWorkerStartOnQueryInput",
250 base::FEATURE_ENABLED_BY_DEFAULT
251};
252
253// Feature used to fetch document suggestions.
254const base::Feature kDocumentProvider{"OmniboxDocumentProvider",
255 base::FEATURE_DISABLED_BY_DEFAULT};
256
257// Feature used to dedupe Google Drive URLs between different formats.
258// OmniboxDocumentProvider arms may wish to enable this, though it may also be
259// run on its own.
260const base::Feature kDedupeGoogleDriveURLs{"OmniboxDedupeGoogleDriveURLs",
261 base::FEATURE_DISABLED_BY_DEFAULT};
262
263// Feature to replace the standard ZeroSuggest with icons for most visited sites
264// and collections (bookmarks, history, recent tabs, reading list). Only
265// available on iOS.
266const base::Feature kOmniboxPopupShortcutIconsInZeroState{
267 "OmniboxPopupShortcutIconsInZeroState", base::FEATURE_DISABLED_BY_DEFAULT};
268
269// Feature to use material design weather icons in the omnibox when displaying
270// weather answers.
271const base::Feature kOmniboxMaterialDesignWeatherIcons{
272 "OmniboxMaterialDesignWeatherIcons", base::FEATURE_DISABLED_BY_DEFAULT};
273
Tommy C. Li090105512019-05-16 22:00:56274// Feature to configure on-focus suggestions provided by ZeroSuggestProvider.
275// This feature's main job is to contain the "ZeroSuggestVariant" field trial
276// parameter, which configures the global mode of ZeroSuggestProvider.
277const base::Feature kOnFocusSuggestions{"OmniboxOnFocusSuggestions",
278 base::FEATURE_ENABLED_BY_DEFAULT};
279
280// Feature used for the Zero Suggest Redirect to Chrome Field Trial.
281//
282// This feature is *enabled* in order to *disable* all forms of suggestions
283// based on the URL on-focus (whether from "redirect to Chrome" or the
284// default suggest server). The actual disabling of redirect to Chrome
285// suggestions happens in contextual_suggestions_service.cc. See comments
286// by kDefaultExperimentalServerAddress.
287//
288// If this feature were not enabled, Chrome would use the default suggest
289// server for suggestions based on the current URL on focus. There is no
290// code in Chrome to disable that, so that why we took this route.
291const base::Feature kZeroSuggestRedirectToChrome{
292 "ZeroSuggestRedirectToChrome", base::FEATURE_ENABLED_BY_DEFAULT};
293
Tomasz Wiszkowski947f6d0d2019-03-15 22:27:25294// Allow suggestions to be shown to the user on the New Tab Page upon focusing
295// URL bar (the omnibox).
296const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",
297 base::FEATURE_DISABLED_BY_DEFAULT};
298
Tomasz Wiszkowskid938a1112019-03-06 18:01:57299} // namespace omnibox