blob: 370bd18413d700fa79e417a538fae49ff4276126 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_OMNIBOX_COMMON_OMNIBOX_FEATURES_H_
#define COMPONENTS_OMNIBOX_COMMON_OMNIBOX_FEATURES_H_
#include "base/feature_list.h"
namespace omnibox {
// Please do not add more features to this "big blob" list.
// Instead, use the categorized and alphabetized lists below this "big blob".
// You can create a new category if none of the existing ones fit.
extern const base::Feature kHideFileUrlScheme;
extern const base::Feature kOmniboxShortBookmarkSuggestions;
extern const base::Feature kOmniboxTailSuggestions;
extern const base::Feature kOmniboxTabSwitchSuggestions;
extern const base::Feature kExperimentalKeywordMode;
extern const base::Feature kEnableClipboardProviderImageSuggestions;
extern const base::Feature kSearchProviderWarmUpOnFocus;
extern const base::Feature kDisplayTitleForCurrentUrl;
extern const base::Feature kUIExperimentSwapTitleAndUrl;
extern const base::Feature kSpeculativeServiceWorkerStartOnQueryInput;
extern const base::Feature kDocumentProvider;
extern const base::Feature kOmniboxDisableInstantExtendedLimit;
extern const base::Feature kOmniboxSearchEngineLogo;
extern const base::Feature kOmniboxRemoveSuggestionsFromClipboard;
extern const base::Feature kDebounceDocumentProvider;
// Flags that affect the "twiddle" step of AutocompleteResult, i.e. SortAndCull.
// TODO(tommycli): There are more flags above that belong in this category.
extern const base::Feature kOmniboxDemoteByType;
// A special flag, enabled by default, that can be used to disable all new
// search features (e.g. zero suggest).
extern const base::Feature kNewSearchFeatures;
// Features below this line should be sorted alphabetically by their comments.
// Entity suggestion features.
extern const base::Feature kEntitySuggestionsReduceLatency;
// Num suggestions - these affect how many suggestions are shown based on e.g.
// focus, page context, provider, or URL v non-URL.
// Note that all of these are overridden and default values used instead if
// kNewSearchFeatures is disabled.
extern const base::Feature kMaxZeroSuggestMatches;
extern const base::Feature kUIExperimentMaxAutocompleteMatches;
// The default value is established here as a bool so it can be referred to in
// OmniboxFieldTrial.
extern const bool kOmniboxMaxURLMatchesEnabledByDefault;
extern const base::Feature kOmniboxMaxURLMatches;
extern const base::Feature kDynamicMaxAutocomplete;
// Ranking
extern const base::Feature kBubbleUrlSuggestions;
// On-Focus Suggestions a.k.a. ZeroSuggest.
extern const base::Feature kClobberTriggersContextualWebZeroSuggest;
extern const base::Feature kOmniboxLocalZeroSuggestAgeThreshold;
extern const base::Feature kOmniboxLocalZeroSuggestForAuthenticatedUsers;
extern const base::Feature kOmniboxLocalZeroSuggestFrecencyRanking;
extern const base::Feature kOmniboxTrendingZeroPrefixSuggestionsOnNTP;
extern const base::Feature kOnFocusSuggestions;
extern const base::Feature kOnFocusSuggestionsContextualWeb;
extern const base::Feature kOnFocusSuggestionsContextualWebOnContent;
extern const base::Feature kReactiveZeroSuggestionsOnNTPOmnibox;
extern const base::Feature kReactiveZeroSuggestionsOnNTPRealbox;
extern const base::Feature kZeroSuggestionsOnNTP;
extern const base::Feature kZeroSuggestionsOnNTPRealbox;
extern const base::Feature kZeroSuggestionsOnSERP;
// Related, kMaxZeroSuggestMatches.
// On Device Head Suggest.
extern const base::Feature kOnDeviceHeadProviderIncognito;
extern const base::Feature kOnDeviceHeadProviderNonIncognito;
// Scoring - these affect how relevance scores are calculated for suggestions.
extern const base::Feature kOmniboxExperimentalSuggestScoring;
extern const base::Feature kHistoryQuickProviderAllowButDoNotScoreMidwordTerms;
extern const base::Feature kHistoryQuickProviderAllowMidwordContinuations;
// Suggestions UI - these affect the UI or function of the suggestions popup.
extern const base::Feature kAdaptiveSuggestionsCount;
extern const base::Feature kBookmarkPaths;
extern const base::Feature kCompactSuggestions;
extern const base::Feature kDeferredKeyboardPopup;
extern const base::Feature kMostVisitedTiles;
extern const base::Feature kRichAutocompletion;
extern const base::Feature kOmniboxSearchReadyIncognito;
extern const base::Feature kOmniboxSuggestionButtonRow;
extern const base::Feature kOmniboxPedalSuggestions;
extern const base::Feature kOmniboxKeywordSearchButton;
extern const base::Feature kOmniboxRefinedFocusState;
extern const base::Feature kOmniboxSuggestionsRecyclerView;
extern const base::Feature kOmniboxSuggestionsWrapAround;
extern const base::Feature kWebUIOmniboxPopup;
// Omnibox UI - these affect the UI or function of the location bar (not the
// popup).
extern const base::Feature kOmniboxAssistantVoiceSearch;
// Path-hiding experiments - these hide the path and other URL components in
// some circumstances in the steady-state omnibox.
extern const base::Feature kRevealSteadyStateUrlPathQueryAndRefOnHover;
extern const base::Feature kHideSteadyStateUrlPathQueryAndRefOnInteraction;
extern const base::Feature kMaybeElideToRegistrableDomain;
} // namespace omnibox
#endif // COMPONENTS_OMNIBOX_COMMON_OMNIBOX_FEATURES_H_