diff --git a/CHANGELOG.md b/CHANGELOG.md index a4d1d393..b0b3cb0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 81.0.4044.127 +* fix always-incognito crashes (https://github.com/bromite/bromite/issues/132 and https://github.com/bromite/bromite/pull/529) +* improved crash uploader mock by calling done callback + # 81.0.4044.106 * remove option to add NTP as homepage (fixes https://github.com/bromite/bromite/issues/517) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 047f45d0..77b35332 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -137,8 +137,6 @@ Enable-user-agent-freeze-by-default.patch Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch Upstream-internal-DownloadCollectionBridge-code.patch 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-tabs.patch +Automated-domain-substitution.patch diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 3273ad13..9bc85655 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -5,6 +5,7 @@ Subject: Add an always-incognito mode More specifically, add a preference that causes all new tabs and all clicked links to launch as incognito. Make sure initial incognito status is correctly recognized. +Enable incognito custom tabs and fix crashes for incognito/custom tab intents (credits to @uazo) --- chrome/android/chrome_java_sources.gni | 1 + .../java/res/xml/privacy_preferences.xml | 5 ++ @@ -13,9 +14,13 @@ Make sure initial incognito status is correctly recognized. .../chrome/browser/ChromeTabbedActivity.java | 6 +- .../AppMenuPropertiesDelegateImpl.java | 6 ++ .../ChromeContextMenuPopulator.java | 9 ++- + .../CustomTabIntentDataProvider.java | 6 ++ + .../browser/init/StartupTabPreloader.java | 11 ++- .../browser/tabmodel/ChromeTabCreator.java | 20 ++++- + .../browser/tabmodel/TabPersistentStore.java | 9 +++ + .../flags/android/chrome_feature_list.cc | 2 +- .../strings/android_chrome_strings.grd | 7 ++ - 9 files changed, 128 insertions(+), 4 deletions(-) + 13 files changed, 152 insertions(+), 8 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 @@ -210,6 +215,65 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) { linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_INCOGNITO_TAB)); } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +@@ -54,6 +54,9 @@ import org.chromium.components.browser_ui.styles.ChromeColors; + import org.chromium.components.browser_ui.widget.TintedDrawable; + import org.chromium.ui.util.ColorUtils; + ++import org.chromium.base.ContextUtils; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++ + import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; + import java.util.ArrayList; +@@ -456,6 +459,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid + // TODO(https://crbug.com/1023759): Remove this function and enable + // incognito CCT request for all apps. + private boolean isValidIncognitoIntent(Intent intent) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { ++ return true; ++ } + if (!isIncognitoRequested(intent)) return false; + // Incognito requests for payments flow are supported without + // INCOGNITO_CCT flag as an exceptional case that can use Chrome +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/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 @@ -291,6 +355,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome mTabModel.addTab(tab, index, TabLaunchType.FROM_RESTORE); return tab; } +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; +diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc +--- a/chrome/browser/flags/android/chrome_feature_list.cc ++++ b/chrome/browser/flags/android/chrome_feature_list.cc +@@ -336,7 +336,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling", + base::FEATURE_ENABLED_BY_DEFAULT}; + + const base::Feature kCCTIncognito{"CCTIncognito", +- base::FEATURE_DISABLED_BY_DEFAULT}; ++ base::FEATURE_ENABLED_BY_DEFAULT}; + + const base::Feature kCCTModule{"CCTModule", base::FEATURE_DISABLED_BY_DEFAULT}; + diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/build/patches/Always-incognito-crashes-fix.patch b/build/patches/Always-incognito-crashes-fix.patch deleted file mode 100644 index 62d81134..00000000 --- a/build/patches/Always-incognito-crashes-fix.patch +++ /dev/null @@ -1,76 +0,0 @@ -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 - diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch index 51118ffe..693e742e 100644 --- a/build/patches/Automated-domain-substitution.patch +++ b/build/patches/Automated-domain-substitution.patch @@ -5809,7 +5809,7 @@ diff --git a/base/system/sys_info.h b/base/system/sys_info.h diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc --- a/base/task/sequence_manager/sequence_manager_impl.cc +++ b/base/task/sequence_manager/sequence_manager_impl.cc -@@ -1170,7 +1170,7 @@ void SequenceManagerImpl::RecordCrashKeys(const PendingTask& pending_task) { +@@ -1162,7 +1162,7 @@ void SequenceManagerImpl::RecordCrashKeys(const PendingTask& pending_task) { // this. // // See @@ -10734,7 +10734,7 @@ diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/c diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3803,7 +3803,7 @@ std::string ChromeContentBrowserClient::GetMetricSuffixForURL(const GURL& url) { +@@ -3805,7 +3805,7 @@ std::string ChromeContentBrowserClient::GetMetricSuffixForURL(const GURL& url) { // function could be removed. if (page_load_metrics::IsGoogleSearchResultUrl(url)) return "search"; @@ -25353,7 +25353,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/ constexpr int kHttpTimeout = 3000; // in milliseconds // Names of keys used to fetch the custom attributes from google admin sdk -@@ -157,7 +157,7 @@ HRESULT GetExistingAccountMappingFromCD( +@@ -146,7 +146,7 @@ HRESULT GetExistingAccountMappingFromCD( std::string escape_url_encoded_email = net::EscapeUrlEncodedData(base::UTF16ToUTF8(email), true); std::string get_cd_user_url = base::StringPrintf( @@ -25362,7 +25362,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/ "%s?projection=full&viewType=domain_public", escape_url_encoded_email.c_str()); LOGFN(VERBOSE) << "Encoded URL : " << get_cd_user_url; -@@ -463,12 +463,12 @@ HRESULT MakeUsernameForAccount(const base::Value& result, +@@ -452,12 +452,12 @@ HRESULT MakeUsernameForAccount(const base::Value& result, DCHECK(is_consumer_account); DCHECK(error_text); @@ -25378,7 +25378,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/ *is_consumer_account = consumer_domain_pos != base::string16::npos; -@@ -537,7 +537,7 @@ HRESULT MakeUsernameForAccount(const base::Value& result, +@@ -526,7 +526,7 @@ HRESULT MakeUsernameForAccount(const base::Value& result, // restrictive than emails, so some transformations are needed. This tries // to preserve the email as much as possible in the username while respecting // Windows username rules. See remarks in @@ -38464,7 +38464,7 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte // See http://http://unicode.org/reports/tr46/ and references therein/ for more // details. struct UIDNAWrapper { -@@ -548,7 +548,7 @@ base::string16 FormatUrlWithAdjustments( +@@ -550,7 +550,7 @@ base::string16 FormatUrlWithAdjustments( ((format_types & kFormatUrlTrimAfterHost) != 0)) { // Remove the username and password fields. We don't want to display those // to the user since they can be used for attacks, diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index b7af0241..49b5e877 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -180,7 +180,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "components/page_load_metrics/browser/metrics_web_contents_observer.h" #include "components/page_load_metrics/browser/page_load_metrics_util.h" #include "components/payments/content/payment_request_display_manager.h" -@@ -3815,16 +3813,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -3817,16 +3815,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( content::NavigationHandle* handle) { std::vector> throttles; @@ -197,7 +197,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_PLUGINS) MaybeAddThrottle(&throttles, FlashDownloadInterception::MaybeCreateThrottleFor(handle)); -@@ -3939,10 +3927,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -3941,10 +3929,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( safe_browsing::MaybeCreateNavigationThrottle(handle)); #endif diff --git a/build/patches/Disable-dynamic-module-loading.patch b/build/patches/Disable-dynamic-module-loading.patch index 71f7ed94..a648ccea 100644 --- a/build/patches/Disable-dynamic-module-loading.patch +++ b/build/patches/Disable-dynamic-module-loading.patch @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; -@@ -820,20 +819,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -826,20 +825,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid // even receive the extras for using the feature. if (componentName == null) return false; diff --git a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch index 80d85658..e032eea6 100644 --- a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch +++ b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch @@ -11,7 +11,7 @@ a corresponding user option to individually disable their usage. diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc --- a/components/url_formatter/url_formatter.cc +++ b/components/url_formatter/url_formatter.cc -@@ -460,13 +460,13 @@ bool IDNToUnicodeOneComponent(const base::char16* comp, +@@ -462,13 +462,13 @@ bool IDNToUnicodeOneComponent(const base::char16* comp, } // namespace const FormatUrlType kFormatUrlOmitNothing = 0; diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index e69ff6d9..55a9d35f 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -718,7 +718,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch command_line->AppendSwitch( switches::kDisableClientSidePhishingDetection); } -@@ -3965,6 +3951,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -3967,6 +3953,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( throttles.push_back(std::make_unique( handle, handle->GetWebContents()->GetBrowserContext())); @@ -726,7 +726,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // Before setting up SSL error detection, configure SSLErrorHandler to invoke // the relevant extension API whenever an SSL interstitial is shown. SSLErrorHandler::SetClientCallbackOnInterstitialsShown( -@@ -3973,6 +3960,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -3975,6 +3962,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( handle, std::make_unique(web_contents), base::BindOnce(&HandleSSLErrorWrapper), base::BindOnce(&IsInHostedApp))); @@ -734,7 +734,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch throttles.push_back(std::make_unique(handle)); -@@ -3992,11 +3980,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -3994,11 +3982,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( GooglePasswordManagerNavigationThrottle::MaybeCreateThrottleFor(handle)); #endif @@ -746,7 +746,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if defined(OS_WIN) || defined(OS_MACOSX) || \ (defined(OS_LINUX) && !defined(OS_CHROMEOS)) -@@ -4995,6 +4978,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -4997,6 +4980,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( bool safe_browsing_enabled_for_profile) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -754,7 +754,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (!safe_browsing_enabled_for_profile) return nullptr; -@@ -5007,6 +4991,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -5009,6 +4993,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( } return safe_browsing_url_checker_delegate_; diff --git a/build/patches/Enable-incognito-custom-tabs.patch b/build/patches/Enable-incognito-custom-tabs.patch deleted file mode 100644 index 81412466..00000000 --- a/build/patches/Enable-incognito-custom-tabs.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: uazo -Date: Wed, 22 Apr 2020 18:57:01 +0200 -Subject: Enable incognito custom tabs - -Fixes https://github.com/bromite/bromite/issues/132 and crashes introduced for the fix of https://github.com/bromite/bromite/issues/453 ---- - .../browser/customtabs/CustomTabIntentDataProvider.java | 6 ++++++ - chrome/browser/flags/android/chrome_feature_list.cc | 2 +- - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -53,6 +53,9 @@ import org.chromium.components.browser_ui.styles.ChromeColors; - import org.chromium.components.browser_ui.widget.TintedDrawable; - import org.chromium.ui.util.ColorUtils; - -+import org.chromium.base.ContextUtils; -+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; -+ - import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; - import java.util.ArrayList; -@@ -455,6 +458,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid - // TODO(https://crbug.com/1023759): Remove this function and enable - // incognito CCT request for all apps. - private boolean isValidIncognitoIntent(Intent intent) { -+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { -+ return true; -+ } - if (!isIncognitoRequested(intent)) return false; - // Incognito requests for payments flow are supported without - // INCOGNITO_CCT flag as an exceptional case that can use Chrome -diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc ---- a/chrome/browser/flags/android/chrome_feature_list.cc -+++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -337,7 +337,7 @@ const base::Feature kCCTExternalLinkHandling{"CCTExternalLinkHandling", - base::FEATURE_ENABLED_BY_DEFAULT}; - - const base::Feature kCCTIncognito{"CCTIncognito", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - const base::Feature kCCTModule{"CCTModule", base::FEATURE_DISABLED_BY_DEFAULT}; - --- -2.17.1 - diff --git a/build/patches/Never-send-any-crash-upload-data.patch b/build/patches/Never-send-any-crash-upload-data.patch index 60bac8b2..23e82eba 100644 --- a/build/patches/Never-send-any-crash-upload-data.patch +++ b/build/patches/Never-send-any-crash-upload-data.patch @@ -9,16 +9,16 @@ Subject: Never send any crash upload data diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc --- a/chrome/browser/tracing/crash_service_uploader.cc +++ b/chrome/browser/tracing/crash_service_uploader.cc -@@ -124,6 +124,9 @@ void TraceCrashServiceUploader::DoUpload( - std::unique_ptr metadata, - const UploadProgressCallback& progress_callback, +@@ -126,6 +126,9 @@ void TraceCrashServiceUploader::DoUpload( UploadDoneCallback done_callback) { -+ -+ return; -+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ++ std::move(done_callback).Run(false, "crash uploads are disabled"); ++ return; ++ progress_callback_ = progress_callback; + done_callback_ = std::move(done_callback); + -- 2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch index 6ac6dd50..d3c3b8db 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch @@ -1459,7 +1459,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro +@@ -1200,18 +1184,6 @@ android:value="true" /> {% endif %} {% block extra_application_definitions %}