Merge branch 'master' into enable-incognito-custom-tab
This commit is contained in:
commit
ed55ac3551
2 changed files with 77 additions and 0 deletions
|
@ -140,4 +140,5 @@ 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
|
||||
Enable-incognito-custom-tab.patch
|
||||
|
|
76
build/patches/Always-incognito-crashes-fix.patch
Normal file
76
build/patches/Always-incognito-crashes-fix.patch
Normal file
|
@ -0,0 +1,76 @@
|
|||
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
|
||||
|
||||
---
|
||||
.../chrome/browser/init/StartupTabPreloader.java | 11 ++++++++---
|
||||
.../chrome/browser/tabmodel/TabPersistentStore.java | 9 +++++++++
|
||||
2 files changed, 17 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
|
||||
@@ -35,6 +35,9 @@ import org.chromium.network.mojom.ReferrerPolicy;
|
||||
import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+
|
||||
/**
|
||||
* This class attempts to preload the tab if the url is known from the intent when the profile
|
||||
* is created. This is done to improve startup latency.
|
||||
@@ -173,9 +176,11 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
Intent intent = mIntentSupplier.get();
|
||||
String url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
|
||||
|
||||
+ boolean isIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false);
|
||||
+
|
||||
ChromeTabCreator chromeTabCreator =
|
||||
- (ChromeTabCreator) mTabCreatorManager.getTabCreator(false);
|
||||
- WebContents webContents = WebContentsFactory.createWebContents(false, false);
|
||||
+ (ChromeTabCreator) mTabCreatorManager.getTabCreator(isIncognito);
|
||||
+ WebContents webContents = WebContentsFactory.createWebContents(isIncognito, false);
|
||||
|
||||
mLoadUrlParams = new LoadUrlParams(url);
|
||||
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
|
||||
@@ -189,7 +194,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, Destroyable
|
||||
// Create a detached tab, but don't add it to the tab model yet. We'll do that
|
||||
// later if the loadUrlParams etc... match.
|
||||
mTab = TabBuilder.createLiveTab(false)
|
||||
- .setIncognito(false)
|
||||
+ .setIncognito(isIncognito)
|
||||
.setLaunchType(TabLaunchType.FROM_EXTERNAL_APP)
|
||||
.setWindow(mWindowAndroid)
|
||||
.setWebContents(webContents)
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
@@ -45,6 +45,8 @@ import org.chromium.chrome.browser.util.UrlConstants;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.content_public.browser.UiThreadTaskTraits;
|
||||
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -598,6 +600,13 @@ public class TabPersistentStore extends TabPersister {
|
||||
}
|
||||
}
|
||||
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ if (!isIncognito) {
|
||||
+ Log.w(TAG, "Failed to restore tab: not in incognito mode.");
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
TabModel model = mTabModelSelector.getModel(isIncognito);
|
||||
SparseIntArray restoredTabs = isIncognito ? mIncognitoTabsRestored : mNormalTabsRestored;
|
||||
int restoredIndex = 0;
|
||||
--
|
||||
2.17.1
|
||||
|
Loading…
Add table
Reference in a new issue