[Shopping] Add flag for shopping list

This patch adds a flag for the shopping list that defaults to off.

Bug: 1205446
Change-Id: Ibeab8f36ab9d24551b9d8f3561e2aad88b3a27cb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2888213
Commit-Queue: Matt Jones <mdjones@chromium.org>
Reviewed-by: Brandon Wylie <wylieb@chromium.org>
Reviewed-by: Ayman Almadhoun <ayman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#912176}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 6dfce19..db706a9 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4986,6 +4986,9 @@
      FEATURE_VALUE_TYPE(
          chrome::android::kQuickActionSearchWidgetAndroidDinoVariant)},
 
+    {"shopping-list", flag_descriptions::kShoppingListName,
+     flag_descriptions::kShoppingListDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(commerce::kShoppingList)},
 #endif  // OS_ANDROID
 
     {"enable-layout-ng", flag_descriptions::kEnableLayoutNGName,
diff --git a/chrome/browser/commerce/commerce_feature_list.cc b/chrome/browser/commerce/commerce_feature_list.cc
index 85b08c65..bac91dd 100644
--- a/chrome/browser/commerce/commerce_feature_list.cc
+++ b/chrome/browser/commerce/commerce_feature_list.cc
@@ -17,4 +17,7 @@
 
 const base::FeatureParam<bool> kDeleteAllMerchantsOnClearBrowsingHistory{
     &kCommerceMerchantViewer, "delete_all_merchants_on_clear_history", false};
+
+const base::Feature kShoppingList{"ShoppingList",
+                                  base::FEATURE_DISABLED_BY_DEFAULT};
 }  // namespace commerce
diff --git a/chrome/browser/commerce/commerce_feature_list.h b/chrome/browser/commerce/commerce_feature_list.h
index e07d773..6b3deaeb 100644
--- a/chrome/browser/commerce/commerce_feature_list.h
+++ b/chrome/browser/commerce/commerce_feature_list.h
@@ -12,6 +12,7 @@
 extern const base::Feature kCommercePriceTracking;
 extern const base::Feature kCommerceMerchantViewer;
 extern const base::FeatureParam<bool> kDeleteAllMerchantsOnClearBrowsingHistory;
+extern const base::Feature kShoppingList;
 }  // namespace commerce
 
 #endif  // CHROME_BROWSER_COMMERCE_COMMERCE_FEATURE_LIST_H_
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index c247a4f8..e2954e9e 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -5047,6 +5047,11 @@
     "expiry_milestone": 98
   },
   {
+    "name": "shopping-list",
+    "owners": [ "mdjones", "chrome-shopping-eng@google.com" ],
+    "expiry_milestone": 100
+  },
+  {
     "name": "show-autofill-type-predictions",
     "owners": [ "ftirelo", "mathp" ],
     // This is used by autofill devs to debug on Android.
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 62c1be17..c693b39 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2219,7 +2219,11 @@
     "Enables new received tab "
     "UI shown next to the profile icon instead of using system notifications.";
 
+const char kShoppingListName[] = "Shopping List";
+const char kShoppingListDescription[] = "Enable shopping list in bookmarks.";
+
 const char kSidePanelFlagId[] = "side-panel";
+
 const char kSidePanelName[] = "Side panel";
 const char kSidePanelDescription[] =
     "Enables a browser-level side panel for a useful and persistent way to "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 578b8d55..b371727 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1268,7 +1268,11 @@
 extern const char kSendTabToSelfV2Name[];
 extern const char kSendTabToSelfV2Description[];
 
+extern const char kShoppingListName[];
+extern const char kShoppingListDescription[];
+
 extern const char kSidePanelFlagId[];
+
 extern const char kSidePanelName[];
 extern const char kSidePanelDescription[];
 
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index 8d5d45f..b66bc22 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -486,6 +486,7 @@
     public static final String SHARED_HIGHLIGHTING_V2 = "SharedHighlightingV2";
     public static final String SHARED_HIGHLIGHTING_AMP = "SharedHighlightingAmp";
     public static final String SHARING_HUB_LINK_TOGGLE = "SharingHubLinkToggle";
+    public static final String SHOPPING_LIST = "ShoppingList";
     public static final String SINGLE_TOUCH_SELECT = "SingleTouchSelect";
     public static final String SHOW_TRUSTED_PUBLISHER_URL = "ShowTrustedPublisherURL";
     public static final String SMART_SUGGESTION_FOR_LARGE_DOWNLOADS =
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 9fabb38..977ee311 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -49136,6 +49136,7 @@
   <int value="-215580565"
       label="OmniboxEnableClipboardProviderImageSuggestions:disabled"/>
   <int value="-215534141" label="NativeWindowNavButtons:enabled"/>
+  <int value="-215103767" label="ShoppingList:disabled"/>
   <int value="-214618160" label="ESimPolicy:enabled"/>
   <int value="-213518852" label="protect-sync-credential:enabled"/>
   <int value="-213214894" label="enable-chromevox-arc-support"/>
@@ -50282,6 +50283,7 @@
   <int value="701766325" label="PerNavigationMojoInterface:enabled"/>
   <int value="701795774" label="WebAppEnableUrlHandlers:enabled"/>
   <int value="702060507" label="SafetyCheckWeakPasswords:disabled"/>
+  <int value="703122112" label="ShoppingList:enabled"/>
   <int value="703469777" label="AndroidNightModeTabReparenting:enabled"/>
   <int value="703621694" label="UseSodaForLiveCaption:disabled"/>
   <int value="705407202" label="AutofillSaveCardImprovedUserConsent:disabled"/>