From e14d9093475c9feff343d19dd6969791816f84e8 Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Thu, 2 Dec 2021 12:16:33 +0100 Subject: [PATCH] Fix crash on tablet (#1617) Co-authored-by: Carmelo Messina --- .../Add-an-always-incognito-mode.patch | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 0d37fcad..b502e6b2 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -19,6 +19,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c .../browser/init/StartupTabPreloader.java | 14 +++- .../privacy/settings/PrivacySettings.java | 37 ++++++++- .../browser/settings/SettingsActivity.java | 4 + + .../tabbed_mode/TabbedRootUiCoordinator.java | 6 +- .../browser/tabmodel/ChromeTabCreator.java | 16 +++- .../browser/tabmodel/TabPersistentStore.java | 10 +++ .../webapps/WebappIntentDataProvider.java | 14 ++++ @@ -26,7 +27,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c .../strings/android_chrome_strings.grd | 13 +++ chrome/browser/ui/messages/android/BUILD.gn | 1 + .../snackbar/INeedSnackbarManager.java | 27 +++++++ - 19 files changed, 243 insertions(+), 35 deletions(-) + 20 files changed, 248 insertions(+), 36 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java @@ -430,6 +431,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin } @Override +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +@@ -117,6 +117,8 @@ import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.IntentRequestTracker; + import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.ui.util.TokenHolder; ++import org.chromium.base.ContextUtils; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + + /** + * A {@link RootUiCoordinator} variant that controls tabbed-mode specific UI. +@@ -479,11 +481,13 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + + // TODO(twellington): Supply TabModelSelector as well and move initialization earlier. + if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { ++ boolean tabModel = ContextUtils.getAppSharedPreferences().getBoolean( ++ AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false); + AppMenuHandler appMenuHandler = + mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler(); + mEmptyBackgroundViewWrapper = new EmptyBackgroundViewWrapper( + mTabModelSelectorSupplier.get(), +- mTabCreatorManagerSupplier.get().getTabCreator(false), mActivity, ++ mTabCreatorManagerSupplier.get().getTabCreator(tabModel), mActivity, + appMenuHandler, mSnackbarManagerSupplier.get(), mOverviewModeBehaviorSupplier); + mEmptyBackgroundViewWrapper.initialize(); + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java