[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"/>