[omnibox] [max-suggest] Bubble URL suggestions after search grouping.
Search suggestions are grouped above URL suggestions regardless of
relevance scores. There are a some exceptions e.g. default match.
After grouping, this CL, bubbles URLs back above search suggestions if 2
conditions are met: 1) There must be a sufficient score gap between the
adjacent searches. E.g. for (S1, U1, S2), the difference in scores of S1
and S2 must be larger than some threshold. 2) There must be a sufficient
buffer between the URL and search scores. This only applies to the first
URL suggestion in a series. E.g. for (S1, U1, U2, S2, U3, S3), U1 & U3
must score higher than S2 + threshold & S3 + threshold respectively, but
U2 need only score higher than S2.
The intention is to allow good URLs to rank above relatively bad
searches while maintaining some propensity to group URLs and searches
into clusters.
These changes are behind a 'OmniboxBubbleUrlSuggestions' feature with 4
params:
- OmniboxBubbleUrlSuggestionsAbsoluteGap
- OmniboxBubbleUrlSuggestionsRelativeGap
- OmniboxBubbleUrlSuggestionsAbsoluteBuffer
- OmniboxBubbleUrlSuggestionsRelativeBuffer
And chrome://flags flag 'omnibox-bubble-url-suggestions'.
Bug: 1127125
Change-Id: I43662284537e9a89ab19b7bab040f8a6ad996e2c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404753
Reviewed-by: Dominick Ng <[email protected]>
Reviewed-by: Tommy Li <[email protected]>
Commit-Queue: manuk hovanesian <[email protected]>
Cr-Commit-Position: refs/heads/master@{#806883}
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index 68e1a00..39787dba 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -203,6 +203,13 @@
const base::Feature kDynamicMaxAutocomplete{"OmniboxDynamicMaxAutocomplete",
base::FEATURE_DISABLED_BY_DEFAULT};
+// Feature used to enable bubbling URL suggestions above search suggestions
+// after grouping if 2 conditions are met:
+// 1) There must be a sufficient score gap between the adjacent searches.
+// 2) There must be a sufficient buffer between the URL and search scores.
+const base::Feature kBubbleUrlSuggestions{"OmniboxBubbleUrlSuggestions",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// If enabled, when the user clears the whole omnibox text (i.e. via Backspace),
// Chrome will request remote ZeroSuggest suggestions for the OTHER page
// classification (contextual web).