[omnibox] Add two new flags for PZPS in NTP Omnibox and NTP Realbox

This adds two new flags for PZPS in NTP Omnibox and NTP Realbox.

It's to enable future unbundled experiments, as well as to simplify
the ZeroSuggest configuration. We are moving away from
ZeroSuggestVariant, as that cannot support multiple simultaneous
studies.

I tested it with this command line flag:
(after deleting the ZeroSuggestVariant entries in
fieldtrial_testing_config.json)

autoninja -C out/rel && out/rel/chrome
  --enable-features=OmniboxProactiveZeroSuggestionsOnNTPRealbox
  --force-variation-ids=t3317462 --user-data-dir=~/tmpchromium

Bug: 1052522
Change-Id: Id2e5a0f85f0bb4190dd1122888bf5cfb6f0657b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128686
Commit-Queue: Tommy Li <[email protected]>
Reviewed-by: Moe Ahmadi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#764543}
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index a6a84b60..c4a3e98d 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -228,11 +228,14 @@
 const base::Feature kNewSearchFeatures{"OmniboxNewSearchFeatures",
                                        base::FEATURE_ENABLED_BY_DEFAULT};
 
-// This feature exists to flexibly configure on-focus suggestions using the
-// "ZeroSuggestVariant" per-page-classification parameter.
+// Feature that configures ZeroSuggestProvider using the "ZeroSuggestVariant"
+// per-page-classification parameter.
 //
-// However, since only one experiment can configure this feature, it should
-// generally not be used. Instead, create a new base::Feature for each feature.
+// Generally speaking - do NOT use this for future server-side experiments.
+// Instead, create your a new narrowly scoped base::Feature for each experiment.
+//
+// Because our Field Trial system can only configure this base::Feature in a
+// single study, and does not merge parameters, using this creates conflicts.
 const base::Feature kOnFocusSuggestions{"OmniboxOnFocusSuggestions",
                                         base::FEATURE_ENABLED_BY_DEFAULT};
 
@@ -243,6 +246,17 @@
     "OmniboxOnFocusSuggestionsContextualWeb",
     base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Enables Proactive ZeroSuggestions (PZPS) on the NTP, for the Omnibox and
+// Realbox respectively. Note: enabling this feature merely makes
+// ZeroSuggestProvider send the request. There are additional requirements,
+// like the user being signed-in, and the suggest server having PZPS enabled.
+const base::Feature kProactiveZeroSuggestionsOnNTPOmnibox{
+    "OmniboxProactiveZeroSuggestionsOnNTPOmnibox",
+    base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kProactiveZeroSuggestionsOnNTPRealbox{
+    "OmniboxProactiveZeroSuggestionsOnNTPRealbox",
+    base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Allow suggestions to be shown to the user on the New Tab Page upon focusing
 // URL bar (the omnibox).
 const base::Feature kZeroSuggestionsOnNTP{"OmniboxZeroSuggestionsOnNTP",