[CodeHealth] Remove ADD_TO_HOMESCREEN_IPH

This has been disabled and not under active development since 2022

Change-Id: I6d7990bb363cbe622df6762c693b8e4518ce5057
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5791594
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Glenn Hartmann <hartmanng@chromium.org>
Auto-Submit: Ella Ge <eirage@chromium.org>
Reviewed-by: Theresa Sullivan <twellington@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1343538}
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index a1b9e67..3cb3df4 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -540,7 +540,6 @@
       "//chrome/browser/util:java",
       "//chrome/browser/version:java",
       "//chrome/browser/wallet/android:java",
-      "//chrome/browser/webapps/android:java",
       "//chrome/browser/webauthn/android:java",
       "//chrome/browser/webid:java",
       "//chrome/browser/xsurface:java",
@@ -1224,7 +1223,6 @@
       "//chrome/browser/util:junit_tests",
       "//chrome/browser/version:java",
       "//chrome/browser/wallet/android:junit",
-      "//chrome/browser/webapps/android:java",
       "//chrome/browser/webauthn/android:java",
       "//chrome/browser/webid:junit",
       "//chrome/browser/xsurface:java",
@@ -1852,7 +1850,6 @@
       "//chrome/browser/ui/messages/android:java",
       "//chrome/browser/uid/android:java",
       "//chrome/browser/util:java",
-      "//chrome/browser/webapps/android:java",
       "//chrome/test:sync_integration_test_support_java",
       "//chrome/test:test_support_java",
       "//chrome/test/android:chrome_java_integration_test_support",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 7f6e5ec7..2ee252f 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1170,7 +1170,6 @@
   "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsService.java",
   "java/src/org/chromium/chrome/browser/usage_stats/WebsiteEvent.java",
   "java/src/org/chromium/chrome/browser/webapps/ActivateWebApkActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver.java",
   "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java",
   "java/src/org/chromium/chrome/browser/webapps/GooglePlayWebApkInstallDelegate.java",
   "java/src/org/chromium/chrome/browser/webapps/PwaRestorePromoUtils.java",
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
index 21663afc8..25170554e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -3117,10 +3117,6 @@
                 currentTab.getWebContents(),
                 menuItemType,
                 universalInstall);
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.ADD_TO_HOMESCREEN_IPH)) {
-            Tracker tracker = TrackerFactory.getTrackerForProfile(currentTab.getProfile());
-            tracker.notifyEvent(EventConstants.ADD_TO_HOMESCREEN_DIALOG_SHOWN);
-        }
         return true;
     }
 
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
index 141be11..751c747f 100644
--- 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
@@ -129,8 +129,6 @@
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.signin.FullscreenSigninPromoLauncher;
 import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider;
-import org.chromium.chrome.browser.webapps.AddToHomescreenIPHController;
-import org.chromium.chrome.browser.webapps.AddToHomescreenMostVisitedTileClickObserver;
 import org.chromium.chrome.browser.webapps.PwaRestorePromoUtils;
 import org.chromium.components.browser_ui.accessibility.PageZoomCoordinator;
 import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver;
@@ -139,7 +137,6 @@
 import org.chromium.components.browser_ui.widget.TouchEventObserver;
 import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator;
 import org.chromium.components.feature_engagement.FeatureConstants;
-import org.chromium.components.messages.MessageDispatcherProvider;
 import org.chromium.components.user_prefs.UserPrefs;
 import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
 import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory;
@@ -172,9 +169,7 @@
     private WebFeedFollowIntroController mWebFeedFollowIntroController;
     private UrlFocusChangeListener mUrlFocusChangeListener;
     private @Nullable ToolbarButtonInProductHelpController mToolbarButtonInProductHelpController;
-    private AddToHomescreenIPHController mAddToHomescreenIPHController;
     private LinkToTextIPHController mLinkToTextIPHController;
-    private AddToHomescreenMostVisitedTileClickObserver mAddToHomescreenMostVisitedTileObserver;
     private PwaBottomSheetController mPwaBottomSheetController;
     private NotificationPermissionController mNotificationPermissionController;
     private HistoryNavigationCoordinator mHistoryNavigationCoordinator;
@@ -451,8 +446,6 @@
 
         if (mRootUiTabObserver != null) mRootUiTabObserver.destroy();
 
-        if (mAddToHomescreenIPHController != null) mAddToHomescreenIPHController.destroy();
-
         if (mPwaBottomSheetController != null) {
             PwaBottomSheetControllerFactory.detach(mPwaBottomSheetController);
         }
@@ -944,19 +937,9 @@
                             mStatusIndicatorCoordinator);
         }
 
-        mAddToHomescreenIPHController =
-                new AddToHomescreenIPHController(
-                        mActivity,
-                        mWindowAndroid,
-                        profile,
-                        mModalDialogManagerSupplier.get(),
-                        MessageDispatcherProvider.from(mWindowAndroid));
         mLinkToTextIPHController =
                 new LinkToTextIPHController(
                         mActivityTabProvider, mTabModelSelectorSupplier.get(), mProfileSupplier);
-        mAddToHomescreenMostVisitedTileObserver =
-                new AddToHomescreenMostVisitedTileClickObserver(
-                        mActivityTabProvider, mAddToHomescreenIPHController);
         if (!didTriggerPromo
                 && mWindowAndroid.getWindow() != null
                 && LocalizationUtils.isLayoutRtl()
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver.java
deleted file mode 100644
index 7f531f1..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver.java
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.webapps;
-
-import org.chromium.base.supplier.ObservableSupplier;
-import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.ntp.NewTabPage;
-import org.chromium.chrome.browser.ntp.NewTabPage.MostVisitedTileClickObserver;
-import org.chromium.chrome.browser.suggestions.tile.Tile;
-import org.chromium.chrome.browser.suggestions.tile.TileSource;
-import org.chromium.chrome.browser.tab.CurrentTabObserver;
-import org.chromium.chrome.browser.tab.EmptyTabObserver;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.url.GURL;
-
-/**
- * This class contains the glue logic necessary for triggering the add to home screen IPH in
- * relation to NTP. It observes the currently shown NTP and forwards the most visited tile click
- * events to the {@link AddToHomescreenIPHController} after the page has been loaded.
- */
-public class AddToHomescreenMostVisitedTileClickObserver implements MostVisitedTileClickObserver {
-    private CurrentTabObserver mCurrentTabObserver;
-    private GURL mLastClickedMostVisitedTileUrl;
-
-    /**
-     * Constructor.
-     * @param tabSupplier The current tab supplier.
-     * @param addToHomescreenIPHController The {@link AddToHomescreenIPHController} responsible for
-     *         showing the IPH messages.
-     */
-    public AddToHomescreenMostVisitedTileClickObserver(
-            ObservableSupplier<Tab> tabSupplier,
-            AddToHomescreenIPHController addToHomescreenIPHController) {
-        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.ADD_TO_HOMESCREEN_IPH)) return;
-
-        mCurrentTabObserver =
-                new CurrentTabObserver(
-                        tabSupplier,
-                        new EmptyTabObserver() {
-                            @Override
-                            public void onPageLoadFinished(Tab tab, GURL url) {
-                                if (isNtp(tab)) {
-                                    // If we are on NTP, add ourselves as an observer for most
-                                    // visited tiles.
-                                    NewTabPage ntp = (NewTabPage) tab.getNativePage();
-                                    ntp.addMostVisitedTileClickObserver(
-                                            AddToHomescreenMostVisitedTileClickObserver.this);
-                                } else {
-                                    // If it is a regular web page, and started from a most visited
-                                    // tile, show IPH.
-                                    if (url.getOrigin().equals(mLastClickedMostVisitedTileUrl)) {
-                                        addToHomescreenIPHController.showAddToHomescreenIPH(tab);
-                                    }
-                                    removeObserver(tab);
-                                }
-                                mLastClickedMostVisitedTileUrl = null;
-                            }
-
-                            @Override
-                            public void onContentChanged(Tab tab) {
-                                removeObserver(tab);
-                            }
-                        },
-                        null);
-    }
-
-    @Override
-    public void onMostVisitedTileClicked(Tile tile, Tab tab) {
-        if (tile.getSource() != TileSource.TOP_SITES) return;
-        mLastClickedMostVisitedTileUrl = tab.getUrl().getOrigin();
-    }
-
-    private void removeObserver(Tab tab) {
-        if (!isNtp(tab)) return;
-
-        NewTabPage ntp = (NewTabPage) tab.getNativePage();
-        ntp.removeMostVisitedTileClickObserver(this);
-    }
-
-    private boolean isNtp(Tab tab) {
-        return tab != null && tab.getNativePage() instanceof NewTabPage;
-    }
-}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 50123fde4..7ce426b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2567,19 +2567,6 @@
 
 #endif  // BUILDFLAG(IS_ANDROID)
 
-#if BUILDFLAG(IS_ANDROID)
-const FeatureEntry::FeatureParam kAddToHomescreen_UseTextBubble[] = {
-    {"use_text_bubble", "true"}};
-const FeatureEntry::FeatureParam kAddToHomescreen_UseMessage[] = {
-    {"use_message", "true"}};
-
-const FeatureEntry::FeatureVariation kAddToHomescreenIPHVariations[] = {
-    {"Use Text Bubble", kAddToHomescreen_UseTextBubble,
-     std::size(kAddToHomescreen_UseTextBubble), nullptr},
-    {"Use Message", kAddToHomescreen_UseMessage,
-     std::size(kAddToHomescreen_UseMessage), nullptr}};
-#endif
-
 const FeatureEntry::Choice kNotificationSchedulerChoices[] = {
     {flags_ui::kGenericExperimentChoiceDefault, "", ""},
     {flag_descriptions::
@@ -5490,11 +5477,6 @@
      flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
 #if BUILDFLAG(IS_ANDROID)
-    {"add-to-homescreen-iph", flag_descriptions::kAddToHomescreenIPHName,
-     flag_descriptions::kAddToHomescreenIPHDescription, kOsAndroid,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAddToHomescreenIPH,
-                                    kAddToHomescreenIPHVariations,
-                                    "AddToHomescreen")},
     {"notification-permission-rationale-dialog",
      flag_descriptions::kNotificationPermissionRationaleName,
      flag_descriptions::kNotificationPermissionRationaleDescription, kOsAndroid,
diff --git a/chrome/browser/banners/android/BUILD.gn b/chrome/browser/banners/android/BUILD.gn
index 46906df..a7186f12 100644
--- a/chrome/browser/banners/android/BUILD.gn
+++ b/chrome/browser/banners/android/BUILD.gn
@@ -20,7 +20,6 @@
     "//chrome/android:chrome_test_java",
     "//chrome/android:chrome_test_util_java",
     "//chrome/browser/android/browserservices/intents:java",
-    "//chrome/browser/feature_engagement:java",
     "//chrome/browser/flags:java",
     "//chrome/browser/profiles/android:java",
     "//chrome/browser/tab:java",
@@ -28,17 +27,12 @@
     "//chrome/browser/ui/android/appmenu:java",
     "//chrome/browser/ui/android/appmenu/test:test_support_java",
     "//chrome/browser/ui/android/strings:ui_strings_grd",
-    "//chrome/browser/webapps/android:java",
     "//chrome/test/android:chrome_java_integration_test_support",
     "//components/browser_ui/bottomsheet/android:java",
     "//components/browser_ui/bottomsheet/android:manager_java",
-    "//components/feature_engagement/public:public_java",
-    "//components/infobars/android:java",
-    "//components/infobars/android:java_resources",
     "//components/messages/android:java",
     "//components/messages/android/internal:java",
     "//components/messages/android/test:test_support_java",
-    "//components/signin/public/android:signin_java_test_support",
     "//components/site_engagement/content/android:java",
     "//components/webapk/android/libs/common:splash_resources",
     "//components/webapps/browser/android:java",
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 6d68da5d..d5f4425 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -77,11 +77,6 @@
     "expiry_milestone": 133
   },
   {
-    "name": "add-to-homescreen-iph",
-    "owners": [ "shaktisahu@chromium.org" ],
-    "expiry_milestone": 100
-  },
-  {
     "name": "align-wakeups",
     "owners": [
       "etiennep@google.com", "fdoray@google.com"
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index a24c383..54db765 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -4232,11 +4232,6 @@
     "Allows saving/filling account passwords when the user is signed-in but "
     "not syncing";
 
-const char kAddToHomescreenIPHName[] = "Add to homescreen IPH";
-const char kAddToHomescreenIPHDescription[] =
-    " Shows in-product-help messages educating users about add to homescreen "
-    "option in chrome.";
-
 const char kAImageReaderName[] = "Android ImageReader";
 const char kAImageReaderDescription[] =
     " Enables MediaPlayer and MediaCodec to use AImageReader on Android. "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 31741d90..57d941e 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2463,9 +2463,6 @@
 extern const char kAdaptiveButtonInTopToolbarCustomizationName[];
 extern const char kAdaptiveButtonInTopToolbarCustomizationDescription[];
 
-extern const char kAddToHomescreenIPHName[];
-extern const char kAddToHomescreenIPHDescription[];
-
 extern const char kAImageReaderName[];
 extern const char kAImageReaderDescription[];
 
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index 52cef28..360417e 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -168,7 +168,6 @@
     &kAdaptiveButtonInTopToolbarTranslate,
     &kAdaptiveButtonInTopToolbarAddToBookmarks,
     &kAdaptiveButtonInTopToolbarCustomizationV2,
-    &kAddToHomescreenIPH,
     &kRedirectExplicitCTAIntentsToExistingActivity,
     &kAllowNewIncognitoTabIntents,
     &kAndroidAppIntegration,
@@ -418,10 +417,6 @@
              "AdaptiveButtonInTopToolbarCustomizationV2",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
-BASE_FEATURE(kAddToHomescreenIPH,
-             "AddToHomescreenIPH",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-
 BASE_FEATURE(kAllowNewIncognitoTabIntents,
              "AllowNewIncognitoTabIntents",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
index 901edbf..313f205 100644
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -17,7 +17,6 @@
 BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarTranslate);
 BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarAddToBookmarks);
 BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2);
-BASE_DECLARE_FEATURE(kAddToHomescreenIPH);
 BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents);
 BASE_DECLARE_FEATURE(kAndroidAppIntegration);
 BASE_DECLARE_FEATURE(kAndroidElegantTextHeight);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index 3244756..d0c100a 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -161,7 +161,6 @@
             "AdaptiveButtonInTopToolbarAddToBookmarks";
     public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
             "AdaptiveButtonInTopToolbarCustomizationV2";
-    public static final String ADD_TO_HOMESCREEN_IPH = "AddToHomescreenIPH";
     public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents";
     public static final String ANDROID_APP_INTEGRATION = "AndroidAppIntegration";
     public static final String ANDROID_ELEGANT_TEXT_HEIGHT = "AndroidElegantTextHeight";
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index a9905727..f5bfd79 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3108,15 +3108,6 @@
       <message name="IDS_WEBAPK_INSTALL_FAILED_ACTION_OPEN" desc="The label of the button which upon click would open the site user was trying to install as PWA. ">
         Go back to site
       </message>
-      <message name="IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_TITLE" desc="The title of in-product-help message encouraging users to add a commonly visited webpage to the home screen.">
-        Add to Home screen
-      </message>
-      <message name="IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_DESCRIPTION" desc="The description of in-product-help message encouraging users to add a commonly visited webpage to the home screen.">
-        Get to this site quicker next time
-      </message>
-      <message name="IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_ACTION" desc="The Add button in the in-product help message encouraging users to add a commonly visited webpage to the home screen.">
-        Add
-      </message>
       <message name="IDS_IPH_MESSAGE_SHARED_HIGHLIGHTING_TITLE" desc="The title of in-product-help message encouraging users to create highlights.">
         Create a highlighted link like this one?
       </message>
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_ACTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_ACTION.png.sha1
deleted file mode 100644
index ba87b5f5..0000000
--- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_ACTION.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-75d45dd2b57b0f65c0b83ea9253d2ed78b8e4a90
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_DESCRIPTION.png.sha1
deleted file mode 100644
index ba87b5f5..0000000
--- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_DESCRIPTION.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-75d45dd2b57b0f65c0b83ea9253d2ed78b8e4a90
\ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_TITLE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_TITLE.png.sha1
deleted file mode 100644
index ba87b5f5..0000000
--- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_IPH_MESSAGE_ADD_TO_HOME_SCREEN_TITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-75d45dd2b57b0f65c0b83ea9253d2ed78b8e4a90
\ No newline at end of file
diff --git a/chrome/browser/webapps/android/BUILD.gn b/chrome/browser/webapps/android/BUILD.gn
deleted file mode 100644
index 83a3b01..0000000
--- a/chrome/browser/webapps/android/BUILD.gn
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2020 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//build/config/android/config.gni")
-import("//build/config/android/rules.gni")
-import("//third_party/jni_zero/jni_zero.gni")
-
-android_library("java") {
-  resources_package = "org.chromium.chrome.browser.webapps"
-
-  sources = [ "java/src/org/chromium/chrome/browser/webapps/AddToHomescreenIPHController.java" ]
-
-  deps = [
-    "//base:base_java",
-    "//base:base_shared_preferences_java",
-    "//chrome/browser/feature_engagement:java",
-    "//chrome/browser/first_run/android:java",
-    "//chrome/browser/flags:java",
-    "//chrome/browser/preferences:java",
-    "//chrome/browser/profiles/android:java",
-    "//chrome/browser/tab:java",
-    "//chrome/browser/ui/android/appmenu:java",
-    "//chrome/browser/ui/android/strings:ui_strings_grd",
-    "//chrome/browser/user_education:java",
-    "//components/browser_ui/bottomsheet/android:java",
-    "//components/browser_ui/styles/android:java_resources",
-    "//components/browser_ui/util/android:java",
-    "//components/embedder_support/android:util_java",
-    "//components/feature_engagement:feature_engagement_java",
-    "//components/messages/android:java",
-    "//components/webapk/android/libs/client:java",
-    "//components/webapps/browser/android:java",
-    "//content/public/android:content_java",
-    "//third_party/androidx:androidx_annotation_annotation_java",
-    "//third_party/androidx:androidx_vectordrawable_vectordrawable_java",
-    "//third_party/jni_zero:jni_zero_java",
-    "//ui/android:ui_no_recycler_view_java",
-    "//url:gurl_java",
-  ]
-}
diff --git a/chrome/browser/webapps/android/DEPS b/chrome/browser/webapps/android/DEPS
deleted file mode 100644
index d2ae3a4b..0000000
--- a/chrome/browser/webapps/android/DEPS
+++ /dev/null
@@ -1,6 +0,0 @@
-# External directories and/or files that can be included from this module:
-include_rules = [
-  "+components/browser_ui/bottomsheet/android",
-  "+components/webapk/android",
-  "+content/public/android/java/src/org/chromium/content_public/browser",
-]
diff --git a/chrome/browser/webapps/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenIPHController.java b/chrome/browser/webapps/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenIPHController.java
deleted file mode 100644
index 5c252f48..0000000
--- a/chrome/browser/webapps/android/java/src/org/chromium/chrome/browser/webapps/AddToHomescreenIPHController.java
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.webapps;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.pm.ResolveInfo;
-
-import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.chrome.browser.banners.AppMenuVerbiage;
-import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
-import org.chromium.components.embedder_support.util.UrlConstants;
-import org.chromium.components.feature_engagement.EventConstants;
-import org.chromium.components.feature_engagement.FeatureConstants;
-import org.chromium.components.feature_engagement.Tracker;
-import org.chromium.components.messages.MessageBannerProperties;
-import org.chromium.components.messages.MessageDispatcher;
-import org.chromium.components.messages.MessageIdentifier;
-import org.chromium.components.messages.MessageScopeType;
-import org.chromium.components.messages.PrimaryActionClickBehavior;
-import org.chromium.components.webapk.lib.client.WebApkValidator;
-import org.chromium.components.webapps.AddToHomescreenCoordinator;
-import org.chromium.components.webapps.AppBannerManager;
-import org.chromium.components.webapps.WebappsUtils;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.ui.base.WindowAndroid;
-import org.chromium.ui.modaldialog.ModalDialogManager;
-import org.chromium.ui.modelutil.PropertyModel;
-import org.chromium.url.GURL;
-
-/**
- * This class is responsible for rendering the 'Add to home screen' IPH, such as IPH bubble/message
- * creation, metrics logging etc.
- */
-public class AddToHomescreenIPHController {
-    private Activity mActivity;
-    private final WindowAndroid mWindowAndroid;
-    private final ModalDialogManager mModalDialogManager;
-    private final MessageDispatcher mMessageDispatcher;
-    private final Tracker mTracker;
-
-    /**
-     * Creates an {@link AddToHomescreenIPHController}.
-     *
-     * @param activity The associated activity.
-     * @param windowAndroid The associated {@link WindowAndroid}.
-     * @param profile The {@link Profile} associated with the current session.
-     * @param modalDialogManager The {@link ModalDialogManager} for showing the dialog.
-     * @param messageDispatcher The {@link MessageDispatcher} for displaying messages.
-     */
-    public AddToHomescreenIPHController(
-            Activity activity,
-            WindowAndroid windowAndroid,
-            Profile profile,
-            ModalDialogManager modalDialogManager,
-            MessageDispatcher messageDispatcher) {
-        mActivity = activity;
-        mWindowAndroid = windowAndroid;
-        mModalDialogManager = modalDialogManager;
-        mMessageDispatcher = messageDispatcher;
-        mTracker = TrackerFactory.getTrackerForProfile(profile);
-    }
-
-    /**
-     * Called to show in-product-help message.
-     *
-     * @param tab The current tab.
-     */
-    public void showAddToHomescreenIPH(Tab tab) {
-        if (!mTracker.shouldTriggerHelpUI(FeatureConstants.ADD_TO_HOMESCREEN_MESSAGE_FEATURE)) {
-            return;
-        }
-
-        if (mActivity == null) return;
-        if (!canShowAddToHomescreenMenuItem(mActivity, tab)) return;
-        showMessageIPH(tab);
-    }
-
-    /** Called to notify that the activity is in the process of being destroyed. */
-    public void destroy() {
-        mActivity = null;
-    }
-
-    private static boolean canShowAddToHomescreenMenuItem(Context context, Tab tab) {
-        if (tab.isIncognito()) return false;
-
-        GURL url = tab.getUrl();
-        if (url.isEmpty() || !url.isValid()) return false;
-
-        String urlString = url.getSpec();
-        boolean isChromeScheme =
-                urlString.startsWith(UrlConstants.CHROME_URL_PREFIX)
-                        || urlString.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
-        boolean isFileScheme = urlString.startsWith(UrlConstants.FILE_URL_PREFIX);
-        boolean isContentScheme = urlString.startsWith(UrlConstants.CONTENT_URL_PREFIX);
-        boolean urlSchemeSupported = !isChromeScheme && !isFileScheme && !isContentScheme;
-
-        if (!urlSchemeSupported) return false;
-        if (!WebappsUtils.isAddToHomeIntentSupported()) return false;
-
-        // If it is a web apk, don't show the IPH.
-        ResolveInfo resolveInfo = WebApkValidator.queryFirstWebApkResolveInfo(context, urlString);
-        boolean isInstalledAsPwa =
-                resolveInfo != null && resolveInfo.activityInfo.packageName != null;
-        if (isInstalledAsPwa) return false;
-
-        // If it can be installed as a PWA, don't show the IPH.
-        WebContents webContents = tab.getWebContents();
-        AppBannerManager manager =
-                webContents != null ? AppBannerManager.forWebContents(webContents) : null;
-        boolean canInstallAsPwa = manager != null && manager.getIsPwa(webContents);
-        if (canInstallAsPwa) return false;
-
-        return true;
-    }
-
-    private void showMessageIPH(Tab tab) {
-        PropertyModel model =
-                new PropertyModel.Builder(MessageBannerProperties.ALL_KEYS)
-                        .with(
-                                MessageBannerProperties.MESSAGE_IDENTIFIER,
-                                MessageIdentifier.ADD_TO_HOMESCREEN_IPH)
-                        .with(
-                                MessageBannerProperties.ICON,
-                                TraceEventVectorDrawableCompat.create(
-                                        mActivity.getResources(),
-                                        R.drawable.ic_apps_blue_24dp,
-                                        mActivity.getTheme()))
-                        .with(
-                                MessageBannerProperties.TITLE,
-                                mActivity
-                                        .getResources()
-                                        .getString(R.string.iph_message_add_to_home_screen_title))
-                        .with(
-                                MessageBannerProperties.DESCRIPTION,
-                                mActivity
-                                        .getResources()
-                                        .getString(
-                                                R.string
-                                                        .iph_message_add_to_home_screen_description))
-                        .with(
-                                MessageBannerProperties.PRIMARY_BUTTON_TEXT,
-                                mActivity
-                                        .getResources()
-                                        .getString(R.string.iph_message_add_to_home_screen_action))
-                        .with(MessageBannerProperties.ON_DISMISSED, this::onMessageDismissed)
-                        .with(
-                                MessageBannerProperties.ON_PRIMARY_ACTION,
-                                () -> {
-                                    onMessageAddButtonClicked(tab);
-                                    return PrimaryActionClickBehavior.DISMISS_IMMEDIATELY;
-                                })
-                        .build();
-        mMessageDispatcher.enqueueMessage(
-                model, tab.getWebContents(), MessageScopeType.NAVIGATION, false);
-        RecordUserAction.record("Android.AddToHomescreenIPH.Message.Shown");
-    }
-
-    private void onMessageAddButtonClicked(Tab tab) {
-        if (tab.isDestroyed() || mActivity == null) return;
-
-        AddToHomescreenCoordinator.showForAppMenu(
-                mActivity,
-                mWindowAndroid,
-                mModalDialogManager,
-                tab.getWebContents(),
-                AppMenuVerbiage.APP_MENU_OPTION_ADD_TO_HOMESCREEN,
-                /* universalInstall= */ false);
-        mTracker.notifyEvent(EventConstants.ADD_TO_HOMESCREEN_DIALOG_SHOWN);
-        RecordUserAction.record("Android.AddToHomescreenIPH.Message.Clicked");
-    }
-
-    private void onMessageDismissed(Integer dismissReason) {
-        // TODO(shaktisahu): Record metrics for explicit dismiss vs timeout.
-        mTracker.dismissed(FeatureConstants.ADD_TO_HOMESCREEN_MESSAGE_FEATURE);
-    }
-}
diff --git a/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java b/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
index 7600ae73..ec6f44bf 100644
--- a/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
+++ b/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
@@ -21,7 +21,6 @@
     FeatureConstants.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_TRANSLATE_FEATURE,
     FeatureConstants.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_ADD_TO_BOOKMARKS_FEATURE,
     FeatureConstants.ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_READ_ALOUD_FEATURE,
-    FeatureConstants.ADD_TO_HOMESCREEN_MESSAGE_FEATURE,
     FeatureConstants.APP_SPECIFIC_HISTORY_FEATURE,
     FeatureConstants.AUTO_DARK_OPT_OUT_FEATURE,
     FeatureConstants.AUTO_DARK_USER_EDUCATION_MESSAGE_FEATURE,
@@ -122,7 +121,6 @@
             "IPH_AdaptiveButtonInTopToolbarCustomization_AddToBookmarks";
     String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_READ_ALOUD_FEATURE =
             "IPH_AdaptiveButtonInTopToolbarCustomization_ReadAloud";
-    String ADD_TO_HOMESCREEN_MESSAGE_FEATURE = "IPH_AddToHomescreenMessage";
     String ANDROID_TAB_DECLUTTER_FEATURE = "IPH_AndroidTabDeclutter";
     String APP_SPECIFIC_HISTORY_FEATURE = "IPH_AppSpecificHistory";
     String AUTO_DARK_OPT_OUT_FEATURE = "IPH_AutoDarkOptOut";
diff --git a/components/messages/android/java/src/org/chromium/components/messages/MessagesMetrics.java b/components/messages/android/java/src/org/chromium/components/messages/MessagesMetrics.java
index 03525e3..6e2d96b 100644
--- a/components/messages/android/java/src/org/chromium/components/messages/MessagesMetrics.java
+++ b/components/messages/android/java/src/org/chromium/components/messages/MessagesMetrics.java
@@ -336,8 +336,6 @@
                 return "SaveAddressProfile";
             case MessageIdentifier.MERCHANT_TRUST:
                 return "MerchantTrust";
-            case MessageIdentifier.ADD_TO_HOMESCREEN_IPH:
-                return "AddToHomescreenIPH";
             case MessageIdentifier.SEND_TAB_TO_SELF:
                 return "SendTabToSelf";
             case MessageIdentifier.READER_MODE:
diff --git a/components/messages/android/message_enums.h b/components/messages/android/message_enums.h
index 724b518..50c692f 100644
--- a/components/messages/android/message_enums.h
+++ b/components/messages/android/message_enums.h
@@ -88,7 +88,7 @@
   SAFETY_TIP = 5,
   SAVE_ADDRESS_PROFILE = 6,
   MERCHANT_TRUST = 7,
-  ADD_TO_HOMESCREEN_IPH = 8,
+  // Removed: ADD_TO_HOMESCREEN_IPH = 8,
   SEND_TAB_TO_SELF = 9,
   READER_MODE = 10,
   CHROME_SURVEY = 11,
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 7b6c069..a8e2c69 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -2640,6 +2640,7 @@
 </action>
 
 <action name="Android.AddToHomescreenIPH.Message.Clicked">
+  <obsolete>Deprecated as of 08/2024</obsolete>
   <owner>shaktisahu@chromium.org</owner>
   <owner>dtrainor@chromium.org</owner>
   <description>
@@ -2648,6 +2649,7 @@
 </action>
 
 <action name="Android.AddToHomescreenIPH.Message.Shown">
+  <obsolete>Deprecated as of 08/2024</obsolete>
   <owner>shaktisahu@chromium.org</owner>
   <owner>dtrainor@chromium.org</owner>
   <description>Add to homescreen IPH message UI was shown.</description>
diff --git a/tools/metrics/histograms/metadata/android/enums.xml b/tools/metrics/histograms/metadata/android/enums.xml
index d61a4cc..18e2f4e9 100644
--- a/tools/metrics/histograms/metadata/android/enums.xml
+++ b/tools/metrics/histograms/metadata/android/enums.xml
@@ -1058,7 +1058,6 @@
   <int value="5" label="SafetyTip"/>
   <int value="6" label="SaveAddressProfile"/>
   <int value="7" label="MerchantTrust"/>
-  <int value="8" label="AddToHomescreenIPH"/>
   <int value="9" label="SendTabToSelf"/>
   <int value="10" label="ReaderMode"/>
   <int value="11" label="ChromeSurvey"/>