From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 19 Jun 2022 11:00:12 +0200
Subject: Remove price/shopping/commerce integrations

License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
 chrome/android/BUILD.gn                       |  27 ---
 chrome/android/chrome_java_sources.gni        |   5 -
 chrome/android/features/tab_ui/BUILD.gn       |   7 -
 .../res/layout/large_message_card_item.xml    |   9 -
 .../java/res/layout/tab_grid_card_item.xml    |   8 -
 .../tab_management/LargeMessageCardView.java  |  30 ---
 .../LargeMessageCardViewBinder.java           |   1 -
 .../MessageCardProviderMediator.java          |   6 +-
 .../StoreTrackingUtilities.java               |   4 +-
 .../TabGridDialogCoordinator.java             |   2 +-
 .../tab_management/TabGridViewBinder.java     |  37 ----
 .../tab_management/TabGroupUiCoordinator.java |   2 +-
 .../tab_management/TabListCoordinator.java    |  25 +--
 .../tasks/tab_management/TabListMediator.java | 177 +-----------------
 .../tasks/tab_management/TabProperties.java   |   5 +-
 .../TabSelectionEditorCoordinator.java        |   2 +-
 .../TabSwitcherCoordinator.java               | 102 +---------
 .../tab_management/TabSwitcherMediator.java   |  57 ------
 .../chrome/browser/app/ChromeActivity.java    |  20 --
 .../AppMenuPropertiesDelegateImpl.java        |  16 +-
 .../browser/bookmarks/BookmarkBridge.java     |  84 ---------
 .../bookmarks/BookmarkItemsAdapter.java       |  23 ---
 .../browser/bookmarks/BookmarkManager.java    |  12 --
 .../BookmarkSaveFlowCoordinator.java          |  37 +---
 .../bookmarks/BookmarkSaveFlowMediator.java   |  69 +------
 .../browser/bookmarks/BookmarkUtils.java      |  12 +-
 .../init/ProcessInitializationHandler.java    |   5 -
 .../ContextualPageActionController.java       |   4 -
 .../chrome/browser/tab/TabHelpers.java        |   9 -
 .../tabbed_mode/TabbedRootUiCoordinator.java  |  22 ---
 .../ToolbarButtonInProductHelpController.java |  27 ---
 .../browser/toolbar/ToolbarManager.java       |  17 --
 .../chrome/browser/ui/RootUiCoordinator.java  |  22 ---
 chrome/android/java_sources.gni               |   8 -
 chrome/browser/BUILD.gn                       |   2 -
 .../price_tracking/PriceTrackingFeatures.java |   2 +-
 .../commerce/subscriptions/android/BUILD.gn   |   1 -
 .../CommerceSubscriptionsService.java         |  36 +---
 .../SubscriptionsManagerImpl.java             |  26 +--
 .../optimization_guide_keyed_service.cc       |   4 -
 chrome/browser/persisted_state_db/BUILD.gn    |   1 -
 41 files changed, 29 insertions(+), 936 deletions(-)

diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -20,10 +20,6 @@ import("//chrome/android/feed/feed_java_sources.gni")
 import("//chrome/android/modules/chrome_bundle_tmpl.gni")
 import("//chrome/android/modules/chrome_feature_module_tmpl.gni")
 import("//chrome/android/monochrome_android_manifest_jinja_variables.gni")
-import("//chrome/browser/commerce/price_tracking/android/java_sources.gni")
-import("//chrome/browser/commerce/subscriptions/android/java_sources.gni")
-import(
-    "//chrome/browser/commerce/subscriptions/test/android/test_java_sources.gni")
 import("//chrome/browser/password_manager/buildflags.gni")
 import("//chrome/browser/share/android/java_sources.gni")
 import("//chrome/chrome_paks.gni")
@@ -394,9 +390,6 @@ if (current_toolchain == default_toolchain) {
       "//chrome/browser/browser_controls/android:java",
       "//chrome/browser/commerce/android:java",
       "//chrome/browser/commerce/merchant_viewer/android:java",
-      "//chrome/browser/commerce/price_tracking/android:java",
-      "//chrome/browser/commerce/price_tracking/proto:proto_java",
-      "//chrome/browser/commerce/subscriptions/android:subscriptions_java",
       "//chrome/browser/consent_auditor/android:java",
       "//chrome/browser/contextmenu:java",
       "//chrome/browser/creator/android:java",
@@ -783,16 +776,6 @@ if (current_toolchain == default_toolchain) {
     sources += share_java_sources
     deps += share_java_deps
 
-    # TODO(crbug/1186003): Instead of adding source files, add it as a separate
-    # dependency when circular deps is resolved.
-    sources += price_tracking_java_sources
-    deps += price_tracking_java_deps
-
-    # TODO(crbug/1210158): Instead of adding source files, add it as a separate
-    # dependency when circular deps is resolved.
-    sources += commerce_subscriptions_java_sources
-    deps += commerce_subscriptions_java_deps
-
     if (enable_basic_printing) {
       deps += [ "//printing:printing_java" ]
     }
@@ -996,9 +979,6 @@ if (current_toolchain == default_toolchain) {
       "//chrome/browser/browser_controls/android:junit",
       "//chrome/browser/commerce/android:java",
       "//chrome/browser/commerce/merchant_viewer/android:junit",
-      "//chrome/browser/commerce/price_tracking/android:java",
-      "//chrome/browser/commerce/price_tracking/proto:proto_java",
-      "//chrome/browser/commerce/subscriptions/android:subscriptions_java",
       "//chrome/browser/contextmenu:java",
       "//chrome/browser/creator/android:java",
       "//chrome/browser/creator/android:junit",
@@ -1390,7 +1370,6 @@ if (current_toolchain == default_toolchain) {
       "//chrome/browser/android/browserservices/intents:java",
       "//chrome/browser/android/browserservices/verification:java",
       "//chrome/browser/android/crypto:java",
-      "//chrome/browser/commerce/subscriptions/android:subscriptions_java",
       "//chrome/browser/contextmenu:java",
       "//chrome/browser/download/android:download_java_tests",
       "//chrome/browser/download/android:file_provider_java",
@@ -1520,8 +1499,6 @@ if (current_toolchain == default_toolchain) {
       "//chrome/browser/commerce/android:javatests",
       "//chrome/browser/commerce/merchant_viewer/android:java",
       "//chrome/browser/commerce/merchant_viewer/android:javatests",
-      "//chrome/browser/commerce/price_tracking/android:java",
-      "//chrome/browser/commerce/subscriptions/android:subscriptions_java",
       "//chrome/browser/content_creation/notes/internal/android:java",
       "//chrome/browser/contextmenu:java",
       "//chrome/browser/dependency_injection:java",
@@ -1799,8 +1776,6 @@ if (current_toolchain == default_toolchain) {
 
     deps += feed_test_deps
 
-    deps += commerce_subscriptions_java_test_deps
-
     if (enable_basic_printing) {
       deps += [ "//printing:printing_java" ]
     }
@@ -4158,8 +4133,6 @@ group("jni_headers") {
     "//chrome/browser/android/browserservices/verification:jni_headers",
     "//chrome/browser/battery/android:jni_headers",
     "//chrome/browser/commerce/merchant_viewer/android:jni_headers",
-    "//chrome/browser/commerce/price_tracking/android:jni_headers",
-    "//chrome/browser/commerce/subscriptions/android:jni_headers",
     "//chrome/browser/contextmenu:jni_headers",
     "//chrome/browser/download/android:jni_headers",
     "//chrome/browser/enterprise/util:jni_headers",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -197,10 +197,6 @@ chrome_java_sources = [
   "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
   "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java",
   "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkMetrics.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkShoppingItemRow.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkTagChipList.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/PowerBookmarkUtils.java",
   "java/src/org/chromium/chrome/browser/bookmarks/ReadingListFeatures.java",
   "java/src/org/chromium/chrome/browser/bookmarks/ReadingListSectionHeader.java",
   "java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java",
@@ -948,7 +944,6 @@ chrome_java_sources = [
   "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
   "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
   "java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java",
-  "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider.java",
   "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java",
   "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
   "java/src/org/chromium/chrome/browser/settings/MainSettings.java",
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn
--- a/chrome/android/features/tab_ui/BUILD.gn
+++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -110,11 +110,6 @@ android_library("java") {
     "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardViewUtils.java",
     "java/src/org/chromium/chrome/browser/tasks/tab_management/MessageService.java",
     "java/src/org/chromium/chrome/browser/tasks/tab_management/MultiThumbnailCardProvider.java",
-    "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceCardView.java",
-    "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceMessageCardViewModel.java",
-    "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceMessageService.java",
-    "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingDialogCoordinator.java",
-    "java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingDialogView.java",
     "java/src/org/chromium/chrome/browser/tasks/tab_management/SelectableTabGridView.java",
     "java/src/org/chromium/chrome/browser/tasks/tab_management/StoreHoursCardView.java",
     "java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java",
@@ -194,7 +189,6 @@ android_library("java") {
     "//chrome/browser/android/lifecycle:java",
     "//chrome/browser/back_press/android:java",
     "//chrome/browser/browser_controls/android:java",
-    "//chrome/browser/commerce/price_tracking/android:java",
     "//chrome/browser/endpoint_fetcher:java",
     "//chrome/browser/feature_engagement:java",
     "//chrome/browser/feed/android:java",
@@ -276,7 +270,6 @@ android_library("unit_device_javatests") {
     "//base/test:test_support_java",
     "//chrome/android/features/tab_ui:java",
     "//chrome/android/features/tab_ui:tab_suggestions_java",
-    "//chrome/browser/commerce/price_tracking/android:java",
     "//chrome/browser/flags:java",
     "//chrome/browser/optimization_guide/android:java",
     "//chrome/browser/profiles/android:java",
diff --git a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
--- a/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
+++ b/chrome/android/features/tab_ui/java/res/layout/large_message_card_item.xml
@@ -22,15 +22,6 @@ found in the LICENSE file.
             android:layout_height="match_parent"
             android:layout_marginBottom="16dp"
             android:orientation="vertical">
-            <org.chromium.chrome.browser.tasks.tab_management.PriceCardView
-                android:id="@+id/price_info_box"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="16dp"
-                android:layout_marginBottom="16dp"
-                android:layout_gravity="center"
-                android:gravity="center_horizontal"
-                android:visibility="gone" />
             <org.chromium.ui.widget.ChromeImageView
                 android:id="@+id/icon"
                 android:layout_width="26dp"
diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml
--- a/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml
+++ b/chrome/android/features/tab_ui/java/res/layout/tab_grid_card_item.xml
@@ -62,14 +62,6 @@ found in the LICENSE file.
                 app:cornerRadiusTopEnd="@dimen/tab_grid_card_thumbnail_corner_radius_top"
                 app:cornerRadiusBottomStart="@dimen/tab_grid_card_thumbnail_corner_radius_bottom"
                 app:cornerRadiusBottomEnd="@dimen/tab_grid_card_thumbnail_corner_radius_bottom"/>
-            <org.chromium.chrome.browser.tasks.tab_management.PriceCardView
-                android:id="@+id/price_info_box_outer"
-                android:layout_below="@id/tab_title"
-                android:background="@drawable/price_card_scrim"
-                android:layout_width="match_parent"
-                android:layout_height="56dp"
-                android:layout_marginStart="4dp"
-                android:visibility="gone"/>
             <org.chromium.chrome.browser.tasks.tab_management.CouponCardView
                 android:id="@+id/coupon_info_box_outer"
                 android:layout_below="@id/tab_title"
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardView.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardView.java
@@ -40,7 +40,6 @@ class LargeMessageCardView extends FrameLayout {
     private final Context mContext;
     private final int mLandscapeSidePadding;
     private MaterialCardViewNoShadow mMaterialCardViewNoShadow;
-    private PriceCardView mPriceInfoBox;
     private ChromeImageView mIcon;
     private TextView mTitle;
     private TextView mDescription;
@@ -60,7 +59,6 @@ class LargeMessageCardView extends FrameLayout {
         super.onFinishInflate();
 
         mMaterialCardViewNoShadow = findViewById(R.id.large_message_card_view);
-        mPriceInfoBox = findViewById(R.id.price_info_box);
         mIcon = findViewById(R.id.icon);
         mTitle = findViewById(R.id.title);
         mDescription = findViewById(R.id.description);
@@ -151,18 +149,6 @@ class LargeMessageCardView extends FrameLayout {
         mCloseButton.setOnClickListener(listener);
     }
 
-    /**
-     * Setup the price info box.
-     */
-    void setupPriceInfoBox(@Nullable ShoppingPersistedTabData.PriceDrop priceDrop) {
-        if (priceDrop != null) {
-            mPriceInfoBox.setPriceStrings(priceDrop.price, priceDrop.previousPrice);
-            mPriceInfoBox.setVisibility(View.VISIBLE);
-        } else {
-            mPriceInfoBox.setVisibility(View.GONE);
-        }
-    }
-
     /**
      * Set icon drawable.
      * @param iconDrawable Drawable to be shown.
@@ -204,22 +190,6 @@ class LargeMessageCardView extends FrameLayout {
         }
     }
 
-    // TODO(crbug.com/1166704): This method has little to do with this view. Move this function to a
-    // price tracking UI utility class.
-    /**
-     * When user taps on "Show me" on PriceWelcomeMessage, we scroll them to the binding tab, then a
-     * blue tooltip appears and points to the price drop indicator.
-     */
-    public static void showPriceDropTooltip(View view) {
-        ViewRectProvider rectProvider = new ViewRectProvider(view);
-        TextBubble textBubble = new TextBubble(view.getContext(), view,
-                R.string.price_drop_spotted_lower_price, R.string.price_drop_spotted_lower_price,
-                true, rectProvider, ChromeAccessibilityUtil.get().isAccessibilityEnabled());
-        textBubble.setFocusable(true);
-        textBubble.setDismissOnTouchInteraction(true);
-        textBubble.show();
-    }
-
     /**
      * Update Message Card when switching between normal mode and incognito mode.
      *
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/LargeMessageCardViewBinder.java
@@ -41,7 +41,6 @@ class LargeMessageCardViewBinder {
             itemView.setSecondaryActionButtonOnClickListener(
                     model.get(MessageCardViewProperties.SECONDARY_ACTION_BUTTON_CLICK_HANDLER));
         } else if (MessageCardViewProperties.PRICE_DROP == propertyKey) {
-            itemView.setupPriceInfoBox(model.get(MessageCardViewProperties.PRICE_DROP));
         } else if (MessageCardViewProperties.ICON_PROVIDER == propertyKey) {
             itemView.setIconDrawable(
                     model.get(MessageCardViewProperties.ICON_PROVIDER).getIconDrawable());
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardProviderMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardProviderMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardProviderMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/MessageCardProviderMediator.java
@@ -112,10 +112,6 @@ public class MessageCardProviderMediator implements MessageService.MessageObserv
                 assert data instanceof IphMessageService.IphMessageData;
                 return IphMessageCardViewModel.create(mContext, this::invalidateShownMessage,
                         (IphMessageService.IphMessageData) data);
-            case PRICE_MESSAGE:
-                assert data instanceof PriceMessageService.PriceMessageData;
-                return PriceMessageCardViewModel.create(mContext, this::invalidateShownMessage,
-                        (PriceMessageService.PriceMessageData) data);
             case INCOGNITO_REAUTH_PROMO_MESSAGE:
                 assert data
                         instanceof IncognitoReauthPromoMessageService.IncognitoReauthMessageData;
@@ -167,4 +163,4 @@ public class MessageCardProviderMediator implements MessageService.MessageObserv
     Map<Integer, Message> getShownMessageItemsForTesting() {
         return mShownMessageItems;
     }
-}
\ No newline at end of file
+}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/StoreTrackingUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/StoreTrackingUtilities.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/StoreTrackingUtilities.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/StoreTrackingUtilities.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.tasks.tab_management;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 
 /**
  * A class to handle whether store hours feature is enabled.
@@ -14,7 +13,6 @@ public class StoreTrackingUtilities {
      * @return Whether the show store hours on tabs feature is enabled.
      */
     public static boolean isStoreHoursOnTabsEnabled() {
-        return ChromeFeatureList.sStoreHoursAndroid.isEnabled()
-                && !PriceTrackingUtilities.isTrackPricesOnTabsEnabled();
+        return ChromeFeatureList.sStoreHoursAndroid.isEnabled();
     }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
@@ -97,7 +97,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
                                 tabId, thumbnailSize, callback, forceUpdate, writeBack);
                     },
                     null, false, gridCardOnClickListenerProvider,
-                    mMediator.getTabGridDialogHandler(), TabProperties.UiType.CLOSABLE, null, null,
+                    mMediator.getTabGridDialogHandler(), TabProperties.UiType.CLOSABLE, null,
                     containerView, false, mComponentName, rootView, null);
             TabListRecyclerView recyclerView = mTabListCoordinator.getContainerView();
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -205,24 +205,9 @@ class TabGridViewBinder {
                 pageInfoButton.setVisibility(View.GONE);
             } else {
                 // Search query and price string are mutually exclusive
-                assert model.get(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER) == null;
                 pageInfoButton.setVisibility(View.VISIBLE);
                 pageInfoButton.getPrimaryTextView().setText(query);
             }
-        } else if (TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER == propertyKey) {
-            fetchPriceDrop(model, (priceDrop) -> {
-                PriceCardView priceCardView =
-                        (PriceCardView) view.fastFindViewById(R.id.price_info_box_outer);
-                if (priceDrop == null) {
-                    priceCardView.setVisibility(View.GONE);
-                    return;
-                }
-                priceCardView.setPriceStrings(priceDrop.price, priceDrop.previousPrice);
-                priceCardView.setVisibility(View.VISIBLE);
-                priceCardView.setContentDescription(
-                        view.getResources().getString(R.string.accessibility_tab_price_card,
-                                priceDrop.previousPrice, priceDrop.price));
-            }, true);
         } else if (TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER == propertyKey) {
             CouponCardView couponCardView =
                     (CouponCardView) view.fastFindViewById(R.id.coupon_info_box_outer);
@@ -269,13 +254,6 @@ class TabGridViewBinder {
                 storeHoursCardView.setVisibility(View.GONE);
             }
         } else if (TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP == propertyKey) {
-            if (model.get(TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP)) {
-                PriceCardView priceCardView =
-                        (PriceCardView) view.fastFindViewById(R.id.price_info_box_outer);
-                assert priceCardView.getVisibility() == View.VISIBLE;
-                LargeMessageCardView.showPriceDropTooltip(
-                        priceCardView.findViewById(R.id.current_price));
-            }
         } else if (TabProperties.PAGE_INFO_LISTENER == propertyKey) {
             TabListMediator.TabActionListener listener =
                     model.get(TabProperties.PAGE_INFO_LISTENER);
@@ -337,21 +315,6 @@ class TabGridViewBinder {
 
     private static void fetchPriceDrop(PropertyModel model,
             Callback<ShoppingPersistedTabData.PriceDrop> callback, boolean shouldLog) {
-        if (model.get(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER) == null) {
-            callback.onResult(null);
-            return;
-        }
-        model.get(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER)
-                .fetch((shoppingPersistedTabData) -> {
-                    if (shoppingPersistedTabData == null) {
-                        callback.onResult(null);
-                        return;
-                    }
-                    if (shouldLog) {
-                        shoppingPersistedTabData.logPriceDropMetrics(SHOPPING_METRICS_IDENTIFIER);
-                    }
-                    callback.onResult(shoppingPersistedTabData.getPriceDrop());
-                });
     }
 
     private static void updateThumbnail(ViewLookupCachingFrameLayout view, PropertyModel model) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java
@@ -144,7 +144,7 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T
             boolean actionOnAllRelatedTabs = TabUiFeatureUtilities.isConditionalTabStripEnabled();
             mTabStripCoordinator = new TabListCoordinator(TabListCoordinator.TabListMode.STRIP,
                     mContext, mTabModelSelector, null, null, actionOnAllRelatedTabs, null, null,
-                    TabProperties.UiType.STRIP, null, null, mTabListContainerView, true,
+                    TabProperties.UiType.STRIP, null, mTabListContainerView, true,
                     COMPONENT_NAME, mRootView, onModelTokenChange);
             mTabStripCoordinator.initWithNative(mDynamicResourceLoaderSupplier.get());
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -55,7 +55,7 @@ import java.util.List;
  * Coordinator for showing UI for a list of tabs. Can be used in GRID or STRIP modes.
  */
 public class TabListCoordinator
-        implements PriceMessageService.PriceWelcomeMessageProvider, DestroyObserver {
+        implements DestroyObserver {
     /**
      * Modes of showing the list of tabs.
      *
@@ -111,7 +111,6 @@ public class TabListCoordinator
      * @param itemType The item type to put in the list of tabs.
      * @param selectionDelegateProvider Provider to provide selected Tabs for a selectable tab list.
      *                                  It's NULL when selection is not possible.
-     * @param priceWelcomeMessageController A controller to show PriceWelcomeMessage.
      * @param parentView {@link ViewGroup} The root view of the UI.
      * @param attachToParent Whether the UI should attach to root view.
      * @param componentName A unique string uses to identify different components for UMA recording.
@@ -128,8 +127,6 @@ public class TabListCoordinator
                     .GridCardOnClickListenerProvider gridCardOnClickListenerProvider,
             @Nullable TabListMediator.TabGridDialogHandler dialogHandler, @UiType int itemType,
             @Nullable TabListMediator.SelectionDelegateProvider selectionDelegateProvider,
-            @Nullable TabSwitcherMediator
-                    .PriceWelcomeMessageController priceWelcomeMessageController,
             @NonNull ViewGroup parentView, boolean attachToParent, String componentName,
             @NonNull ViewGroup rootView, @Nullable Callback<Object> onModelTokenChange) {
         mMode = mode;
@@ -233,7 +230,7 @@ public class TabListCoordinator
         mMediator = new TabListMediator(context, mModel, mMode, tabModelSelector, thumbnailProvider,
                 titleProvider, tabListFaviconProvider, actionOnRelatedTabs,
                 selectionDelegateProvider, gridCardOnClickListenerProvider, dialogHandler,
-                priceWelcomeMessageController, componentName, itemType);
+                componentName, itemType);
 
         try (TraceEvent e = TraceEvent.scoped("TabListCoordinator.setupRecyclerView")) {
             if (!attachToParent) {
@@ -377,13 +374,6 @@ public class TabListCoordinator
         return tabListRect.top;
     }
 
-    /**
-     * @see TabListMediator#getPriceWelcomeMessageInsertionIndex().
-     */
-    int getPriceWelcomeMessageInsertionIndex() {
-        return mMediator.getPriceWelcomeMessageInsertionIndex();
-    }
-
     /**
      * @return The container {@link androidx.recyclerview.widget.RecyclerView} that is showing the
      *         tab list UI.
@@ -533,15 +523,4 @@ public class TabListCoordinator
     void removeSpecialListItem(@UiType int uiType, int itemIdentifier) {
         mMediator.removeSpecialItemFromModel(uiType, itemIdentifier);
     }
-
-    // PriceWelcomeMessageService.PriceWelcomeMessageProvider implementation.
-    @Override
-    public int getTabIndexFromTabId(int tabId) {
-        return mModel.indexFromId(tabId);
-    }
-
-    @Override
-    public void showPriceDropTooltip(int index) {
-        mModel.get(index).model.set(TabProperties.SHOULD_SHOW_PRICE_DROP_TOOLTIP, true);
-    }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -45,8 +45,6 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
@@ -71,11 +69,9 @@ import org.chromium.chrome.browser.tasks.tab_groups.EmptyTabGroupModelFilterObse
 import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter;
 import org.chromium.chrome.browser.tasks.tab_groups.TabGroupTitleUtils;
 import org.chromium.chrome.browser.tasks.tab_groups.TabGroupUtils;
-import org.chromium.chrome.browser.tasks.tab_management.PriceMessageService.PriceTabData;
 import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode;
 import org.chromium.chrome.browser.tasks.tab_management.TabListFaviconProvider.TabFavicon;
 import org.chromium.chrome.browser.tasks.tab_management.TabProperties.UiType;
-import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherMediator.PriceWelcomeMessageController;
 import org.chromium.chrome.tab_ui.R;
 import org.chromium.components.browser_ui.styles.SemanticColorUtils;
 import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
@@ -186,51 +182,6 @@ class TabListMediator {
         boolean isReorderAction(int action);
     }
 
-    /**
-     * Provides capability to asynchronously acquire {@link ShoppingPersistedTabData}
-     */
-    static class ShoppingPersistedTabDataFetcher {
-        protected Tab mTab;
-        protected PriceWelcomeMessageController mPriceWelcomeMessageController;
-
-        /**
-         * @param tab {@link Tab} {@link ShoppingPersistedTabData} will be acquired for.
-         * @param priceWelcomeMessageController to show the price welcome message.
-         */
-        ShoppingPersistedTabDataFetcher(
-                Tab tab, @Nullable PriceWelcomeMessageController priceWelcomeMessageController) {
-            mTab = tab;
-            mPriceWelcomeMessageController = priceWelcomeMessageController;
-        }
-
-        /**
-         * Asynchronously acquire {@link ShoppingPersistedTabData}
-         * @param callback {@link Callback} to pass {@link ShoppingPersistedTabData} back in
-         */
-        public void fetch(Callback<ShoppingPersistedTabData> callback) {
-            ShoppingPersistedTabData.from(mTab, (res) -> {
-                callback.onResult(res);
-                maybeShowPriceWelcomeMessage(res);
-            });
-        }
-
-        @VisibleForTesting
-        void maybeShowPriceWelcomeMessage(
-                @Nullable ShoppingPersistedTabData shoppingPersistedTabData) {
-            // Avoid inserting message while RecyclerView is computing a layout.
-            new Handler().post(() -> {
-                if (!PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled()
-                        || (mPriceWelcomeMessageController == null)
-                        || (shoppingPersistedTabData == null)
-                        || (shoppingPersistedTabData.getPriceDrop() == null)) {
-                    return;
-                }
-                mPriceWelcomeMessageController.showPriceWelcomeMessage(
-                        new PriceTabData(mTab.getId(), shoppingPersistedTabData.getPriceDrop()));
-            });
-        }
-    }
-
     /**
      * Provides capability to asynchronously acquire {@link StorePersistedTabData}
      */
@@ -379,7 +330,6 @@ class TabListMediator {
     private final TabGridDialogHandler mTabGridDialogHandler;
     private final String mComponentName;
     private final TabListFaviconProvider mTabListFaviconProvider;
-    private final PriceWelcomeMessageController mPriceWelcomeMessageController;
 
     private ThumbnailProvider mThumbnailProvider;
     private boolean mActionsOnAllRelatedTabs;
@@ -582,7 +532,6 @@ class TabListMediator {
      * @param gridCardOnClickListenerProvider Provides the onClickListener for opening dialog when
      *                                        click on a grid card.
      * @param dialogHandler A handler to handle requests about updating TabGridDialog.
-     * @param priceWelcomeMessageController A controller to show PriceWelcomeMessage.
      * @param componentName This is a unique string to identify different components.
      * @param uiType The type of UI this mediator should be building.
      */
@@ -593,7 +542,6 @@ class TabListMediator {
             @Nullable SelectionDelegateProvider selectionDelegateProvider,
             @Nullable GridCardOnClickListenerProvider gridCardOnClickListenerProvider,
             @Nullable TabGridDialogHandler dialogHandler,
-            @Nullable PriceWelcomeMessageController priceWelcomeMessageController,
             String componentName, @UiType int uiType) {
         mContext = context;
         mTabModelSelector = tabModelSelector;
@@ -608,7 +556,6 @@ class TabListMediator {
         mTabGridDialogHandler = dialogHandler;
         mActionsOnAllRelatedTabs = actionOnRelatedTabs;
         mUiType = uiType;
-        mPriceWelcomeMessageController = priceWelcomeMessageController;
 
         mTabModelObserver = new TabModelObserver() {
             @Override
@@ -805,35 +752,6 @@ class TabListMediator {
         mTabGridItemTouchHelperCallback = new TabGridItemTouchHelperCallback(context, mModel,
                 mTabModelSelector, mTabClosedListener, mTabGridDialogHandler, mComponentName,
                 mActionsOnAllRelatedTabs, mMode);
-
-        // Right now we need to update layout only if there is a price welcome message card in tab
-        // switcher.
-        if (mMode == TabListMode.GRID && mUiType != UiType.SELECTABLE
-                && PriceTrackingFeatures.isPriceTrackingEnabled()) {
-            mListObserver = new ListObserver<Void>() {
-                @Override
-                public void onItemRangeInserted(ListObservable source, int index, int count) {
-                    updateLayout();
-                }
-
-                @Override
-                public void onItemRangeRemoved(ListObservable source, int index, int count) {
-                    updateLayout();
-                }
-
-                @Override
-                public void onItemRangeChanged(
-                        ListObservable<Void> source, int index, int count, @Nullable Void payload) {
-                    updateLayout();
-                }
-
-                @Override
-                public void onItemMoved(ListObservable source, int curIndex, int newIndex) {
-                    updateLayout();
-                }
-            };
-            mModel.addObserver(mListObserver);
-        }
     }
 
     public void initWithNative(Profile profile) {
@@ -1259,9 +1177,6 @@ class TabListMediator {
             Collections.sort(tabsList, LAST_SHOWN_COMPARATOR);
         }
         mVisible = tabsList != null;
-        if (tabs != null) {
-            recordPriceAnnotationsEnabledMetrics();
-        }
         if (areTabsUnchanged(tabsList)) {
             if (tabsList == null) return true;
             for (int i = 0; i < tabsList.size(); i++) {
@@ -1326,11 +1241,6 @@ class TabListMediator {
 
     void hardCleanup() {
         assert !mVisible;
-        if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
-                && (PriceTrackingFeatures.isPriceDropIphEnabled()
-                        || PriceTrackingFeatures.isPriceDropBadgeEnabled())) {
-            saveSeenPriceDrops();
-        }
         sViewedTabIds.clear();
     }
 
@@ -1491,25 +1401,6 @@ class TabListMediator {
      * @param recyclerView the {@link TabListRecyclerView} to add the listener too.
      */
     void registerOnScrolledListener(RecyclerView recyclerView) {
-        if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
-                && (PriceTrackingFeatures.isPriceDropIphEnabled()
-                        || PriceTrackingFeatures.isPriceDropBadgeEnabled())) {
-            mRecyclerView = recyclerView;
-            mOnScrollListener = new OnScrollListener() {
-                @Override
-                public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                    if (!mTabModelSelector.isIncognitoSelected()) {
-                        for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
-                            if (mRecyclerView.getLayoutManager().isViewPartiallyVisible(
-                                        mRecyclerView.getChildAt(i), false, true)) {
-                                addViewedTabId(i);
-                            }
-                        }
-                    }
-                }
-            };
-            mRecyclerView.addOnScrollListener(mOnScrollListener);
-        }
     }
 
     private void unregisterOnScrolledListener() {
@@ -1887,34 +1778,6 @@ class TabListMediator {
     }
 
     private void setupPersistedTabDataFetcherForTab(PseudoTab pseudoTab, int index) {
-        if (mMode == TabListMode.GRID && pseudoTab.hasRealTab() && !pseudoTab.isIncognito()) {
-            if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
-                    && isUngroupedTab(pseudoTab.getId())) {
-                mModel.get(index).model.set(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER,
-                        new ShoppingPersistedTabDataFetcher(
-                                pseudoTab.getTab(), mPriceWelcomeMessageController));
-            } else {
-                mModel.get(index).model.set(
-                        TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER, null);
-            }
-            if (StoreTrackingUtilities.isStoreHoursOnTabsEnabled()
-                    && isUngroupedTab(pseudoTab.getId())) {
-                mModel.get(index).model.set(TabProperties.STORE_PERSISTED_TAB_DATA_FETCHER,
-                        new StorePersistedTabDataFetcher(pseudoTab.getTab()));
-            } else {
-                mModel.get(index).model.set(TabProperties.STORE_PERSISTED_TAB_DATA_FETCHER, null);
-            }
-            if (CouponUtilities.isCouponsOnTabsEnabled() && isUngroupedTab(pseudoTab.getId())) {
-                mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER,
-                        new CouponPersistedTabDataFetcher(pseudoTab.getTab()));
-            } else {
-                mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER, null);
-            }
-        } else {
-            mModel.get(index).model.set(TabProperties.COUPON_PERSISTED_TAB_DATA_FETCHER, null);
-            mModel.get(index).model.set(TabProperties.SHOPPING_PERSISTED_TAB_DATA_FETCHER, null);
-            mModel.get(index).model.set(TabProperties.STORE_PERSISTED_TAB_DATA_FETCHER, null);
-        }
     }
 
     @VisibleForTesting
@@ -2022,23 +1885,6 @@ class TabListMediator {
         return false;
     }
 
-    /**
-     * The PriceWelcomeMessage should be in view when user enters the tab switcher, so we put it
-     * exactly below the currently selected tab.
-     *
-     * @return Where the PriceWelcomeMessage should be inserted in the {@link TabListModel} when
-     *         user enters the tab switcher.
-     */
-    int getPriceWelcomeMessageInsertionIndex() {
-        assert mGridLayoutManager != null;
-        int spanCount = mGridLayoutManager.getSpanCount();
-        int selectedTabIndex = mModel.indexOfNthTabCard(
-                mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter().index());
-        int indexBelowSelectedTab = (selectedTabIndex / spanCount + 1) * spanCount;
-        int indexAfterLastTab = mModel.getTabIndexBefore(mModel.size()) + 1;
-        return Math.min(indexBelowSelectedTab, indexAfterLastTab);
-    }
-
     /**
      * Update the layout of tab switcher to make it compact. Because now we have messages within the
      * tabs like PriceMessage and these messages take up the entire row, some operations like
@@ -2049,7 +1895,7 @@ class TabListMediator {
     void updateLayout() {
         // Right now we need to update layout only if there is a price welcome message card in tab
         // switcher.
-        if (!PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled()) return;
+        if ((true)) return;
         assert mGridLayoutManager != null;
         int spanCount = mGridLayoutManager.getSpanCount();
         GridLayoutManager.SpanSizeLookup spanSizeLookup = mGridLayoutManager.getSpanSizeLookup();
@@ -2141,25 +1987,4 @@ class TabListMediator {
     private boolean isShowingTabsInMRUOrder() {
         return TabSwitcherCoordinator.isShowingTabsInMRUOrder(mMode);
     }
-
-    @VisibleForTesting
-    void recordPriceAnnotationsEnabledMetrics() {
-        if (mMode != TabListMode.GRID || !mActionsOnAllRelatedTabs
-                || !PriceTrackingFeatures.isPriceTrackingEligible()) {
-            return;
-        }
-        SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance();
-        if (System.currentTimeMillis()
-                        - preferencesManager.readLong(
-                                ChromePreferenceKeys
-                                        .PRICE_TRACKING_ANNOTATIONS_ENABLED_METRICS_TIMESTAMP,
-                                -1)
-                >= PriceTrackingFeatures.getAnnotationsEnabledMetricsWindowDurationMilliSeconds()) {
-            RecordHistogram.recordBooleanHistogram("Commerce.PriceDrop.AnnotationsEnabled",
-                    PriceTrackingUtilities.isTrackPricesOnTabsEnabled());
-            preferencesManager.writeLong(
-                    ChromePreferenceKeys.PRICE_TRACKING_ANNOTATIONS_ENABLED_METRICS_TIMESTAMP,
-                    System.currentTimeMillis());
-        }
-    }
 }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
@@ -107,9 +107,6 @@ public class TabProperties {
     public static final WritableObjectPropertyKey<String> SEARCH_QUERY =
             new WritableObjectPropertyKey<>();
 
-    public static final WritableObjectPropertyKey<TabListMediator.ShoppingPersistedTabDataFetcher>
-            SHOPPING_PERSISTED_TAB_DATA_FETCHER = new WritableObjectPropertyKey<>(true);
-
     public static final WritableObjectPropertyKey<TabListMediator.StorePersistedTabDataFetcher>
             STORE_PERSISTED_TAB_DATA_FETCHER = new WritableObjectPropertyKey<>(true);
 
@@ -139,7 +136,7 @@ public class TabProperties {
             SELECTABLE_TAB_ACTION_BUTTON_SELECTED_BACKGROUND, URL_DOMAIN, ACCESSIBILITY_DELEGATE,
             SEARCH_QUERY, PAGE_INFO_LISTENER, PAGE_INFO_ICON_DRAWABLE_ID, CARD_TYPE,
             CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING,
-            SHOPPING_PERSISTED_TAB_DATA_FETCHER, STORE_PERSISTED_TAB_DATA_FETCHER,
+            STORE_PERSISTED_TAB_DATA_FETCHER,
             COUPON_PERSISTED_TAB_DATA_FETCHER, SHOULD_SHOW_PRICE_DROP_TOOLTIP};
 
     public static final PropertyKey[] ALL_KEYS_TAB_STRIP =
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorCoordinator.java
@@ -189,7 +189,7 @@ class TabSelectionEditorCoordinator {
             // its TabListCoordinator to work with the editor as an optimization.
             mTabListCoordinator = new TabListCoordinator(mode, context, mTabModelSelector,
                     thumbnailProvider, titleProvider, displayGroups, null, null,
-                    TabProperties.UiType.SELECTABLE, this::getSelectionDelegate, null,
+                    TabProperties.UiType.SELECTABLE, this::getSelectionDelegate,
                     mTabSelectionEditorLayout, false, COMPONENT_NAME, rootView, null);
 
             // Note: The TabSelectionEditorCoordinator is always created after native is
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
@@ -33,10 +33,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.DestroyObserver;
 import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
-import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.share.ShareDelegate;
 import org.chromium.chrome.browser.tab.Tab;
@@ -45,7 +41,6 @@ import org.chromium.chrome.browser.tabmodel.TabList;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tasks.pseudotab.PseudoTab;
 import org.chromium.chrome.browser.tasks.pseudotab.TabAttributeCache;
-import org.chromium.chrome.browser.tasks.tab_management.PriceMessageService.PriceMessageType;
 import org.chromium.chrome.browser.tasks.tab_management.TabListCoordinator.TabListMode;
 import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.ButtonType;
 import org.chromium.chrome.browser.tasks.tab_management.TabSelectionEditorAction.IconPosition;
@@ -74,8 +69,7 @@ import java.util.List;
  */
 public class TabSwitcherCoordinator
         implements DestroyObserver, TabSwitcher, TabSwitcher.TabListDelegate,
-                   TabSwitcherMediator.ResetHandler, TabSwitcherMediator.MessageItemsController,
-                   TabSwitcherMediator.PriceWelcomeMessageController {
+                   TabSwitcherMediator.ResetHandler, TabSwitcherMediator.MessageItemsController {
     /**
      * Interface to control the IPH dialog.
      */
@@ -140,8 +134,6 @@ public class TabSwitcherCoordinator
     private ViewGroup mContainer;
     private TabCreatorManager mTabCreatorManager;
     private boolean mIsInitialized;
-    private PriceMessageService mPriceMessageService;
-    private SharedPreferencesManager.Observer mPriceAnnotationsPrefObserver;
     private final ViewGroup mCoordinatorView;
     private final ViewGroup mRootView;
     private TabContentManager mTabContentManager;
@@ -187,15 +179,12 @@ public class TabSwitcherCoordinator
                         RecordUserAction.record("MobileMenuSelectTabs");
                         return true;
                     } else if (id == R.id.track_prices_row_menu_id) {
-                        assert mPriceTrackingDialogCoordinator != null;
-                        mPriceTrackingDialogCoordinator.show();
                         return true;
                     }
                     return false;
                 }
             };
     private TabGridIphDialogCoordinator mTabGridIphDialogCoordinator;
-    private PriceTrackingDialogCoordinator mPriceTrackingDialogCoordinator;
     private TabSwitcherCustomViewManager mTabSwitcherCustomViewManager;
     private Supplier<ShareDelegate> mShareDelegateSupplier;
 
@@ -235,7 +224,7 @@ public class TabSwitcherCoordinator
                     new PropertyModel(TabListContainerProperties.ALL_KEYS);
 
             mMediator = new TabSwitcherMediator(activity, this, containerViewModel,
-                    tabModelSelector, browserControls, container, tabContentManager, this, this,
+                    tabModelSelector, browserControls, container, tabContentManager, this,
                     multiWindowModeStateDispatcher, mode, incognitoReauthControllerSupplier);
 
             mTabSwitcherCustomViewManager = new TabSwitcherCustomViewManager(mMediator);
@@ -255,7 +244,7 @@ public class TabSwitcherCoordinator
             long startTimeMs = SystemClock.uptimeMillis();
             mTabListCoordinator = new TabListCoordinator(mode, activity, tabModelSelector,
                     mMultiThumbnailCardProvider, titleProvider, true, mMediator, null,
-                    TabProperties.UiType.CLOSABLE, null, this, container, true, COMPONENT_NAME,
+                    TabProperties.UiType.CLOSABLE, null, container, true, COMPONENT_NAME,
                     mRootView, null);
             mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel,
                     mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind);
@@ -353,21 +342,6 @@ public class TabSwitcherCoordinator
                             new LayoutViewBuilder(R.layout.large_message_card_item),
                             LargeMessageCardViewBinder::bind);
                 }
-
-                if (PriceTrackingFeatures.isPriceTrackingEnabled()
-                        && PriceTrackingFeatures.getPriceTrackingEnabled()) {
-                    mPriceAnnotationsPrefObserver = key -> {
-                        if (PriceTrackingUtilities.TRACK_PRICES_ON_TABS.equals(key)
-                                && !mTabModelSelector.isIncognitoSelected()
-                                && mTabModelSelector.isTabStateInitialized()) {
-                            resetWithTabList(mTabModelSelector.getTabModelFilterProvider()
-                                                     .getCurrentTabModelFilter(),
-                                    false, isShowingTabsInMRUOrder(mMode));
-                        }
-                    };
-                    SharedPreferencesManager.getInstance().addObserver(
-                            mPriceAnnotationsPrefObserver);
-                }
             }
 
             if (ChromeFeatureList.sInstantStart.isEnabled()
@@ -481,8 +455,6 @@ public class TabSwitcherCoordinator
 
             mMultiThumbnailCardProvider.initWithNative();
             mMediator.initWithNative(controller, mSnackbarManager);
-            // TODO(crbug.com/1222762): Only call setUpPriceTracking in GRID TabSwitcher.
-            setUpPriceTracking(mActivity, mModalDialogManager);
 
             mIsInitialized = true;
         }
@@ -554,21 +526,6 @@ public class TabSwitcherCoordinator
         RecordUserAction.record("TabMultiSelectV2.OpenFromGrid");
     }
 
-    private void setUpPriceTracking(Context context, ModalDialogManager modalDialogManager) {
-        if (PriceTrackingFeatures.isPriceTrackingEnabled()) {
-            PriceDropNotificationManager notificationManager =
-                    PriceDropNotificationManagerFactory.create();
-            mPriceTrackingDialogCoordinator = new PriceTrackingDialogCoordinator(context,
-                    modalDialogManager, this, mTabModelSelector, notificationManager, mMode);
-            if (mMode == TabListCoordinator.TabListMode.GRID) {
-                mPriceMessageService = new PriceMessageService(
-                        mTabListCoordinator, mMediator, notificationManager);
-                mMessageCardProviderCoordinator.subscribeMessageService(mPriceMessageService);
-                mMediator.setPriceMessageService(mPriceMessageService);
-            }
-        }
-    }
-
     // TabSwitcher implementation.
     @Override
     public void setOnTabSelectingListener(OnTabSelectingListener listener) {
@@ -698,22 +655,10 @@ public class TabSwitcherCoordinator
     public boolean resetWithTabs(
             @Nullable List<PseudoTab> tabs, boolean quickMode, boolean mruMode) {
         mMediator.registerFirstMeaningfulPaintRecorder();
-        // Invalidate price welcome message for every reset so that the stale message won't be
-        // restored by mistake (e.g. from tabClosureUndone in TabSwitcherMediator).
-        if (mPriceMessageService != null) {
-            mPriceMessageService.invalidateMessage();
-        }
         boolean showQuickly = mTabListCoordinator.resetWithListOfTabs(tabs, quickMode, mruMode);
         if (showQuickly) {
             removeAllAppendedMessage();
         }
-        if (tabs != null && tabs.size() > 0) {
-            if (mPriceMessageService != null
-                    && PriceTrackingUtilities.isPriceAlertsMessageCardEnabled()) {
-                mPriceMessageService.preparePriceMessage(PriceMessageType.PRICE_ALERTS, null);
-            }
-            appendMessagesTo(tabs.size());
-        }
 
         return showQuickly;
     }
@@ -750,38 +695,6 @@ public class TabSwitcherCoordinator
         sAppendedMessagesForTesting = messages.size() > 0;
     }
 
-    // PriceWelcomeMessageController implementation.
-    @Override
-    public void removePriceWelcomeMessage() {
-        mTabListCoordinator.removeSpecialListItem(
-                TabProperties.UiType.LARGE_MESSAGE, MessageService.MessageType.PRICE_MESSAGE);
-    }
-
-    @Override
-    public void restorePriceWelcomeMessage() {
-        appendNextMessage(MessageService.MessageType.PRICE_MESSAGE);
-    }
-
-    @Override
-    public void showPriceWelcomeMessage(PriceMessageService.PriceTabData priceTabData) {
-        if (mPriceMessageService == null
-                || !PriceTrackingUtilities.isPriceWelcomeMessageCardEnabled()
-                || mMessageCardProviderCoordinator.isMessageShown(
-                        MessageService.MessageType.PRICE_MESSAGE, PriceMessageType.PRICE_WELCOME)) {
-            return;
-        }
-        if (mPriceMessageService.preparePriceMessage(
-                    PriceMessageType.PRICE_WELCOME, priceTabData)) {
-            appendNextMessage(MessageService.MessageType.PRICE_MESSAGE);
-            // To make the message card in view when user enters tab switcher, we should scroll to
-            // current tab with 0 offset. See {@link
-            // TabSwitcherMediator#setInitialScrollIndexOffset} for more details.
-            mMediator.scrollToTab(mTabModelSelector.getTabModelFilterProvider()
-                                          .getCurrentTabModelFilter()
-                                          .index());
-        }
-    }
-
     private void appendMessagesTo(int index) {
         if (mMultiWindowModeStateDispatcher.isInMultiWindowMode()) return;
         sAppendedMessagesForTesting = false;
@@ -811,9 +724,6 @@ public class TabSwitcherCoordinator
                 mMessageCardProviderCoordinator.getNextMessageItemForType(messageType);
         if (nextMessage == null || !shouldAppendMessage(nextMessage.model)) return;
         if (messageType == MessageService.MessageType.PRICE_MESSAGE) {
-            mTabListCoordinator.addSpecialListItem(
-                    mTabListCoordinator.getPriceWelcomeMessageInsertionIndex(),
-                    TabProperties.UiType.LARGE_MESSAGE, nextMessage.model);
         } else {
             mTabListCoordinator.addSpecialListItemToEnd(
                     TabProperties.UiType.MESSAGE, nextMessage.model);
@@ -863,8 +773,7 @@ public class TabSwitcherCoordinator
     }
 
     private boolean shouldRegisterLargeMessageItemType() {
-        return PriceTrackingFeatures.isPriceTrackingEnabled()
-                || IncognitoReauthManager.isIncognitoReauthFeatureAvailable();
+        return IncognitoReauthManager.isIncognitoReauthFeatureAvailable();
     }
 
     @Override
@@ -900,9 +809,6 @@ public class TabSwitcherCoordinator
         if (mTabAttributeCache != null) {
             mTabAttributeCache.destroy();
         }
-        if (mPriceAnnotationsPrefObserver != null) {
-            SharedPreferencesManager.getInstance().removeObserver(mPriceAnnotationsPrefObserver);
-        }
     }
 
     /**
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
@@ -46,7 +46,6 @@ import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthManager;
 import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabCreationState;
 import org.chromium.chrome.browser.tab.TabSelectionType;
@@ -79,7 +78,6 @@ import java.util.List;
  */
 class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView.VisibilityListener,
                                      TabListMediator.GridCardOnClickListenerProvider,
-                                     PriceMessageService.PriceWelcomeMessageReviewActionProvider,
                                      TabSwitcherCustomViewManager.Delegate {
     private static final String TAG = "TabSwitcherMediator";
 
@@ -153,7 +151,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
     private TabSelectionEditorCoordinator
             .TabSelectionEditorController mTabSelectionEditorController;
     private TabSwitcher.OnTabSelectingListener mOnTabSelectingListener;
-    private PriceMessageService mPriceMessageService;
     private boolean mIsOnHomepage;
 
     /**
@@ -260,29 +257,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
         void restoreAllAppendedMessage();
     }
 
-    /**
-     * An interface to control price welcome message in grid tab switcher.
-     */
-    interface PriceWelcomeMessageController {
-        /**
-         * Remove the price welcome message item in the model list. Right now this is used when
-         * its binding tab is closed in the grid tab switcher.
-         */
-        void removePriceWelcomeMessage();
-
-        /**
-         * Restore the price welcome message item that should show. Right now this is only used
-         * when the closure of the binding tab in tab switcher is undone.
-         */
-        void restorePriceWelcomeMessage();
-
-        /**
-         * Show the price welcome message in tab switcher. This is used when any open tab in tab
-         * switcher has a price drop.
-         */
-        void showPriceWelcomeMessage(PriceMessageService.PriceTabData priceTabData);
-    }
-
     /**
      * Basic constructor for the Mediator.
      * @param context The context to use for accessing {@link android.content.res.Resources}.
@@ -303,7 +277,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
             PropertyModel containerViewModel, TabModelSelector tabModelSelector,
             BrowserControlsStateProvider browserControlsStateProvider, ViewGroup containerView,
             TabContentManager tabContentManager, MessageItemsController messageItemsController,
-            PriceWelcomeMessageController priceWelcomeMessageController,
             MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, @TabListMode int mode,
             @Nullable OneshotSupplier<IncognitoReauthController>
                     incognitoReauthControllerSupplier) {
@@ -400,9 +373,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
             public void willCloseTab(Tab tab, boolean animate, boolean didCloseAlone) {
                 if (mTabModelSelector.getCurrentModel().getCount() == 1) {
                     messageItemsController.removeAllAppendedMessage();
-                } else if (mPriceMessageService != null
-                        && mPriceMessageService.getBindingTabId() == tab.getId()) {
-                    priceWelcomeMessageController.removePriceWelcomeMessage();
                 }
             }
 
@@ -411,10 +381,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
                 if (mTabModelSelector.getCurrentModel().getCount() == 1) {
                     messageItemsController.restoreAllAppendedMessage();
                 }
-                if (mPriceMessageService != null
-                        && mPriceMessageService.getBindingTabId() == tab.getId()) {
-                    priceWelcomeMessageController.restorePriceWelcomeMessage();
-                }
                 notifyBackPressStateChangedInternal();
             }
 
@@ -430,12 +396,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
 
             @Override
             public void tabClosureCommitted(Tab tab) {
-                // TODO(crbug.com/1157578): Auto update the PriceMessageService instead of
-                // updating it based on the client caller.
-                if (mPriceMessageService != null
-                        && mPriceMessageService.getBindingTabId() == tab.getId()) {
-                    mPriceMessageService.invalidateMessage();
-                }
             }
         };
 
@@ -694,14 +654,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
                         "MobileTabSwitched." + TabSwitcherCoordinator.COMPONENT_NAME);
             }
         }
-        if (mMode == TabListCoordinator.TabListMode.GRID
-                && PriceTrackingUtilities.isTabModelPriceTrackingEligible(
-                        mTabModelSelector.getCurrentModel())
-                && PriceTrackingUtilities.isTrackPricesOnTabsEnabled()) {
-            RecordUserAction.record("Commerce.TabGridSwitched."
-                    + (ShoppingPersistedTabData.hasPriceDrop(tab) ? "HasPriceDrop"
-                                                                  : "NoPriceDrop"));
-        }
     }
 
     @Override
@@ -1058,10 +1010,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
         mOnTabSelectingListener = listener;
     }
 
-    void setPriceMessageService(PriceMessageService priceMessageService) {
-        mPriceMessageService = priceMessageService;
-    }
-
     // GridCardOnClickListenerProvider implementation.
     @Override
     @Nullable
@@ -1095,11 +1043,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
         }
     }
 
-    @Override
-    public void scrollToTab(int tabIndex) {
-        mContainerViewModel.set(TabListContainerProperties.INITIAL_SCROLL_INDEX, tabIndex);
-    }
-
     private boolean ableToOpenDialog(Tab tab) {
         return TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mContext)
                 && mTabModelSelector.isIncognitoSelected() == tab.isIncognito()
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -83,9 +83,7 @@ import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
 import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator;
 import org.chromium.chrome.browser.back_press.BackPressManager;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
 import org.chromium.chrome.browser.bookmarks.TabBookmarker;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
 import org.chromium.chrome.browser.compositor.layouts.Layout;
 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
@@ -149,8 +147,6 @@ import org.chromium.chrome.browser.share.ShareDelegate;
 import org.chromium.chrome.browser.share.ShareDelegateImpl;
 import org.chromium.chrome.browser.share.ShareDelegateSupplier;
 import org.chromium.chrome.browser.stylus_handwriting.StylusWritingCoordinator;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
 import org.chromium.chrome.browser.tab.RequestDesktopUtils;
 import org.chromium.chrome.browser.tab.Tab;
@@ -2366,27 +2362,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
         }
 
         if (id == R.id.enable_price_tracking_menu_id) {
-            mTabBookmarkerSupplier.get().startOrModifyPriceTracking(currentTab);
             RecordUserAction.record("MobileMenuEnablePriceTracking");
-            TrackerFactory.getTrackerForProfile(Profile.getLastUsedRegularProfile())
-                    .notifyEvent(EventConstants.SHOPPING_LIST_PRICE_TRACK_FROM_MENU);
             return true;
         }
 
         if (id == R.id.disable_price_tracking_menu_id) {
-            // TODO(crbug.com/1268976): Extract this code into a one-liner.
-            List<BookmarkId> bookmarkIds =
-                    PowerBookmarkUtils.getBookmarkIdsWithSharedClusterIdForTab(
-                            currentTab, mBookmarkModelSupplier.get());
-            SubscriptionsManager subscriptionsManager = null;
-            if (ShoppingFeatures.isShoppingListEnabled()) {
-                subscriptionsManager = new CommerceSubscriptionsServiceFactory()
-                                               .getForLastUsedProfile()
-                                               .getSubscriptionsManager();
-            }
-            PowerBookmarkUtils.setPriceTrackingEnabledWithSnackbars(subscriptionsManager,
-                    mBookmarkModelSupplier.get(), bookmarkIds,
-                    /*enabled=*/false, mSnackbarManager, getResources());
             RecordUserAction.record("MobileMenuDisablePriceTracking");
             return true;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.banners.AppMenuVerbiage;
 import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
 import org.chromium.chrome.browser.bookmarks.ReadingListFeatures;
 import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
@@ -56,7 +55,6 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
 import org.chromium.chrome.browser.night_mode.WebContentsDarkModeController;
 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper;
 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.read_later.ReadingListUtils;
 import org.chromium.chrome.browser.share.ShareHelper;
@@ -595,9 +593,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
                             > 1;
         }
 
-        boolean isPriceTrackingVisible = isOverviewModeMenu
-                && PriceTrackingUtilities.shouldShowPriceTrackingMenu()
-                && !DeviceClassManager.enableAccessibilityLayout(mContext) && !isIncognito;
+        boolean isPriceTrackingVisible = false;
         boolean isPriceTrackingEnabled = isPriceTrackingVisible;
         boolean hasItemBetweenDividers = false;
 
@@ -1181,9 +1177,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
      * @param stopPriceTrackingMenuItem The menu item to stop price tracking.
      * @param currentTab Current tab being displayed.
      */
-    protected void updatePriceTrackingMenuItemRow(@NonNull MenuItem startPriceTrackingMenuItem,
-            @NonNull MenuItem stopPriceTrackingMenuItem, @Nullable Tab currentTab) {
-        ShoppingService service =
+    protected void updatePriceTrackingMenuItemRow(@NonNull MenuItem startPriceTrackingMenuItem,  // disabled
+            @NonNull MenuItem stopPriceTrackingMenuItem, @Nullable Tab currentTab) {             // in Bromite
+        /*ShoppingService service =
                 ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile());
         ShoppingService.ProductInfo info = null;
         if (service != null && currentTab != null) {
@@ -1219,7 +1215,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
                     info.productClusterId, mBookmarkModelSupplier.get());
         }
         startPriceTrackingMenuItem.setVisible(!priceTrackingEnabled);
-        stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled);
+        stopPriceTrackingMenuItem.setVisible(priceTrackingEnabled); */
+        startPriceTrackingMenuItem.setVisible(false);
+        stopPriceTrackingMenuItem.setVisible(false);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -26,9 +26,6 @@ import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.read_later.ReadingListUtils;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscription;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.components.bookmarks.BookmarkId;
 import org.chromium.components.bookmarks.BookmarkItem;
@@ -59,8 +56,6 @@ class BookmarkBridge {
             new ArrayList<DelayedBookmarkCallback>();
     private final ObserverList<BookmarkModelObserver> mObservers =
             new ObserverList<BookmarkModelObserver>();
-    private SubscriptionsManager mSubscriptionManager;
-    private SubscriptionsManager.SubscriptionObserver mSubscriptionsObserver;
 
     /**
      * Interface for callback object for fetching bookmarks and folder hierarchy.
@@ -104,26 +99,6 @@ class BookmarkBridge {
         mNativeBookmarkBridge = BookmarkBridgeJni.get().init(BookmarkBridge.this, profile);
         mIsDoingExtensiveChanges = BookmarkBridgeJni.get().isDoingExtensiveChanges(
                 mNativeBookmarkBridge, BookmarkBridge.this);
-        mSubscriptionsObserver = new SubscriptionsManager.SubscriptionObserver() {
-            @Override
-            public void onSubscribe(List<CommerceSubscription> subscriptions) {}
-
-            @Override
-            public void onUnsubscribe(List<CommerceSubscription> subscriptions) {
-                removeExplicitShoppingSubscriptions(subscriptions);
-            }
-        };
-        if (ShoppingFeatures.isShoppingListEnabled()) {
-            mSubscriptionManager = new CommerceSubscriptionsServiceFactory()
-                                           .getForLastUsedProfile()
-                                           .getSubscriptionsManager();
-            mSubscriptionManager.addObserver(mSubscriptionsObserver);
-        }
-    }
-
-    @VisibleForTesting
-    SubscriptionsManager.SubscriptionObserver getSubscriptionObserver() {
-        return mSubscriptionsObserver;
     }
 
     /**
@@ -138,10 +113,6 @@ class BookmarkBridge {
             mDelayedBookmarkCallbacks.clear();
         }
         mObservers.clear();
-
-        if (mSubscriptionManager != null) {
-            mSubscriptionManager.removeObserver(mSubscriptionsObserver);
-        }
     }
 
     /** Returns whether the bridge has been destroyed. */
@@ -445,61 +416,6 @@ class BookmarkBridge {
         return result;
     }
 
-    /**
-     * Disable price tracking for the list of subscriptions. This flips the bit in ShoppingSpecifics
-     * but does not actually unsubscribe from the subscription service -- this assumes that is
-     * already done.
-     * TODO(1284730): This should live somewhere other than BookmarkBridge.
-     *
-     * @param subscriptions The list of subscriptions to disable.
-     */
-    private void removeExplicitShoppingSubscriptions(List<CommerceSubscription> subscriptions) {
-        if (subscriptions == null) return;
-
-        List<BookmarkId> products = searchBookmarks("", null, PowerBookmarkType.SHOPPING, -1);
-        if (products == null || products.size() == 0) return;
-
-        // Put the offer and cluster IDs into a map so they can be quickly checked.
-        HashSet<Long> offerIdMap = new HashSet<>();
-        HashSet<Long> clusterIdMap = new HashSet<>();
-        for (CommerceSubscription c : subscriptions) {
-            // Ensure the subscription is explicit.
-            if (c == null
-                    || !c.getManagementType().equals(
-                            CommerceSubscription.SubscriptionManagementType.USER_MANAGED)) {
-                continue;
-            }
-
-            if (c.getTrackingIdType().equals(CommerceSubscription.TrackingIdType.OFFER_ID)) {
-                offerIdMap.add(UnsignedLongs.parseUnsignedLong(c.getTrackingId()));
-            } else if (c.getTrackingIdType().equals(
-                               CommerceSubscription.TrackingIdType.PRODUCT_CLUSTER_ID)) {
-                clusterIdMap.add(UnsignedLongs.parseUnsignedLong(c.getTrackingId()));
-            }
-        }
-
-        // Look at all the products the user has saved to find any of the above product or cluster
-        // IDs.
-        for (BookmarkId product : products) {
-            PowerBookmarkMeta meta = getPowerBookmarkMeta(product);
-            if (!meta.hasShoppingSpecifics()) continue;
-
-            ShoppingSpecifics specifics = meta.getShoppingSpecifics();
-            if (offerIdMap.contains(specifics.getOfferId())
-                    || clusterIdMap.contains(specifics.getProductClusterId())) {
-                // Reset the meta using a copy of the existing one, but set the price tracking flag
-                // to false.
-                setPowerBookmarkMeta(product,
-                        PowerBookmarkMeta.newBuilder(meta)
-                                .setShoppingSpecifics(
-                                        ShoppingSpecifics.newBuilder(meta.getShoppingSpecifics())
-                                                .setIsPriceTracked(false)
-                                                .build())
-                                .build());
-            }
-        }
-    }
-
     /**
      * Gets the child of a folder at the specific position.
      * @param folderId Id of the parent folder
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
@@ -22,12 +22,9 @@ import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType;
 import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.components.bookmarks.BookmarkId;
 import org.chromium.components.bookmarks.BookmarkItem;
@@ -65,13 +62,10 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkLis
     private BookmarkDelegate mDelegate;
     private String mSearchText;
     private BookmarkId mCurrentFolder;
-    private CommerceSubscriptionsServiceFactory mCommerceSubscriptionsServiceFactory;
 
     // Keep track of the currently highlighted bookmark - used for "show in folder" action.
     private BookmarkId mHighlightedBookmark;
 
-    private SubscriptionsManager mSubscriptionsManager;
-
     private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
         @Override
         public void bookmarkNodeChanged(BookmarkItem node) {
@@ -125,13 +119,7 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkLis
                 ImageFetcherFactory.createImageFetcher(ImageFetcherConfig.IN_MEMORY_WITH_DISK_CACHE,
                         Profile.getLastUsedRegularProfile().getProfileKey(),
                         GlobalDiscardableReferencePool.getReferencePool());
-        mCommerceSubscriptionsServiceFactory = new CommerceSubscriptionsServiceFactory();
         mSnackbarManager = snackbarManager;
-
-        if (ShoppingFeatures.isShoppingListEnabled()) {
-            mSubscriptionsManager = mCommerceSubscriptionsServiceFactory.getForLastUsedProfile()
-                                            .getSubscriptionsManager();
-        }
     }
 
     /**
@@ -237,17 +225,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkLis
                 return createViewHolderHelper(parent, R.layout.bookmark_folder_row);
             case ViewType.BOOKMARK:
                 return createViewHolderHelper(parent, R.layout.bookmark_item_row);
-            case ViewType.SHOPPING_POWER_BOOKMARK:
-                ViewHolder vh = null;
-                if (BookmarkFeatures.isBookmarksVisualRefreshEnabled()) {
-                    vh = createViewHolderHelper(parent, R.layout.power_bookmark_shopping_item_row);
-                    ((PowerBookmarkShoppingItemRow) vh.itemView)
-                            .init(mImageFetcher, mDelegate.getModel(), mSubscriptionsManager,
-                                    mSnackbarManager);
-                } else {
-                    vh = createViewHolderHelper(parent, R.layout.bookmark_item_row);
-                }
-                return vh;
             case ViewType.DIVIDER:
                 return new ViewHolder(
                         LayoutInflater.from(parent.getContext())
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
@@ -206,17 +205,6 @@ public class BookmarkManager
         mBookmarkModel = new BookmarkModel();
         mMainView = (ViewGroup) LayoutInflater.from(mContext).inflate(R.layout.bookmark_main, null);
 
-        // TODO(1293885): Remove this validator once we have an API on the backend that sends
-        //                success/failure information back.
-        if (ShoppingFeatures.isShoppingListEnabled()) {
-            PowerBookmarkUtils.validateBookmarkedCommerceSubscriptions(mBookmarkModel,
-                    new CommerceSubscriptionsServiceFactory()
-                            .getForLastUsedProfile()
-                            .getSubscriptionsManager());
-            ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile())
-                    .scheduleSavedProductUpdate();
-        }
-
         @SuppressWarnings("unchecked")
         SelectableListLayout<BookmarkId> selectableList =
                 mMainView.findViewById(R.id.selectable_list);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java
@@ -17,8 +17,6 @@ import org.chromium.base.lifetime.DestroyChecker;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.task.PostTask;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.chrome.browser.user_education.IPHCommandBuilder;
 import org.chromium.chrome.browser.user_education.UserEducationHelper;
 import org.chromium.components.bookmarks.BookmarkId;
@@ -53,13 +51,10 @@ public class BookmarkSaveFlowCoordinator {
     /**
      * @param context The {@link Context} associated with this cooridnator.
      * @param bottomSheetController Allows displaying content in the bottom sheet.
-     * @param subscriptionsManager Allows un/subscribing for product updates, used for
-     *         price-tracking.
      * @param userEducationHelper A means of triggering IPH.
      */
     public BookmarkSaveFlowCoordinator(@NonNull Context context,
             @NonNull BottomSheetController bottomSheetController,
-            @Nullable SubscriptionsManager subscriptionsManager,
             @NonNull UserEducationHelper userEducationHelper) {
         mContext = context;
         mBottomSheetController = bottomSheetController;
@@ -70,7 +65,7 @@ public class BookmarkSaveFlowCoordinator {
         mBookmarkSaveFlowView = LayoutInflater.from(mContext).inflate(
                 org.chromium.chrome.R.layout.bookmark_save_flow, /*root=*/null);
         mMediator = new BookmarkSaveFlowMediator(
-                mBookmarkModel, mPropertyModel, mContext, this::close, subscriptionsManager);
+                mBookmarkModel, mPropertyModel, mContext, this::close);
         mChangeProcessor = PropertyModelChangeProcessor.create(mPropertyModel,
                 (ViewLookupCachingFrameLayout) mBookmarkSaveFlowView,
                 new BookmarkSaveFlowViewBinder());
@@ -115,36 +110,6 @@ public class BookmarkSaveFlowCoordinator {
         if (!am.isTouchExplorationEnabled()) {
             setupAutodismiss();
         }
-
-        if (ShoppingFeatures.isShoppingListEnabled()
-                && PowerBookmarkUtils.isBookmarkPriceTracked(mBookmarkModel, bookmarkId)) {
-            if (shown) {
-                showShoppingSaveFlowIPH();
-            } else {
-                mBottomSheetController.addObserver(new EmptyBottomSheetObserver() {
-                    @Override
-                    public void onSheetContentChanged(BottomSheetContent newContent) {
-                        if (newContent == mBottomSheetContent) showShoppingSaveFlowIPH();
-
-                        mBottomSheetController.removeObserver(this);
-                    }
-                });
-            }
-        }
-    }
-
-    /**
-     * Show the IPH for the save flow that tells a user that they can organize their products from
-     * the bookmarks surface.
-     */
-    private void showShoppingSaveFlowIPH() {
-        mUserEducationHelper.requestShowIPH(
-                new IPHCommandBuilder(mBookmarkSaveFlowView.getResources(),
-                        FeatureConstants.SHOPPING_LIST_SAVE_FLOW_FEATURE,
-                        R.string.iph_shopping_list_save_flow, R.string.iph_shopping_list_save_flow)
-                        .setAnchorView(
-                                mBookmarkSaveFlowView.findViewById(R.id.bookmark_select_folder))
-                        .build());
     }
 
     @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowMediator.java
@@ -14,11 +14,8 @@ import org.chromium.base.Callback;
 import org.chromium.base.CallbackController;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkMetrics.PriceTrackingState;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscription;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.components.bookmarks.BookmarkId;
 import org.chromium.components.bookmarks.BookmarkItem;
 import org.chromium.components.feature_engagement.EventConstants;
@@ -29,7 +26,7 @@ import java.util.List;
 
 /** Controls the bookmarks save-flow. */
 public class BookmarkSaveFlowMediator
-        extends BookmarkModelObserver implements SubscriptionsManager.SubscriptionObserver {
+        extends BookmarkModelObserver {
     private final Context mContext;
     private final Runnable mCloseRunnable;
 
@@ -39,9 +36,6 @@ public class BookmarkSaveFlowMediator
     private BookmarkId mBookmarkId;
     private PowerBookmarkMeta mPowerBookmarkMeta;
     private boolean mWasBookmarkMoved;
-    private SubscriptionsManager mSubscriptionsManager;
-    private CommerceSubscription mSubscription;
-    private Callback<Integer> mSubscriptionsManagerCallback;
     private String mFolderName;
 
     /**
@@ -50,22 +44,15 @@ public class BookmarkSaveFlowMediator
      *         model.
      * @param context The {@link Context} associated with this mediator.
      * @param closeRunnable A {@link Runnable} which closes the bookmark save flow.
-     * @param subscriptionsManager Used to manage the price-tracking subscriptions.
      */
     public BookmarkSaveFlowMediator(BookmarkModel bookmarkModel, PropertyModel propertyModel,
-            Context context, Runnable closeRunnable,
-            @Nullable SubscriptionsManager subscriptionsManager) {
+            Context context, Runnable closeRunnable) {
         mBookmarkModel = bookmarkModel;
         mBookmarkModel.addObserver(this);
 
         mPropertyModel = propertyModel;
         mContext = context;
         mCloseRunnable = closeRunnable;
-
-        mSubscriptionsManager = subscriptionsManager;
-        if (mSubscriptionsManager != null) {
-            mSubscriptionsManager.addObserver(this);
-        }
     }
 
     /**
@@ -100,9 +87,6 @@ public class BookmarkSaveFlowMediator
             mCloseRunnable.run();
         });
 
-        if (meta != null) {
-            mSubscription = PowerBookmarkUtils.createCommerceSubscriptionForPowerBookmarkMeta(meta);
-        }
         bindBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, mWasBookmarkMoved);
         bindPowerBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, fromExplicitTrackUi);
     }
@@ -128,40 +112,9 @@ public class BookmarkSaveFlowMediator
 
     private void bindPowerBookmarkProperties(
             BookmarkId bookmarkId, @Nullable PowerBookmarkMeta meta, boolean fromExplicitTrackUi) {
-        if (meta == null) return;
-
-        if (meta.hasShoppingSpecifics()) {
-            setPriceTrackingNotificationUiEnabled(true);
-            setPriceTrackingIconForEnabledState(false);
-            mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_VISIBLE, true);
-            mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TITLE,
-                    mContext.getResources().getString(R.string.enable_price_tracking_menu_item));
-            mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TOGGLE_LISTENER,
-                    this::handleNotificationSwitchToggle);
-
-            if (fromExplicitTrackUi) {
-                mPropertyModel.set(BookmarkSaveFlowProperties.NOTIFICATION_SWITCH_TOGGLED, true);
-            }
-            PowerBookmarkMetrics.reportBookmarkSaveFlowPriceTrackingState(
-                    PriceTrackingState.PRICE_TRACKING_SHOWN);
-        }
     }
 
     void handleNotificationSwitchToggle(CompoundButton view, boolean toggled) {
-        if (mSubscriptionsManagerCallback == null) {
-            mSubscriptionsManagerCallback = mCallbackController.makeCancelable((Integer status) -> {
-                setPriceTrackingToggleVisualsOnly(
-                        status == SubscriptionsManager.StatusCode.OK && view.isChecked());
-                setPriceTrackingNotificationUiEnabled(status == SubscriptionsManager.StatusCode.OK);
-            });
-        }
-
-        setPriceTrackingIconForEnabledState(toggled);
-        PowerBookmarkUtils.setPriceTrackingEnabled(mSubscriptionsManager, mBookmarkModel,
-                mBookmarkId, toggled, mSubscriptionsManagerCallback);
-        PowerBookmarkMetrics.reportBookmarkSaveFlowPriceTrackingState(toggled
-                        ? PriceTrackingState.PRICE_TRACKING_ENABLED
-                        : PriceTrackingState.PRICE_TRACKING_DISABLED);
     }
 
     void setPriceTrackingNotificationUiEnabled(boolean enabled) {
@@ -180,9 +133,6 @@ public class BookmarkSaveFlowMediator
 
     void destroy() {
         mBookmarkModel.removeObserver(this);
-        if (mSubscriptionsManager != null) {
-            mSubscriptionsManager.removeObserver(this);
-        }
 
         mBookmarkModel = null;
         mPropertyModel = null;
@@ -203,10 +153,6 @@ public class BookmarkSaveFlowMediator
                 this::handleNotificationSwitchToggle);
     }
 
-    void setSubscriptionForTesting(CommerceSubscription subscription) {
-        mSubscription = subscription;
-    }
-
     // BookmarkModelObserver implementation
 
     @Override
@@ -218,15 +164,4 @@ public class BookmarkSaveFlowMediator
         }
         bindBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, mWasBookmarkMoved);
     }
-
-    // SubscriptionsManager.SubscriptionObserver implementation
-    @Override
-    public void onSubscribe(List<CommerceSubscription> subscriptions) {
-        setPriceTrackingToggleVisualsOnly(subscriptions.contains(mSubscription));
-    }
-
-    @Override
-    public void onUnsubscribe(List<CommerceSubscription> subscriptions) {
-        setPriceTrackingToggleVisualsOnly(!subscriptions.contains(mSubscription));
-    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.app.bookmarks.BookmarkActivity;
 import org.chromium.chrome.browser.app.bookmarks.BookmarkEditActivity;
 import org.chromium.chrome.browser.app.bookmarks.BookmarkFolderSelectActivity;
 import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider.CustomTabsUiType;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
 import org.chromium.chrome.browser.customtabs.IncognitoCustomTabIntentDataProvider;
 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
@@ -48,8 +47,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.read_later.ReadingListUtils;
 import org.chromium.chrome.browser.renderer_host.ChromeNavigationUIData;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
-import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.tabmodel.AsyncTabCreationParams;
@@ -142,16 +139,9 @@ public class BookmarkUtils {
             return;
         }
 
-        SubscriptionsManager subscriptionService = null;
-        if (ShoppingFeatures.isShoppingListEnabled()) {
-            subscriptionService = new CommerceSubscriptionsServiceFactory()
-                                          .getForLastUsedProfile()
-                                          .getSubscriptionsManager();
-        }
-
         BookmarkSaveFlowCoordinator bookmarkSaveFlowCoordinator =
                 new BookmarkSaveFlowCoordinator(activity, bottomSheetController,
-                        subscriptionService, new UserEducationHelper(activity, new Handler()));
+                        new UserEducationHelper(activity, new Handler()));
         bookmarkSaveFlowCoordinator.show(bookmarkId, fromExplicitTrackUi, wasBookmarkMoved);
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -73,7 +73,6 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
 import org.chromium.chrome.browser.photo_picker.DecoderService;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
@@ -450,10 +449,6 @@ public class ProcessInitializationHandler {
                     .create()
                     .onDeferredStartup();
             // TODO(crbug.com/1355893) Move to PersistedTabData.onDeferredStartup
-            if (PriceTrackingFeatures.isPriceTrackingEligible()
-                    && ShoppingPersistedTabData.isPriceTrackingWithOptimizationGuideEnabled()) {
-                ShoppingPersistedTabData.onDeferredStartup();
-            }
         });
         deferredStartupHandler.addDeferredTask(() -> {
             if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEATURE_NOTIFICATION_GUIDE)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
@@ -106,10 +106,6 @@ public class ContextualPageActionController {
     protected void initActionProviders(Supplier<ShoppingService> shoppingServiceSupplier,
             Supplier<BookmarkModel> bookmarkModelSupplier) {
         mActionProviders.clear();
-        if (AdaptiveToolbarFeatures.isPriceTrackingPageActionEnabled()) {
-            mActionProviders.add(new PriceTrackingActionProvider(
-                    shoppingServiceSupplier, bookmarkModelSupplier));
-        }
         if (AdaptiveToolbarFeatures.isReaderModePageActionEnabled()) {
             mActionProviders.add(new ReaderModeActionProvider());
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
@@ -14,7 +14,6 @@ import org.chromium.chrome.browser.dom_distiller.TabDistillabilityProvider;
 import org.chromium.chrome.browser.infobar.InfoBarContainer;
 import org.chromium.chrome.browser.media.ui.MediaSessionTabHelper;
 import org.chromium.chrome.browser.password_check.PasswordCheckUkmRecorder;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
 
 /**
@@ -40,14 +39,6 @@ public final class TabHelpers {
         PasswordCheckUkmRecorder.createForTab(tab);
         AccessibilityTabHelper.createForTab(tab);
 
-        // The following will start prefetching data for the price drops feature, so
-        // we should only do it if the user is eligible for the feature (e.g. has sync enabled).
-        if (!tab.isIncognito() && !((TabImpl) tab).isCustomTab()
-                && PriceTrackingFeatures.isPriceTrackingEligible()
-                && ShoppingPersistedTabData.isPriceTrackingWithOptimizationGuideEnabled()) {
-            ShoppingPersistedTabData.initialize(tab);
-        }
-
         // TODO(jinsukkim): Do this by having something observe new tab creation.
         if (tab.isIncognito()) CipherFactory.getInstance().triggerKeyGeneration();
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -72,7 +72,6 @@ import org.chromium.chrome.browser.offlinepages.indicator.OfflineIndicatorInProd
 import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxDialogController;
 import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxDialogLaunchContext;
 import org.chromium.chrome.browser.profiles.Profile;
@@ -83,8 +82,6 @@ import org.chromium.chrome.browser.share.crow.CrowButtonDelegateImpl;
 import org.chromium.chrome.browser.share.crow.CrowIphController;
 import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController;
 import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
 import org.chromium.chrome.browser.tab.RequestDesktopUtils;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabAssociatedApp;
@@ -155,7 +152,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
     private NavigationSheet mNavigationSheet;
     private ComposedBrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
     private LayoutManagerImpl mLayoutManager;
-    private CommerceSubscriptionsService mCommerceSubscriptionsService;
     private UndoGroupSnackbarController mUndoGroupSnackbarController;
     private final int mControlContainerHeightResource;
     private final Supplier<InsetObserverView> mInsetObserverViewSupplier;
@@ -378,11 +374,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
             mUndoGroupSnackbarController.destroy();
         }
 
-        if (mCommerceSubscriptionsService != null) {
-            mCommerceSubscriptionsService.destroy();
-            mCommerceSubscriptionsService = null;
-        }
-
         super.onDestroy();
     }
 
@@ -520,7 +511,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
         mPwaBottomSheetController =
                 PwaBottomSheetControllerFactory.createPwaBottomSheetController(mActivity);
         PwaBottomSheetControllerFactory.attach(mWindowAndroid, mPwaBottomSheetController);
-        initCommerceSubscriptionsService();
         initUndoGroupSnackbarController();
     }
 
@@ -765,18 +755,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
         if (animate) browserControlsSizer.setAnimateBrowserControlsHeightChanges(false);
     }
 
-    private void initCommerceSubscriptionsService() {
-        if (!PriceTrackingFeatures.getPriceTrackingNotificationsEnabled()) {
-            return;
-        }
-
-        CommerceSubscriptionsServiceFactory factory = new CommerceSubscriptionsServiceFactory();
-        mCommerceSubscriptionsService = factory.getForLastUsedProfile();
-        mCommerceSubscriptionsService.getSubscriptionsManager().queryAndUpdateWaaEnabled();
-        mCommerceSubscriptionsService.initDeferredStartupForActivity(
-                mTabModelSelectorSupplier.get(), mActivityLifecycleDispatcher);
-    }
-
     private void initUndoGroupSnackbarController() {
         if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled(mActivity)) {
             mUndoGroupSnackbarController = new UndoGroupSnackbarController(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
@@ -15,8 +15,6 @@ import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.base.task.PostTask;
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
 import org.chromium.chrome.browser.download.DownloadUtils;
 import org.chromium.chrome.browser.feature_engagement.ScreenshotMonitor;
 import org.chromium.chrome.browser.feature_engagement.ScreenshotMonitorDelegate;
@@ -118,7 +116,6 @@ public class ToolbarButtonInProductHelpController
             private void handleIPHForSuccessfulPageLoad(final Tab tab) {
                 showDownloadPageTextBubble(tab, FeatureConstants.DOWNLOAD_PAGE_FEATURE);
                 showTranslateMenuButtonTextBubble(tab);
-                showPriceTrackingIPH(tab);
             }
 
             private void handleIPHForErrorPageShown(Tab tab) {
@@ -149,30 +146,6 @@ public class ToolbarButtonInProductHelpController
         mLifecycleDispatcher.unregister(this);
     }
 
-    /**
-     * Attempt to show the IPH for price tracking.
-     * @param tab The tab currently being displayed to the user.
-     */
-    private void showPriceTrackingIPH(Tab tab) {
-        if (!ShoppingFeatures.isShoppingListEnabled()
-                || !PowerBookmarkUtils.isPriceTrackingEligible(tab)
-                || AdaptiveToolbarFeatures.isContextualPageActionUiEnabled()) {
-            return;
-        }
-
-        mUserEducationHelper.requestShowIPH(
-                new IPHCommandBuilder(mActivity.getResources(),
-                        FeatureConstants.SHOPPING_LIST_MENU_ITEM_FEATURE,
-                        R.string.iph_price_tracking_menu_item,
-                        R.string.iph_price_tracking_menu_item_accessibility)
-                        .setAnchorView(mMenuButtonAnchorView)
-                        .setOnShowCallback(()
-                                                   -> turnOnHighlightForMenuItem(
-                                                           R.id.enable_price_tracking_menu_id))
-                        .setOnDismissCallback(this::turnOffHighlightForMenuItem)
-                        .build());
-    }
-
     /**
      * Attempts to show an IPH text bubble for download continuing.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -92,8 +92,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
 import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
 import org.chromium.chrome.browser.page_info.ChromePageInfo;
 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
 import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
@@ -2018,21 +2016,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
      * viewed in the tab switcher grid.
      */
     private void maybeShowPriceDropIPH() {
-        if (!PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
-                || !PriceTrackingFeatures.isPriceDropIphEnabled() || mTabModelSelector == null
-                || mTabModelSelector.isIncognitoSelected()) {
-            return;
-        }
-        TabModel tabModel = mTabModelSelector.getCurrentModel();
-        for (int i = 0; i < tabModel.getCount(); i++) {
-            ShoppingPersistedTabData.from(tabModel.getTabAt(i), (shoppingPersistedTabData) -> {
-                if (shoppingPersistedTabData != null
-                        && shoppingPersistedTabData.getPriceDrop() != null
-                        && !shoppingPersistedTabData.getIsCurrentPriceDropSeen()) {
-                    showPriceDropIPH();
-                }
-            });
-        }
     }
 
     private void checkIfNtpLoaded() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.app.omnibox.OmniboxPedalDelegateImpl;
 import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
 import org.chromium.chrome.browser.back_press.BackPressManager;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
 import org.chromium.chrome.browser.bookmarks.TabBookmarker;
 import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
 import org.chromium.chrome.browser.commerce.ShoppingFeatures;
@@ -95,7 +94,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
 import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource;
 import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
 import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
@@ -105,7 +103,6 @@ import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
 import org.chromium.chrome.browser.share.ShareUtils;
 import org.chromium.chrome.browser.share.qrcode.QrCodeDialog;
 import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager;
-import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
 import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
 import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
 import org.chromium.chrome.browser.tab.RequestDesktopUtils;
@@ -775,17 +772,6 @@ public class RootUiCoordinator
         initMerchantTrustSignals();
         initScrollCapture();
 
-        // TODO(1293885): Remove this validator once we have an API on the backend that sends
-        //                success/failure information back.
-        if (ShoppingFeatures.isShoppingListEnabled()) {
-            mBookmarkModelSupplier.addObserver((bridge) -> {
-                PowerBookmarkUtils.validateBookmarkedCommerceSubscriptions(bridge,
-                        new CommerceSubscriptionsServiceFactory()
-                                .getForLastUsedProfile()
-                                .getSubscriptionsManager());
-            });
-        }
-
         new OneShotCallback<>(mProfileSupplier, this::initHistoryClustersCoordinator);
 
         if (DeviceFormFactor.isWindowOnTablet(mWindowAndroid)
@@ -1090,12 +1076,6 @@ public class RootUiCoordinator
 
             mIdentityDiscController = new IdentityDiscController(
                     mActivity, mActivityLifecycleDispatcher, mProfileSupplier);
-            PriceTrackingButtonController priceTrackingButtonController =
-                    new PriceTrackingButtonController(mActivityTabProvider,
-                            mModalDialogManagerSupplier.get(), getBottomSheetController(),
-                            AppCompatResources.getDrawable(
-                                    mActivity, R.drawable.price_tracking_disabled),
-                            mTabBookmarkerSupplier);
             ReaderModeToolbarButtonController readerModeToolbarButtonController =
                     new ReaderModeToolbarButtonController(mActivityTabProvider,
                             mModalDialogManagerSupplier.get(),
@@ -1146,8 +1126,6 @@ public class RootUiCoordinator
                     AdaptiveToolbarButtonVariant.SHARE, shareButtonController);
             adaptiveToolbarButtonController.addButtonVariant(
                     AdaptiveToolbarButtonVariant.VOICE, voiceToolbarButtonController);
-            adaptiveToolbarButtonController.addButtonVariant(
-                    AdaptiveToolbarButtonVariant.PRICE_TRACKING, priceTrackingButtonController);
             adaptiveToolbarButtonController.addButtonVariant(
                     AdaptiveToolbarButtonVariant.READER_MODE, readerModeToolbarButtonController);
             mButtonDataProviders =
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -15,9 +15,6 @@ import("//chrome/android/features/tab_ui/tab_management_java_sources.gni")
 import("//chrome/android/feed/feed_java_sources.gni")
 import(
     "//chrome/browser/commerce/merchant_viewer/android/test_java_sources.gni")
-import("//chrome/browser/commerce/price_tracking/android/test_java_sources.gni")
-import(
-    "//chrome/browser/commerce/subscriptions/test/android/test_java_sources.gni")
 import("//chrome/browser/share/android/test_java_sources.gni")
 import("//chrome/common/features.gni")
 import("//components/feed/features.gni")
@@ -41,16 +38,11 @@ chrome_test_java_sources += feed_test_java_sources
 chrome_test_java_sources += start_surface_test_java_sources
 chrome_junit_test_java_sources += start_surface_junit_java_sources
 chrome_junit_test_java_sources += tab_management_junit_java_sources
-chrome_junit_test_java_sources += price_tracking_junit_test_java_sources
-chrome_test_java_sources += price_tracking_test_java_sources
 chrome_test_java_sources += tab_management_test_java_sources
 chrome_test_java_sources += share_test_java_sources
 chrome_junit_test_java_sources += share_junit_test_java_sources
 chrome_junit_test_java_deps = share_junit_test_java_deps
 chrome_junit_test_java_deps += feed_test_deps
-chrome_junit_test_java_sources += commerce_subscriptions_junit_test_sources
-chrome_junit_test_java_deps += commerce_subscriptions_junit_test_deps
-chrome_test_java_sources += commerce_subscriptions_java_test_sources
 chrome_test_java_sources += commerce_merchant_viewer_java_test_sources
 
 if (enable_arcore) {
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2921,8 +2921,6 @@ static_library("browser") {
       "chrome_browser_main_android.h",
       "commerce/android/shopping_service_factory_android.cc",
       "commerce/merchant_viewer/web_contents_helper.cc",
-      "commerce/price_tracking/android/price_tracking_notification_bridge.cc",
-      "commerce/price_tracking/android/price_tracking_notification_bridge.h",
       "component_updater/crow_domain_list_component_installer.cc",
       "component_updater/crow_domain_list_component_installer.h",
       "component_updater/desktop_sharing_hub_component_remover.cc",
diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
--- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
+++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java
@@ -77,7 +77,7 @@ public class PriceTrackingFeatures {
      * @return Whether the price drop notification is eligible to work.
      */
     public static boolean isPriceDropNotificationEligible() {
-        return isPriceTrackingEligible() && getPriceTrackingNotificationsEnabled();
+        return false;
     }
 
     private static boolean isSignedIn() {
diff --git a/chrome/browser/commerce/subscriptions/android/BUILD.gn b/chrome/browser/commerce/subscriptions/android/BUILD.gn
--- a/chrome/browser/commerce/subscriptions/android/BUILD.gn
+++ b/chrome/browser/commerce/subscriptions/android/BUILD.gn
@@ -30,7 +30,6 @@ android_library("subscriptions_java") {
     "//base:jni_java",
     "//build/android:build_java",
     "//chrome/browser/android/lifecycle:java",
-    "//chrome/browser/commerce/price_tracking/android:java",
     "//chrome/browser/endpoint_fetcher:java",
     "//chrome/browser/flags:java",
     "//chrome/browser/preferences:java",
diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java
--- a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java
+++ b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/CommerceSubscriptionsService.java
@@ -10,8 +10,6 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.subscriptions.CommerceSubscription.CommerceSubscriptionType;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 
@@ -27,18 +25,14 @@ public class CommerceSubscriptionsService {
 
     private final SubscriptionsManagerImpl mSubscriptionManager;
     private final SharedPreferencesManager mSharedPreferencesManager;
-    private final PriceDropNotificationManager mPriceDropNotificationManager;
     private final CommerceSubscriptionsMetrics mMetrics;
-    private ImplicitPriceDropSubscriptionsManager mImplicitPriceDropSubscriptionsManager;
     private ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
     private PauseResumeWithNativeObserver mPauseResumeWithNativeObserver;
 
     /** Creates a new instance. */
-    CommerceSubscriptionsService(SubscriptionsManagerImpl subscriptionsManager,
-            PriceDropNotificationManager priceDropNotificationManager) {
+    CommerceSubscriptionsService(SubscriptionsManagerImpl subscriptionsManager) {
         mSubscriptionManager = subscriptionsManager;
         mSharedPreferencesManager = SharedPreferencesManager.getInstance();
-        mPriceDropNotificationManager = priceDropNotificationManager;
         mMetrics = new CommerceSubscriptionsMetrics();
     }
 
@@ -56,12 +50,6 @@ public class CommerceSubscriptionsService {
             public void onPauseWithNative() {}
         };
         mActivityLifecycleDispatcher.register(mPauseResumeWithNativeObserver);
-
-        if (CommerceSubscriptionsServiceConfig.isImplicitSubscriptionsEnabled()
-                && mImplicitPriceDropSubscriptionsManager == null) {
-            mImplicitPriceDropSubscriptionsManager = new ImplicitPriceDropSubscriptionsManager(
-                    tabModelSelector, mSubscriptionManager);
-        }
     }
 
     /** Returns the subscriptionsManager. */
@@ -76,10 +64,6 @@ public class CommerceSubscriptionsService {
         if (mActivityLifecycleDispatcher != null) {
             mActivityLifecycleDispatcher.unregister(mPauseResumeWithNativeObserver);
         }
-        if (mImplicitPriceDropSubscriptionsManager != null) {
-            mImplicitPriceDropSubscriptionsManager.destroy();
-            mImplicitPriceDropSubscriptionsManager = null;
-        }
     }
 
     private void maybeRecordMetricsAndInitializeSubscriptions() {
@@ -93,23 +77,5 @@ public class CommerceSubscriptionsService {
         mSharedPreferencesManager.writeLong(
                 CHROME_MANAGED_SUBSCRIPTIONS_TIMESTAMP, System.currentTimeMillis());
         mMetrics.recordAccountWaaStatus();
-        if (!PriceTrackingFeatures.isPriceDropNotificationEligible()) return;
-        recordMetricsForEligibleAccount();
-        if (mImplicitPriceDropSubscriptionsManager != null) {
-            mImplicitPriceDropSubscriptionsManager.initializeSubscriptions();
-        }
-    }
-
-    private void recordMetricsForEligibleAccount() {
-        // Record notification opt-in metrics.
-        mPriceDropNotificationManager.canPostNotificationWithMetricsRecorded();
-        mPriceDropNotificationManager.recordMetricsForNotificationCounts();
-        mSubscriptionManager.getSubscriptions(
-                CommerceSubscriptionType.PRICE_TRACK, false, mMetrics::recordSubscriptionCounts);
-    }
-
-    @VisibleForTesting
-    void setImplicitSubscriptionsManagerForTesting(ImplicitPriceDropSubscriptionsManager manager) {
-        mImplicitPriceDropSubscriptionsManager = manager;
     }
 }
diff --git a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/SubscriptionsManagerImpl.java b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/SubscriptionsManagerImpl.java
--- a/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/SubscriptionsManagerImpl.java
+++ b/chrome/browser/commerce/subscriptions/android/java/src/org/chromium/chrome/browser/subscriptions/SubscriptionsManagerImpl.java
@@ -11,8 +11,6 @@ import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.Callback;
 import org.chromium.base.ObserverList;
-import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
 import org.chromium.chrome.browser.profiles.Profile;
 
 import java.lang.annotation.Retention;
@@ -43,7 +41,6 @@ public class SubscriptionsManagerImpl implements SubscriptionsManager {
     private boolean mCanHandleRequests;
     private Queue<DeferredSubscriptionOperation> mDeferredTasks;
     private final ObserverList<SubscriptionObserver> mObservers;
-    private final PriceDropNotificationManager mPriceDropNotificationManager;
 
     private static class DeferredSubscriptionOperation {
         private final @Operation int mOperation;
@@ -71,18 +68,16 @@ public class SubscriptionsManagerImpl implements SubscriptionsManager {
     }
 
     public SubscriptionsManagerImpl(
-            Profile profile, PriceDropNotificationManager priceDropNotificationManager) {
+            Profile profile) {
         this(profile, new CommerceSubscriptionsStorage(profile),
-                new CommerceSubscriptionsServiceProxy(profile), priceDropNotificationManager);
+                new CommerceSubscriptionsServiceProxy(profile));
     }
 
     @VisibleForTesting
     SubscriptionsManagerImpl(Profile profile, CommerceSubscriptionsStorage storage,
-            CommerceSubscriptionsServiceProxy proxy,
-            PriceDropNotificationManager priceDropNotificationManager) {
+            CommerceSubscriptionsServiceProxy proxy) {
         mStorage = storage;
         mServiceProxy = proxy;
-        mPriceDropNotificationManager = priceDropNotificationManager;
         mDeferredTasks = new LinkedList<>();
         mCanHandleRequests = false;
         initTypes(this::onInitComplete);
@@ -145,16 +140,6 @@ public class SubscriptionsManagerImpl implements SubscriptionsManager {
             return;
         }
 
-        // Make sure the notification channel is initialized if there is a user-managed PRICE_TRACK
-        // subscription. For chrome-managed subscriptions, channel will be initialized via message
-        // card in tab switcher.
-        if (CommerceSubscription.CommerceSubscriptionType.PRICE_TRACK.equals(type)
-                && CommerceSubscription.SubscriptionManagementType.USER_MANAGED.equals(
-                        subscriptions.get(0).getManagementType())
-                && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            mPriceDropNotificationManager.createNotificationChannel();
-        }
-
         if (!mCanHandleRequests) {
             mDeferredTasks.add(new DeferredSubscriptionOperation(
                     Operation.SUBSCRIBE, subscriptions, wrappedCallback));
@@ -244,11 +229,6 @@ public class SubscriptionsManagerImpl implements SubscriptionsManager {
      */
     void onIdentityChanged() {
         mStorage.deleteAll();
-        // If the feature is still eligible to work, we should re-init and fetch the fresh data.
-        if (PriceTrackingFeatures.isPriceDropNotificationEligible()) {
-            initTypes((status) -> { assert status == SubscriptionsManager.StatusCode.OK; });
-            queryAndUpdateWaaEnabled();
-        }
     }
 
     /**
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
--- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -113,10 +113,6 @@ OptimizationGuideKeyedService::MaybeCreatePushNotificationManager(
   if (optimization_guide::features::IsPushNotificationsEnabled()) {
     auto push_notification_manager =
         std::make_unique<optimization_guide::PushNotificationManager>();
-#if BUILDFLAG(IS_ANDROID)
-    push_notification_manager->AddObserver(
-        PriceTrackingNotificationBridge::GetForBrowserContext(profile));
-#endif
     return push_notification_manager;
   }
   return nullptr;
diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persisted_state_db/BUILD.gn
--- a/chrome/browser/persisted_state_db/BUILD.gn
+++ b/chrome/browser/persisted_state_db/BUILD.gn
@@ -20,7 +20,6 @@ source_set("persisted_state_db") {
 
   deps = [
     "//base:base",
-    "//components/commerce/core:commerce_subscription_db_content_proto",
     "//components/commerce/core:persisted_state_db_content_proto",
     "//components/keyed_service/content",
     "//components/leveldb_proto",
--
2.25.1
