From 0132b511321879a34dc87d6ad1850d802ce560b6 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 19 Apr 2020 16:19:17 +0200 Subject: [PATCH] Add patch for always-incognito crashes fixes --- build/bromite_patches_list.txt | 1 + .../Always-incognito-crashes-fix.patch | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 build/patches/Always-incognito-crashes-fix.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index be6de982..d41efd4b 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -140,3 +140,4 @@ Add-missing-android_provider.patch Automated-domain-substitution.patch show-download-prompt-again-by-default.patch disable-browser-autologin-by-default.patch +Always-incognito-crashes-fix.patch diff --git a/build/patches/Always-incognito-crashes-fix.patch b/build/patches/Always-incognito-crashes-fix.patch new file mode 100644 index 00000000..85c6a84d --- /dev/null +++ b/build/patches/Always-incognito-crashes-fix.patch @@ -0,0 +1,65 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sun, 19 Apr 2020 16:16:43 +0200 +Subject: Always-incognito crashes fix + +Credits to @uazo for the crashes fixes + +--- + .../chromium/chrome/browser/ChromeTabbedActivity.java | 11 +++++------ + .../org/chromium/chrome/browser/IntentHandler.java | 6 +++++- + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +@@ -1373,12 +1373,6 @@ public class ChromeTabbedActivity extends ChromeActivity { + openNewTab(url, referer, headers, externalAppId, intent, true); + break; + case TabOpenType.OPEN_NEW_INCOGNITO_TAB: +- if (!TextUtils.equals(externalAppId, getPackageName())) { +- assert false : "Only Chrome is allowed to open incognito tabs"; +- Log.e(TAG, "Only Chrome is allowed to open incognito tabs"); +- return; +- } +- + if (!IncognitoUtils.isIncognitoModeEnabled()) { + // The incognito launcher shortcut is manipulated in #onDeferredStartup(), + // so it's possible for a user to invoke the shortcut before it's disabled. +@@ -1990,6 +1984,11 @@ public class ChromeTabbedActivity extends ChromeActivity { + } + } + ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { ++ return getTabCreator(true).launchUrlFromExternalApp(url, referer, headers, ++ externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); ++ } ++ + return getTabCreator(false).launchUrlFromExternalApp(url, referer, headers, + externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +@@ -56,6 +56,8 @@ import org.chromium.net.HttpUtil; + import org.chromium.network.mojom.ReferrerPolicy; + import org.chromium.ui.base.PageTransition; + ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++ + import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; + import java.util.ArrayList; +@@ -1033,7 +1035,9 @@ public class IntentHandler { + intent, ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, false)) { + return TabOpenType.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB; + } +- if (IntentUtils.safeGetBooleanExtra(intent, EXTRA_OPEN_NEW_INCOGNITO_TAB, false)) { ++ if (IntentUtils.safeGetBooleanExtra(intent, EXTRA_OPEN_NEW_INCOGNITO_TAB, false) || ++ // always open a new tab if always-incognito is enabled ++ ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + return TabOpenType.OPEN_NEW_INCOGNITO_TAB; + } + if (IntentUtils.safeGetIntExtra( +-- +2.17.1 +