Loading build/e_patches/Browser-Enable-external-intent-requests.patch 0 → 100644 +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 build/e_patches_list.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
build/e_patches/Browser-Enable-external-intent-requests.patch 0 → 100644 +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
build/e_patches_list.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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