Loading build/patches/Add-an-always-incognito-mode.patch +1 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading
build/patches/Add-an-always-incognito-mode.patch +1 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading