Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20e260ad authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Browser: Enable external intent by default

parent 68e5e307
Loading
Loading
Loading
Loading
+175 −0
Original line number Diff line number Diff line
From 65e44d310e964eb6f6eab29b978dc14b7aed4e3c Mon Sep 17 00:00:00 2001
From: althafvly <althafvly@gmail.com>
Date: Tue, 5 Nov 2024 10:08:21 +0530
Subject: Browser: Enable external intent requests

---
 .../java/res/xml/privacy_preferences.xml      |  3 +-
 .../ExternalNavigationDelegateImpl.java       |  6 ++--
 .../privacy/settings/PrivacySettings.java     | 11 +++++++
 .../cromite/sAllowExternalIntentRequests.java | 33 -------------------
 ...ag-to-disable-external-intent-requests.inc | 13 --------
 ...ag-to-disable-external-intent-requests.inc |  3 --
 6 files changed, 15 insertions(+), 54 deletions(-)
 delete mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
 delete mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
 delete mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-flag-to-disable-external-intent-requests.inc

diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
index 91183f69c335e..abab143d39093 100644
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -93,8 +93,7 @@ found in the LICENSE file.
         android:key="allow_external_intent_requests"
         android:title="@string/allow_external_intent_requests_title"
         android:summary="@string/allow_external_intent_requests_summary"
-        app:featureName="AllowExternalIntentRequests"
-        app:needRestart="false" />
+        android:defaultValue="true" />
     <PreferenceCategory
         android:key="security_section"
         android:title="@string/security_section_title" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
index 57a70e9368a9b..2a37f7595d7ea 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
@@ -19,7 +19,6 @@ import org.chromium.base.IntentUtils;
 import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.chrome.browser.ChromeTabbedActivity2;
-import org.chromium.chrome.browser.flags.cromite.sAllowExternalIntentRequests;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.Tab;
@@ -42,6 +41,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
 
     private boolean mIsTabDestroyed;
 
+    public static final String PREF_OPEN_EXTERNAL_INTENT = "allow_external_intent_requests";
+
     public ExternalNavigationDelegateImpl(Tab tab) {
         mTab = tab;
         mTabModelSelectorSupplier = TabModelSelectorSupplier.from(tab.getWindowAndroid());
@@ -104,8 +105,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
 
     @Override
     public boolean shouldDisableExternalIntentRequestsForUrl(GURL url) {
-        if ("tel".equals(url.getScheme())) return false;
-        return !sAllowExternalIntentRequests.getInstance().isEnabled();
+        return !ContextUtils.getAppSharedPreferences().getBoolean(PREF_OPEN_EXTERNAL_INTENT, true);
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
index caf093d5f4b70..630895519a0e0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -119,6 +119,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
 
     private ChromeSwitchPreference allowCustomTabIntentsPref;
     private ChromeSwitchPreference openExternalLinksPref;
+    private ChromeSwitchPreference openExternalIntentPref;
 
     private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold";
 
@@ -381,6 +382,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
 
     public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
     public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
+    public static final String PREF_OPEN_EXTERNAL_INTENT = "allow_external_intent_requests";
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -423,6 +425,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
             SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
             sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
             sharedPreferencesEditor.apply();
+        } else if (PREF_OPEN_EXTERNAL_INTENT.equals(key)) {
+            SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
+            sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_INTENT, (boolean)newValue);
+            sharedPreferencesEditor.apply();
         }
         return true;
     }
@@ -455,6 +461,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
         openExternalLinksPref.setOnPreferenceChangeListener(this);
         openExternalLinksPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
 
+        openExternalIntentPref =
+                (ChromeSwitchPreference) findPreference(PREF_OPEN_EXTERNAL_INTENT);
+        openExternalIntentPref.setOnPreferenceChangeListener(this);
+        openExternalIntentPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
+
         Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
         if (doNotTrackPref != null) {
             doNotTrackPref.setSummary(
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
deleted file mode 100644
index de469ca636b99..0000000000000
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-    This file is part of Cromite.
-
-    Cromite is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    Cromite is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with Cromite. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-package org.chromium.chrome.browser.flags.cromite;
-
-import org.chromium.base.cached_flags.CachedFlag;
-import org.chromium.chrome.browser.flags.ChromeFeatureMap;
-
-public class sAllowExternalIntentRequests {
-    private static final CachedFlag sInstance =
-        new CachedFlag(ChromeFeatureMap.getInstance(),
-            "AllowExternalIntentRequests", false);
-
-    private sAllowExternalIntentRequests() {}
-
-    public static CachedFlag getInstance() {
-        return sInstance;
-    }
-}
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
deleted file mode 100644
index 292d587269804..0000000000000
--- a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-#if BUILDFLAG(IS_ANDROID)
-
-#ifdef FLAG_SECTION
-
-    {"allow-external-intent-requests",
-     "Allow forward URL requests to external intents",
-     "If disabled, URL requests will never"
-     "allow for redirecting to an external intent.", kOsAndroid,
-     SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")},
-
-#endif
-
-#endif
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-flag-to-disable-external-intent-requests.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-flag-to-disable-external-intent-requests.inc
deleted file mode 100644
index c4015ad7de119..0000000000000
--- a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Add-flag-to-disable-external-intent-requests.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-CROMITE_FEATURE(kAllowExternalIntentRequests,
-                "AllowExternalIntentRequests",
-                base::FEATURE_DISABLED_BY_DEFAULT);
-- 
2.34.1
+1 −0
Original line number Diff line number Diff line
@@ -59,3 +59,4 @@ ungoogledchromium-Disable-Gaia.patch
Disable-support-for-RAR-files-inspection.patch
Browser-Fix-open-in-browser-text.patch
Inject-scripts-for-AMP-tracking-ads-and-video.patch
Browser-Enable-external-intent-requests.patch