Files
cromite/build/patches/Remove-price-shopping-commerce-integrations.patch

2125 lines
118 KiB
Diff

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 | 5 -
.../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 | 97 +---------
.../tab_management/TabSwitcherMediator.java | 57 ------
.../chrome/browser/app/ChromeActivity.java | 4 -
.../AppMenuPropertiesDelegateImpl.java | 11 +-
.../browser/bookmarks/BookmarkBridge.java | 84 ---------
.../bookmarks/BookmarkItemsAdapter.java | 11 --
.../browser/bookmarks/BookmarkManager.java | 12 --
.../BookmarkSaveFlowCoordinator.java | 6 +-
.../bookmarks/BookmarkSaveFlowMediator.java | 55 +-----
.../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, 28 insertions(+), 852 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")
@@ -406,9 +402,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",
@@ -793,16 +786,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_printing) {
deps += [ "//printing:printing_java" ]
}
@@ -1009,9 +992,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",
@@ -1403,7 +1383,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",
@@ -1534,8 +1513,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",
@@ -1814,8 +1791,6 @@ if (current_toolchain == default_toolchain) {
deps += feed_test_deps
- deps += commerce_subscriptions_java_test_deps
-
if (enable_printing) {
deps += [ "//printing:printing_java" ]
}
@@ -4189,8 +4164,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
@@ -195,10 +195,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",
@@ -941,7 +937,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,9 +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/SelectableTabGridView.java",
"java/src/org/chromium/chrome/browser/tasks/tab_management/StoreHoursCardView.java",
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java",
@@ -192,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",
@@ -274,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
@@ -99,7 +99,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
@@ -56,7 +56,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.
*
@@ -112,7 +112,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.
@@ -129,8 +128,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;
@@ -234,7 +231,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) {
@@ -393,13 +390,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.
@@ -549,15 +539,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
@@ -796,35 +743,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) {
@@ -1269,9 +1187,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++) {
@@ -1336,11 +1251,6 @@ class TabListMediator {
void hardCleanup() {
assert !mVisible;
- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
- && (PriceTrackingFeatures.isPriceDropIphEnabled()
- || PriceTrackingFeatures.isPriceDropBadgeEnabled())) {
- saveSeenPriceDrops();
- }
sViewedTabIds.clear();
}
@@ -1501,25 +1411,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() {
@@ -1897,34 +1788,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
@@ -2032,23 +1895,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
@@ -2059,7 +1905,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();
@@ -2152,27 +1998,6 @@ class TabListMediator {
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());
- }
- }
-
/**
* @param tab the {@link Tab} to find the group index of.
* @return the index for the tab group within {@link mModel}
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
@@ -197,7 +197,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.
*/
@@ -136,8 +130,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;
@@ -190,7 +182,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);
@@ -210,7 +202,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);
@@ -293,21 +285,6 @@ public class TabSwitcherCoordinator
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);
- }
-
mTabSwitcherMenuActionHandler =
new MenuOrKeyboardActionController.MenuOrKeyboardActionHandler() {
@Override
@@ -453,8 +430,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;
}
@@ -526,19 +501,6 @@ public class TabSwitcherCoordinator
RecordUserAction.record("TabMultiSelectV2.OpenFromGrid");
}
- private void setUpPriceTracking(Context context, ModalDialogManager modalDialogManager) {
- if (PriceTrackingFeatures.isPriceTrackingEnabled()) {
- PriceDropNotificationManager notificationManager =
- PriceDropNotificationManagerFactory.create();
- 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) {
@@ -668,22 +630,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;
}
@@ -720,38 +670,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;
@@ -781,9 +699,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);
@@ -833,8 +748,7 @@ public class TabSwitcherCoordinator
}
private boolean shouldRegisterLargeMessageItemType() {
- return PriceTrackingFeatures.isPriceTrackingEnabled()
- || IncognitoReauthManager.isIncognitoReauthFeatureAvailable();
+ return IncognitoReauthManager.isIncognitoReauthFeatureAvailable();
}
@Override
@@ -872,9 +786,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
@@ -47,7 +47,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;
@@ -80,7 +79,6 @@ import java.util.List;
*/
class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView.VisibilityListener,
TabListMediator.GridCardOnClickListenerProvider,
- PriceMessageService.PriceWelcomeMessageReviewActionProvider,
TabSwitcherCustomViewManager.Delegate {
private static final String TAG = "TabSwitcherMediator";
@@ -155,7 +153,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
private TabSelectionEditorCoordinator
.TabSelectionEditorController mTabSelectionEditorController;
private TabSwitcher.OnTabSelectingListener mOnTabSelectingListener;
- private PriceMessageService mPriceMessageService;
private boolean mIsOnHomepage;
/**
@@ -262,29 +259,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}.
@@ -305,7 +279,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) {
@@ -403,9 +376,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();
}
}
@@ -414,10 +384,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
if (mTabModelSelector.getCurrentModel().getCount() == 1) {
messageItemsController.restoreAllAppendedMessage();
}
- if (mPriceMessageService != null
- && mPriceMessageService.getBindingTabId() == tab.getId()) {
- priceWelcomeMessageController.restorePriceWelcomeMessage();
- }
notifyBackPressStateChangedInternal();
}
@@ -433,12 +399,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();
- }
}
};
@@ -698,14 +658,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
@@ -1054,10 +1006,6 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView
mOnTabSelectingListener = listener;
}
- void setPriceMessageService(PriceMessageService priceMessageService) {
- mPriceMessageService = priceMessageService;
- }
-
// GridCardOnClickListenerProvider implementation.
@Override
@Nullable
@@ -1091,11 +1039,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,7 +83,6 @@ 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.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.layouts.Layout;
@@ -2403,10 +2402,7 @@ 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;
}
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;
@@ -1180,9 +1179,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) {
@@ -1218,7 +1217,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;
@@ -55,8 +52,6 @@ class BookmarkBridge {
private boolean mIsNativeBookmarkModelLoaded;
private final ObserverList<BookmarkModelObserver> mObservers =
new ObserverList<BookmarkModelObserver>();
- private SubscriptionsManager mSubscriptionManager;
- private SubscriptionsManager.SubscriptionObserver mSubscriptionsObserver;
/**
* Handler to fetch the bookmarks, titles, urls and folder hierarchy.
@@ -68,26 +63,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;
}
/**
@@ -101,10 +76,6 @@ class BookmarkBridge {
mIsNativeBookmarkModelLoaded = false;
}
mObservers.clear();
-
- if (mSubscriptionManager != null) {
- mSubscriptionManager.removeObserver(mSubscriptionsObserver);
- }
}
/** Returns whether the bridge has been destroyed. */
@@ -408,61 +379,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
@@ -63,7 +63,6 @@ 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;
@@ -121,7 +120,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkLis
ImageFetcherFactory.createImageFetcher(ImageFetcherConfig.IN_MEMORY_WITH_DISK_CACHE,
Profile.getLastUsedRegularProfile().getProfileKey(),
GlobalDiscardableReferencePool.getReferencePool());
- mCommerceSubscriptionsServiceFactory = new CommerceSubscriptionsServiceFactory();
mSnackbarManager = snackbarManager;
}
@@ -228,16 +226,7 @@ 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(), 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
@@ -20,7 +20,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.commerce.PriceTrackingUtils;
import org.chromium.chrome.browser.commerce.ShoppingFeatures;
import org.chromium.chrome.browser.profiles.Profile;
-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;
@@ -55,13 +54,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;
@@ -72,7 +68,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());
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
@@ -15,13 +15,10 @@ 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.commerce.PriceTrackingUtils;
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
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;
@@ -32,7 +29,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;
@@ -53,22 +50,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);
- }
}
/**
@@ -103,9 +93,6 @@ public class BookmarkSaveFlowMediator
mCloseRunnable.run();
});
- if (meta != null) {
- mSubscription = PowerBookmarkUtils.createCommerceSubscriptionForPowerBookmarkMeta(meta);
- }
bindBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, mWasBookmarkMoved);
bindPowerBookmarkProperties(mBookmarkId, mPowerBookmarkMeta, fromExplicitTrackUi);
}
@@ -131,23 +118,6 @@ 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) {
@@ -168,9 +138,6 @@ public class BookmarkSaveFlowMediator
setPriceTrackingIconForEnabledState(toggled);
PriceTrackingUtils.setPriceTrackingStateForBookmark(Profile.getLastUsedRegularProfile(),
mBookmarkId.getId(), toggled, mSubscriptionsManagerCallback);
- PowerBookmarkMetrics.reportBookmarkSaveFlowPriceTrackingState(toggled
- ? PriceTrackingState.PRICE_TRACKING_ENABLED
- : PriceTrackingState.PRICE_TRACKING_DISABLED);
}
void setPriceTrackingNotificationUiEnabled(boolean enabled) {
@@ -189,9 +156,6 @@ public class BookmarkSaveFlowMediator
void destroy() {
mBookmarkModel.removeObserver(this);
- if (mSubscriptionsManager != null) {
- mSubscriptionsManager.removeObserver(this);
- }
mBookmarkModel = null;
mPropertyModel = null;
@@ -212,10 +176,6 @@ public class BookmarkSaveFlowMediator
this::handleNotificationSwitchToggle);
}
- void setSubscriptionForTesting(CommerceSubscription subscription) {
- mSubscription = subscription;
- }
-
// BookmarkModelObserver implementation
@Override
@@ -227,15 +187,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;
@@ -446,10 +445,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
@@ -73,7 +73,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.profiles.Profile;
import org.chromium.chrome.browser.read_later.ReadLaterIPHController;
@@ -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;
@@ -154,7 +151,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;
@@ -383,11 +379,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mUndoGroupSnackbarController.destroy();
}
- if (mCommerceSubscriptionsService != null) {
- mCommerceSubscriptionsService.destroy();
- mCommerceSubscriptionsService = null;
- }
-
if (mTabSwitcherCustomViewManagerCallbackController != null) {
mTabSwitcherCustomViewManagerCallbackController.destroy();
}
@@ -529,7 +520,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mPwaBottomSheetController =
PwaBottomSheetControllerFactory.createPwaBottomSheetController(mActivity);
PwaBottomSheetControllerFactory.attach(mWindowAndroid, mPwaBottomSheetController);
- initCommerceSubscriptionsService();
initUndoGroupSnackbarController();
}
@@ -770,18 +760,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
@@ -90,8 +90,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;
@@ -2016,21 +2014,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)
@@ -1088,12 +1074,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(),
@@ -1144,8 +1124,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/browser/tab_group/javatests/tab_groups_test_java_sources.gni")
import("//chrome/common/features.gni")
@@ -43,16 +40,11 @@ chrome_test_java_sources += start_surface_test_java_sources
chrome_test_java_sources += tab_groups_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
@@ -2883,8 +2883,6 @@ static_library("browser") {
"commerce/android/price_tracking_utils_android.cc",
"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