From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 25 May 2021 19:46:14 +0200
Subject: Add flag to disable external intent requests

Adds a new flag that allows to control the switch with same name;
when flag is disabled no external intent will ever be allowed, for any URL.

License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
 chrome/browser/about_flags.cc       | 3 +++
 chrome/browser/flag_descriptions.cc | 6 ++++++
 chrome/browser/flag_descriptions.h  | 3 +++
 3 files changed, 12 insertions(+)

diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3621,6 +3621,9 @@ const FeatureEntry kFeatureEntries[] = {
     {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
      flag_descriptions::kUiPartialSwapDescription, kOsAll,
      SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
+    {"disable-external-intent-requests", flag_descriptions::kDisableExternalIntentRequestsName,
+     flag_descriptions::kDisableExternalIntentRequestsDescription, kOsAll,
+     SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")},
     {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName,
      flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS,
      SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)},
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3966,6 +3966,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
 const char kPhotoPickerVideoSupportDescription[] =
     "Enables video files to be shown in the Photo Picker dialog";
 
+const char kDisableExternalIntentRequestsName[] =
+    "Never forward URL requests to external intents";
+const char kDisableExternalIntentRequestsDescription[] =
+    "URL requests will never"
+    "allow for redirecting to an external intent.";
+
 const char kQueryTilesName[] = "Show query tiles";
 const char kQueryTilesDescription[] = "Shows query tiles in Chrome";
 const char kQueryTilesNTPName[] = "Show query tiles in NTP";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2274,6 +2274,9 @@ extern const char kQueryTilesNTPDescription[];
 extern const char kQueryTilesOnStartName[];
 extern const char kQueryTilesOnStartDescription[];
 extern const char kQueryTilesSingleTierName[];
+extern const char kDisableExternalIntentRequestsName[];
+extern const char kDisableExternalIntentRequestsDescription[];
+
 extern const char kQueryTilesSingleTierDescription[];
 extern const char kQueryTilesEnableQueryEditingName[];
 extern const char kQueryTilesEnableQueryEditingDescription[];
--
2.25.1
