Navi: Add finch options for app and shortcut variation.

Bug: 967785
Change-Id: I12c99470ed982adee57dc5f73b109fda618ba379
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1636275
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Commit-Queue: Hector Carmona <hcarmona@chromium.org>
Cr-Commit-Position: refs/heads/master@{#664907}
diff --git a/chrome/browser/ui/webui/welcome/nux_helper.cc b/chrome/browser/ui/webui/welcome/nux_helper.cc
index b900cc5..e984fb0 100644
--- a/chrome/browser/ui/webui/welcome/nux_helper.cc
+++ b/chrome/browser/ui/webui/welcome/nux_helper.cc
@@ -98,6 +98,20 @@
   return CanShowSigninModule(policies);
 }
 
+#if defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)
+// These feature flags are used to tie our experiment to specific studies.
+// go/navi-app-variation for details.
+// TODO(hcarmona): find a solution that scales better.
+const base::Feature kNaviControlEnabled = {"NaviControlEnabled",
+                                           base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kNaviAppVariationEnabled = {
+    "NaviAppVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kNaviNTPVariationEnabled = {
+    "NaviNTPVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kNaviShortcutVariationEnabled = {
+    "NaviShortcutVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
+#endif  // defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)
+
 // This feature flag is used to force the feature to be turned on for non-win
 // and non-branded builds, like with tests or development on other platforms.
 const base::Feature kNuxOnboardingForceEnabled = {
@@ -175,6 +189,17 @@
   ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(
       "NaviOnboardingSynthetic", onboard_group);
 
+  // Check for feature based on onboarding group.
+  // TODO(hcarmona): find a solution that scales better.
+  if (onboard_group.compare("ControlSynthetic-008") == 0)
+    base::FeatureList::IsEnabled(kNaviControlEnabled);
+  else if (onboard_group.compare("AppVariationSynthetic-008") == 0)
+    base::FeatureList::IsEnabled(kNaviAppVariationEnabled);
+  else if (onboard_group.compare("NTPVariationSynthetic-008") == 0)
+    base::FeatureList::IsEnabled(kNaviNTPVariationEnabled);
+  else if (onboard_group.compare("ShortcutVariationSynthetic-008") == 0)
+    base::FeatureList::IsEnabled(kNaviShortcutVariationEnabled);
+
   if (base::FeatureList::IsEnabled(nux::kNuxOnboardingFeature)) {
     return true;
   }