diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 2c3d0875..59ad6bc9 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -18,12 +18,11 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c .../browser/init/StartupTabPreloader.java | 11 ++- .../privacy/settings/PrivacySettings.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 16 +++- - .../tabmodel/TabModelSelectorBase.java | 8 ++ .../browser/tabmodel/TabPersistentStore.java | 10 +++ .../webapps/WebappIntentDataProvider.java | 14 ++++ .../flags/android/chrome_feature_list.cc | 2 +- .../strings/android_chrome_strings.grd | 7 ++ - 16 files changed, 172 insertions(+), 10 deletions(-) + 15 files changed, 164 insertions(+), 10 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -360,25 +359,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome if (state.isIncognito() != mIncognito) { throw new IllegalStateException("Incognito state mismatch. TabState: " -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -@@ -256,7 +256,15 @@ public abstract class TabModelSelectorBase implements TabModelSelector, Incognit - public void markTabStateInitialized() { - if (mTabStateInitialized) return; - mTabStateInitialized = true; -+ - for (TabModelSelectorObserver listener : mObservers) listener.onTabStateInitialized(); -+ -+ if (mStartIncognito) { -+ // profile is not set in always-incognito mode in TabModelSelectorProfileSupplier -+ // so force it -+ selectModel(false); // restore model so next call always set incognito mode -+ selectModel(true); -+ } - } - - @Override 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