diff --git a/CHANGELOG.md b/CHANGELOG.md index e4b8aa88..e3f3460e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 80.0.3987.118 +* disable AImageReader for all ARM64 devices (fixes https://github.com/bromite/bromite/issues/497) +* use upstream workaround for SD card not found issue (fixes https://github.com/bromite/bromite/issues/485) + # 80.0.3987.109 * restored GPU workaround for the ARM/ARM64 AImageReader crash (https://github.com/bromite/bromite/issues/445) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 13ca1e44..c2d80c3b 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -137,3 +137,5 @@ Disable-DRM-media-origin-IDs-preprovisioning.patch Disable-smart-selection-by-default.patch Enable-user-agent-freeze-by-default.patch Automated-domain-substitution.patch +Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch +Download-on-Android-Q-Remove-a-DCHECK-in-CreateReservation.patch diff --git a/build/patches/Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch b/build/patches/Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch new file mode 100644 index 00000000..4c4b498e --- /dev/null +++ b/build/patches/Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch @@ -0,0 +1,76 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 20 Feb 2020 22:44:06 +0100 +Subject: Disable AImageReader for ARM64/P and ARM64/Q + +--- + chrome/browser/android/chrome_startup_flags.cc | 9 +++++++++ + gpu/config/gpu_finch_features.cc | 4 ++++ + media/base/media_switches.cc | 4 ++++ + 3 files changed, 17 insertions(+) + +diff --git a/chrome/browser/android/chrome_startup_flags.cc b/chrome/browser/android/chrome_startup_flags.cc +--- a/chrome/browser/android/chrome_startup_flags.cc ++++ b/chrome/browser/android/chrome_startup_flags.cc +@@ -6,6 +6,7 @@ + + #include "chrome/browser/android/chrome_startup_flags.h" + ++#include "base/android/build_info.h" + #include "base/android/jni_android.h" + #include "base/android/jni_string.h" + #include "base/android/scoped_java_ref.h" +@@ -16,6 +17,7 @@ + #include "chrome/common/chrome_switches.h" + #include "components/browser_sync/browser_sync_switches.h" + #include "components/dom_distiller/core/dom_distiller_switches.h" ++#include "content/public/common/content_switches.h" + #include "media/base/media_switches.h" + + namespace { +@@ -40,6 +42,13 @@ void SetChromeSpecificCommandLineFlags() { + if (base::SysInfo::IsLowEndDevice()) + SetCommandLineSwitchASCII(switches::kDisableSyncTypes, "Favicon Images"); + ++#ifdef ARCH_CPU_ARM64 ++ // workaround for Android 9/10 crashes on ARM64 CPUs ++ if (base::android::BuildInfo::GetInstance()->sdk_int() >= base::android::SDK_VERSION_P) { ++ SetCommandLineSwitchASCII("disable_aimagereader", "1"); ++ } ++#endif ++ + // Enable DOM Distiller backend. + SetCommandLineSwitch(switches::kEnableDomDistiller); + } +diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc +--- a/gpu/config/gpu_finch_features.cc ++++ b/gpu/config/gpu_finch_features.cc +@@ -31,7 +31,11 @@ bool FieldIsInBlacklist(const char* current_value, std::string blacklist_str) { + #if defined(OS_ANDROID) + // Use android AImageReader when playing videos with MediaPlayer. + const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer", ++#ifdef ARCH_CPU_ARM64 ++ base::FEATURE_DISABLED_BY_DEFAULT}; ++#else + base::FEATURE_ENABLED_BY_DEFAULT}; ++#endif + + // Use android SurfaceControl API for managing display compositor's buffer queue + // and using overlays on Android. +diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +--- a/media/base/media_switches.cc ++++ b/media/base/media_switches.cc +@@ -487,7 +487,11 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{ + + // Enables the Android Image Reader path for Video decoding(for AVDA and MCVD) + const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput", ++#ifdef ARCH_CPU_ARM64 ++ base::FEATURE_DISABLED_BY_DEFAULT}; ++#else + base::FEATURE_ENABLED_BY_DEFAULT}; ++#endif + + // Prevents using SurfaceLayer for videos. This is meant to be used by embedders + // that cannot support SurfaceLayer at the moment. +-- +2.17.1 + diff --git a/build/patches/Download-on-Android-Q-Remove-a-DCHECK-in-CreateReservation.patch b/build/patches/Download-on-Android-Q-Remove-a-DCHECK-in-CreateReservation.patch new file mode 100644 index 00000000..f9ce963f --- /dev/null +++ b/build/patches/Download-on-Android-Q-Remove-a-DCHECK-in-CreateReservation.patch @@ -0,0 +1,32 @@ +From: Xing Liu +Date: Tue, 18 Feb 2020 21:10:54 +0000 +Subject: Download on Android Q: Remove a DCHECK in CreateReservation. + +When resuming a download, the suggested path can be content URI. This +will hit a DCHECK in CreateReservation. + +Bug: 1045642 +Change-Id: I61c452afafbbc9606f747c84ff18e6b9dc9a0fb6 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2062759 +Reviewed-by: Min Qin +Commit-Queue: Xing Liu +Cr-Commit-Position: refs/heads/master@{#742270} +--- + .../internal/common/download_path_reservation_tracker.cc | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/components/download/internal/common/download_path_reservation_tracker.cc b/components/download/internal/common/download_path_reservation_tracker.cc +--- a/components/download/internal/common/download_path_reservation_tracker.cc ++++ b/components/download/internal/common/download_path_reservation_tracker.cc +@@ -326,8 +326,6 @@ PathValidationResult ValidatePathAndResolveConflicts( + // - Returns the result of creating the path reservation. + PathValidationResult CreateReservation(const CreateReservationInfo& info, + base::FilePath* reserved_path) { +- DCHECK(info.suggested_path.IsAbsolute()); +- + // Create a reservation map if one doesn't exist. It will be automatically + // deleted when all the reservations are revoked. + if (g_reservation_map == NULL) +-- +2.17.1 + diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 2de13467..42c7dcb6 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -31,7 +31,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden -@@ -3397,49 +3397,6 @@ hooks = [ +@@ -3401,49 +3401,6 @@ hooks = [ 'sync', '--extract', ], }, @@ -81,7 +81,7 @@ diff --git a/DEPS b/DEPS { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', -@@ -3467,18 +3424,6 @@ hooks = [ +@@ -3471,18 +3428,6 @@ hooks = [ 'condition': 'checkout_mac', 'action': ['python', 'src/build/mac_toolchain.py'], }, @@ -100,7 +100,7 @@ diff --git a/DEPS b/DEPS { # Update the prebuilt clang toolchain. # Note: On Win, this should run after win_toolchain, as it may use it. -@@ -3565,18 +3510,6 @@ hooks = [ +@@ -3569,18 +3514,6 @@ hooks = [ '-s', 'src/buildtools/mac/clang-format.sha1', ], }, @@ -119,7 +119,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -3602,29 +3535,6 @@ hooks = [ +@@ -3606,29 +3539,6 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], },