[Android] Create and use feature list for //components/external_intents
This CL eliminates the last //chrome dependence of
ExternalNavigationHandler.java, on ChromeFeatureList.java. To do so it
componentizes the one feature that ExternalNavigationHandler uses into
//components/external_intents via a minimal
ExternalIntentsFeatureList.java.
Bug: 1031465
Change-Id: If3c81a1d03516a4d71a98126c939255f74296616
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2096559
Commit-Queue: Colin Blundell <[email protected]>
Reviewed-by: Henrique Nakashima <[email protected]>
Reviewed-by: Michael Thiessen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#749130}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
index 377ee98d..756ed39 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
@@ -26,9 +26,9 @@
import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.embedder_support.util.UrlUtilities;
+import org.chromium.components.external_intents.ExternalIntentsFeatureList;
import org.chromium.components.external_intents.ExternalIntentsSwitches;
import org.chromium.components.external_intents.ExternalNavigationParams;
import org.chromium.components.external_intents.RedirectHandler;
@@ -361,8 +361,8 @@
/** Wrapper of check against the feature to support overriding for testing. */
@VisibleForTesting
boolean blockExternalFormRedirectsWithoutGesture() {
- return ChromeFeatureList.isEnabled(
- ChromeFeatureList.INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE);
+ return ExternalIntentsFeatureList.isEnabled(
+ ExternalIntentsFeatureList.INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE);
}
/**
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 0a877e9..b328704e 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2999,6 +2999,7 @@
"//components/crash/android:crash_android",
"//components/embedder_support/android:util",
"//components/embedder_support/android:web_contents_delegate",
+ "//components/external_intents/android",
"//components/feed:buildflags",
"//components/feed:feature_list",
"//components/invalidation/impl:feature_list",
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
index 63cbb23..44c8186 100644
--- a/chrome/browser/DEPS
+++ b/chrome/browser/DEPS
@@ -98,6 +98,7 @@
"+components/embedder_support",
"+components/encrypted_messages",
"+components/exo",
+ "+components/external_intents",
"+components/favicon_base",
"+components/favicon/content",
"+components/favicon/core",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 87f484ca..32071ea 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -177,6 +177,7 @@
#if defined(OS_ANDROID)
#include "chrome/browser/android/explore_sites/explore_sites_feature.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
+#include "components/external_intents/android/external_intents_feature_list.h"
#else // OS_ANDROID
#include "chrome/browser/media/router/media_router_feature.h"
#endif // OS_ANDROID
@@ -4861,7 +4862,7 @@
flag_descriptions::kIntentBlockExternalFormRedirectsNoGestureDescription,
kOsAndroid,
FEATURE_VALUE_TYPE(
- chrome::android::kIntentBlockExternalFormRedirectsNoGesture)},
+ external_intents::kIntentBlockExternalFormRedirectsNoGesture)},
{"recover-from-never-save-android",
flag_descriptions::kRecoverFromNeverSaveAndroidName,
flag_descriptions::kRecoverFromNeverSaveAndroidDescription, kOsAndroid,
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index f3e6c311..67ec332 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -157,7 +157,6 @@
&kHorizontalTabSwitcherAndroid,
&kImmersiveUiMode,
&kInlineUpdateFlow,
- &kIntentBlockExternalFormRedirectsNoGesture,
&kKitKatSupported,
&kNewPhotoPicker,
&kNotificationSuspender,
@@ -458,10 +457,6 @@
const base::Feature kInlineUpdateFlow{"InlineUpdateFlow",
base::FEATURE_DISABLED_BY_DEFAULT};
-const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
- "IntentBlockExternalFormRedirectsNoGesture",
- base::FEATURE_DISABLED_BY_DEFAULT};
-
const base::Feature kKitKatSupported{"KitKatSupported",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
index 70aa2fc..21815f7 100644
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -78,7 +78,6 @@
extern const base::Feature kImmersiveUiMode;
extern const base::Feature kImprovedA2HS;
extern const base::Feature kInlineUpdateFlow;
-extern const base::Feature kIntentBlockExternalFormRedirectsNoGesture;
extern const base::Feature kKitKatSupported;
extern const base::Feature kLanguagesPreference;
extern const base::Feature kNewPhotoPicker;
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 597c893..b14928cb5 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
@@ -310,8 +310,6 @@
"ImprovedCookieControlsForThirdPartyCookieBlocking";
public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
public static final String INSTALLABLE_AMBIENT_BADGE_INFOBAR = "InstallableAmbientBadgeInfoBar";
- public static final String INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE =
- "IntentBlockExternalFormRedirectsNoGesture";
public static final String INTEREST_FEED_CONTENT_SUGGESTIONS = "InterestFeedContentSuggestions";
public static final String INTEREST_FEED_FEEDBACK = "InterestFeedFeedback";
public static final String KITKAT_SUPPORTED = "KitKatSupported";