[omnibox] Breaks existing feature "OmniboxOnDeviceHeadProvider" into
two features used by non-incognito and incognito separately.

Tested on iPhone X.

Bug: 925072
Change-Id: I753fd676ec58b758e09d22ee35932ece5be2ae3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2154441
Reviewed-by: Joshua Pawlicki <[email protected]>
Reviewed-by: Mark Pearson <[email protected]>
Reviewed-by: Tommy Li <[email protected]>
Commit-Queue: Ce Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#762766}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 810e7d29..5ef043f 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1531,62 +1531,68 @@
          nullptr}};
 #endif  // OS_ANDROID
 
-const FeatureEntry::FeatureParam kOmniboxOnDeviceHeadSuggestAlwaysServe[] = {
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestIncognitoServeMode,
-     "always-serve"}};
-const FeatureEntry::FeatureParam kOmniboxOnDeviceHeadSuggestIncognitoOnly[] = {
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestIncognitoServeMode,
-     "incognito-only"}};
-const FeatureEntry::FeatureParam kOmniboxOnDeviceHeadSuggestRelevance1000[] = {
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput, "1000"},
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode, "decrease-relevances"}};
-const FeatureEntry::FeatureParam
-    kOmniboxOnDeviceHeadSuggestIncognitoOnlyRelevance1000[] = {
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestIncognitoServeMode,
-         "incognito-only"},
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
-         "1000"}};
-const FeatureEntry::FeatureParam kOmniboxOnDeviceHeadSuggestDelay200Ms[] = {
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs, "200"}};
-const FeatureEntry::FeatureParam kOmniboxOnDeviceHeadSuggestDelay350Ms[] = {
-    {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs, "350"}};
-const FeatureEntry::FeatureParam
-    kOmniboxOnDeviceHeadSuggestDelay200MsAndRelevance1000[] = {
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs, "200"},
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput, "1000"},
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode,
-         "decrease-relevances"}};
-const FeatureEntry::FeatureParam
-    kOmniboxOnDeviceHeadSuggestDelay350MsAndRelevance1000[] = {
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs, "350"},
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput, "1000"},
-        {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode,
-         "decrease-relevances"}};
+const FeatureEntry::FeatureVariation
+    kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations[] = {{
+        "relevance-1000",
+        (FeatureEntry::FeatureParam[]){
+            {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
+             "1000"}},
+        1,
+        nullptr,
+    }};
 
 const FeatureEntry::FeatureVariation
-    kOmniboxOnDeviceHeadSuggestExperimentVariations[] = {
-        {"both-normal-and-incognito", kOmniboxOnDeviceHeadSuggestAlwaysServe,
-         base::size(kOmniboxOnDeviceHeadSuggestAlwaysServe), nullptr},
-        {"incognito-only", kOmniboxOnDeviceHeadSuggestIncognitoOnly,
-         base::size(kOmniboxOnDeviceHeadSuggestIncognitoOnly), nullptr},
-        {"relevance-1000", kOmniboxOnDeviceHeadSuggestRelevance1000,
-         base::size(kOmniboxOnDeviceHeadSuggestRelevance1000), nullptr},
-        {"incognito-only-relevance-1000",
-         kOmniboxOnDeviceHeadSuggestIncognitoOnlyRelevance1000,
-         base::size(kOmniboxOnDeviceHeadSuggestIncognitoOnlyRelevance1000),
-         nullptr},
-        {"request-delay-200ms", kOmniboxOnDeviceHeadSuggestDelay200Ms,
-         base::size(kOmniboxOnDeviceHeadSuggestDelay200Ms), nullptr},
-        {"request-delay-350ms", kOmniboxOnDeviceHeadSuggestDelay350Ms,
-         base::size(kOmniboxOnDeviceHeadSuggestDelay350Ms), nullptr},
-        {"delay-200ms-relevance-1000",
-         kOmniboxOnDeviceHeadSuggestDelay200MsAndRelevance1000,
-         base::size(kOmniboxOnDeviceHeadSuggestDelay200MsAndRelevance1000),
-         nullptr},
-        {"delay-350ms-relevance-1000",
-         kOmniboxOnDeviceHeadSuggestDelay350MsAndRelevance1000,
-         base::size(kOmniboxOnDeviceHeadSuggestDelay350MsAndRelevance1000),
-         nullptr}};
+    kOmniboxOnDeviceHeadSuggestNonIncognitoExperimentVariations[] = {
+        {
+            "relevance-1000",
+            (FeatureEntry::FeatureParam[]){
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
+                 "1000"},
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode,
+                 "decrease-relevances"}},
+            2,
+            nullptr,
+        },
+        {
+            "request-delay-100ms",
+            (FeatureEntry::FeatureParam[]){
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs,
+                 "100"}},
+            1,
+            nullptr,
+        },
+        {
+            "delay-100ms-relevance-1000",
+            (FeatureEntry::FeatureParam[]){
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs,
+                 "100"},
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
+                 "1000"},
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode,
+                 "decrease-relevances"}},
+            3,
+            nullptr,
+        },
+        {
+            "request-delay-200ms",
+            (FeatureEntry::FeatureParam[]){
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs,
+                 "200"}},
+            1,
+            nullptr,
+        },
+        {
+            "delay-200ms-relevance-1000",
+            (FeatureEntry::FeatureParam[]){
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDelaySuggestRequestMs,
+                 "200"},
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestMaxScoreForNonUrlInput,
+                 "1000"},
+                {OmniboxFieldTrial::kOnDeviceHeadSuggestDemoteMode,
+                 "decrease-relevances"}},
+            3,
+            nullptr,
+        }};
 
 const FeatureEntry::FeatureParam
     kQuietNotificationPromptsWithAdaptiveActivation[] = {
@@ -3187,13 +3193,23 @@
                                     "OmniboxSearchEngineLogo")},
 #endif  // defined(OS_ANDROID)
 
-    {"omnibox-on-device-head-suggestions",
-     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsName,
-     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsDescription, kOsAll,
+    {"omnibox-on-device-head-suggestions-incognito",
+     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoName,
+     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoDescription,
+     kOsAll,
      FEATURE_WITH_PARAMS_VALUE_TYPE(
-         omnibox::kOnDeviceHeadProvider,
-         kOmniboxOnDeviceHeadSuggestExperimentVariations,
-         "OmniboxOnDeviceHeadSuggest")},
+         omnibox::kOnDeviceHeadProviderIncognito,
+         kOmniboxOnDeviceHeadSuggestIncognitoExperimentVariations,
+         "OmniboxOnDeviceHeadSuggestIncognito")},
+
+    {"omnibox-on-device-head-suggestions-non-incognito",
+     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsNonIncognitoName,
+     flag_descriptions::kOmniboxOnDeviceHeadSuggestionsNonIncognitoDescription,
+     kOsAll,
+     FEATURE_WITH_PARAMS_VALUE_TYPE(
+         omnibox::kOnDeviceHeadProviderNonIncognito,
+         kOmniboxOnDeviceHeadSuggestNonIncognitoExperimentVariations,
+         "OmniboxOnDeviceHeadSuggestNonIncognito")},
 
     {"omnibox-on-focus-suggestions",
      flag_descriptions::kOmniboxOnFocusSuggestionsName,