From 4c7679cdffda6fbe3b70d99b921a11cc1eccf86b Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 18 Nov 2020 14:56:55 +0000 Subject: [PATCH] extra/chromium to 87.0.4280.66-1 --- extra/chromium/PKGBUILD | 26 +--- ...le-accelerated-video-decode-on-Linux.patch | 43 ------ ...-end-iterator-usage-in-CookieMonster.patch | 78 ---------- ...k-to-the-i965-driver-if-we-re-on-iHD.patch | 139 ------------------ ...move-dead-reloc-in-nonalloc-LD-flags.patch | 37 ----- ...roto-fix-underflow-in-Fp1616ToDouble.patch | 37 ----- 6 files changed, 6 insertions(+), 354 deletions(-) delete mode 100644 extra/chromium/check-for-enable-accelerated-video-decode-on-Linux.patch delete mode 100644 extra/chromium/fix-invalid-end-iterator-usage-in-CookieMonster.patch delete mode 100644 extra/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch delete mode 100644 extra/chromium/remove-dead-reloc-in-nonalloc-LD-flags.patch delete mode 100644 extra/chromium/xproto-fix-underflow-in-Fp1616ToDouble.patch diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index 5f6d618ea..a0d92b6d0 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -15,10 +15,10 @@ buildarch=12 highmem=1 pkgname=chromium -pkgver=86.0.4240.198 +pkgver=87.0.4280.66 pkgrel=1 _launcher_ver=6 -_gcc_patchset=6 +_gcc_patchset=9 pkgdesc="A web browser built for speed, simplicity, and security" arch=('x86_64') url="https://www.chromium.org/Home" @@ -38,22 +38,12 @@ install=chromium.install source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz - fix-invalid-end-iterator-usage-in-CookieMonster.patch - only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch - remove-dead-reloc-in-nonalloc-LD-flags.patch - check-for-enable-accelerated-video-decode-on-Linux.patch - xproto-fix-underflow-in-Fp1616ToDouble.patch chromium-skia-harmony.patch 0001-crashpad-include-limits.patch chromium-81.0.4044.122-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch) -sha256sums=('a0ab825e527becab4ab3e11ef889e842436fe11a4fb7874419d1970e680c7a44' +sha256sums=('29a8e4ea82edec2fdcf34ece68323bec7ab90f3d5669e6b77f58cff9c278f741' '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' - '6f9ab35fa2c9e6e34ec454b829b7b87adaebc10cacecd1ac1daa67035ee44aba' - '69d8b7a439db1af4713245ddf5f44ca647283ba833a8733e848033ebdaf03cdc' - '7514c6c81a64a5457b66494a366fbb39005563eecc48d1a39033dd06aec4e300' - '7cace84d7494190e7882d3e637820646ec8d64808f0a2128c515bd44991a3790' - '03d03a39b2afa40083eb8ccb9616a51619f71da92348effc8ee289cbda10128b' - '1ec617b362bf97cce4254debd04d8396f17dec0ae1071b52ec8c1c3d86dbd322' + 'c99934bcd2f3ae8ea9620f5f59a94338b2cf739647f04c28c8a551d9083fa7e9' '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1' 'df99f49ad58b70c9a3e1827d7e80b62e4363419334ed83373cf55b79c17b6f10' '4837f797a910795bf3161805a3302d5f3701573ca90da8af32b2f4aa62510d20') @@ -116,14 +106,10 @@ prepare() { third_party/libxml/chromium/*.cc # Upstream fixes - patch -Np1 -i ../fix-invalid-end-iterator-usage-in-CookieMonster.patch - patch -Np1 -i ../only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch - patch -Np1 -i ../remove-dead-reloc-in-nonalloc-LD-flags.patch - patch -Np1 -i ../check-for-enable-accelerated-video-decode-on-Linux.patch - patch -Np1 -i ../xproto-fix-underflow-in-Fp1616ToDouble.patch # Fixes for building with libstdc++ instead of libc++ - patch -Np1 -i ../patches/chromium-86-nearby-include.patch + patch -Np1 -i ../patches/chromium-87-ServiceWorkerContainerHost-crash.patch + patch -Np1 -i ../patches/chromium-87-openscreen-include.patch # https://crbug.com/skia/6663#c10 patch -Np0 -i ../chromium-skia-harmony.patch diff --git a/extra/chromium/check-for-enable-accelerated-video-decode-on-Linux.patch b/extra/chromium/check-for-enable-accelerated-video-decode-on-Linux.patch deleted file mode 100644 index a0d5468d1..000000000 --- a/extra/chromium/check-for-enable-accelerated-video-decode-on-Linux.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 54deb9811ca9bd2327def5c05ba6987b8c7a0897 Mon Sep 17 00:00:00 2001 -From: Evangelos Foutras -Date: Tue, 29 Sep 2020 01:02:22 +0000 -Subject: [PATCH] Check for enable-accelerated-video-decode on Linux - -Video decoding was being accelerated on Linux even though the newly -added "enable-accelerated-video-decode" flag was not specified. The -chrome://gpu page was misleadingly showing this feature as disabled: - - > Video Decode: Software only. Hardware acceleration disabled - -This change adds a check for --enable-accelerated-video-decode when -considering if video decoding should be activated. (Only on Linux.) - -Extra context: https://crbug.com/1097029#c18 (and also comment 20). - -Bug: 1066176, 1097029 -Change-Id: I534115f5f6ceed0ee3511fcf5c2d0f1dd04b9b7e -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2431434 -Reviewed-by: John Abd-El-Malek -Reviewed-by: Dale Curtis -Commit-Queue: Ted Meyer -Cr-Commit-Position: refs/heads/master@{#811480} ---- - content/renderer/render_thread_impl.cc | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index f13c94ddab7..0352f127171 100644 ---- a/content/renderer/render_thread_impl.cc -+++ b/content/renderer/render_thread_impl.cc -@@ -1121,7 +1121,11 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl::GetGpuFactories() { - kGpuStreamPriorityMedia); - - const bool enable_video_accelerator = -+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+ cmd_line->HasSwitch(switches::kEnableAcceleratedVideoDecode) && -+#else - !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) && -+#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) - (gpu_channel_host->gpu_feature_info() - .status_values[gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE] == - gpu::kGpuFeatureStatusEnabled); diff --git a/extra/chromium/fix-invalid-end-iterator-usage-in-CookieMonster.patch b/extra/chromium/fix-invalid-end-iterator-usage-in-CookieMonster.patch deleted file mode 100644 index 62abe8dc4..000000000 --- a/extra/chromium/fix-invalid-end-iterator-usage-in-CookieMonster.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 53478caee862624fc6d73516f8d64253854b146f Mon Sep 17 00:00:00 2001 -From: Piotr Tworek -Date: Mon, 31 Aug 2020 21:03:58 +0000 -Subject: [PATCH] Fix invalid "end" iterator usage in CookieMonster. - -Commit 229623d76e8baf714c8569c9f4efc5de266cef8b has introduced the following -code in cookie_monster.cc. - -// If this is the first cookie in |cookies_| with this key, increment the -// |num_keys_| counter. -bool different_prev = - inserted == cookies_.begin() || std::prev(inserted)->first != key; -bool different_next = - inserted == cookies_.end() || std::next(inserted)->first != key; -if (different_prev && different_next) - ++num_keys_; - -The "inserted" iterator is something that has been returned from -std::multimap::insert. At first glance it looks reasonable. The code -tries to determine if there are already similar elements with the same -key in the map. Unfortunately the expression calculating the value of -different_next can potentially use the end iterator to the map. The -"inserted == cookies_.end()" part of the expression will always evaluate -to false since the newly inserted element has to be in the map and -cookies_.end() points to the first element outside the map. If the -inserted happens to be the last element in the map the second part of -the expression will grab the end iterator by calling std::next(inserted) -and then will try to use it leading to invalid memory access. - -Given the fact that cookies_ is a std::multimap we should not even need -to calculate the value of different_next. It should always be true. - - "If the container has elements with equivalent key, inserts at the - upper bound of that range.(since C++11)" - -See: https://en.cppreference.com/w/cpp/container/multimap/insert - -Bug: 1120240 -Change-Id: I8928c294ac4daf72349a2331b31b017c1d015da0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2368872 -Reviewed-by: Maksim Orlovich -Commit-Queue: Piotr Tworek -Cr-Commit-Position: refs/heads/master@{#803260} ---- - net/cookies/cookie_monster.cc | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc -index 265deed0e52..140b61a81dc 100644 ---- a/net/cookies/cookie_monster.cc -+++ b/net/cookies/cookie_monster.cc -@@ -1151,9 +1151,14 @@ CookieMonster::CookieMap::iterator CookieMonster::InternalInsertCookie( - // |num_keys_| counter. - bool different_prev = - inserted == cookies_.begin() || std::prev(inserted)->first != key; -- bool different_next = -- inserted == cookies_.end() || std::next(inserted)->first != key; -- if (different_prev && different_next) -+ // According to std::multiqueue documentation: -+ // "If the container has elements with equivalent key, inserts at the upper -+ // bound of that range. (since C++11)" -+ // This means that "inserted" iterator either points to the last element in -+ // the map, or the element succeeding it has to have different key. -+ DCHECK(std::next(inserted) == cookies_.end() || -+ std::next(inserted)->first != key); -+ if (different_prev) - ++num_keys_; - - return inserted; -@@ -1381,7 +1386,7 @@ void CookieMonster::InternalDeleteCookie(CookieMap::iterator it, - bool different_prev = - it == cookies_.begin() || std::prev(it)->first != it->first; - bool different_next = -- it == cookies_.end() || std::next(it)->first != it->first; -+ std::next(it) == cookies_.end() || std::next(it)->first != it->first; - if (different_prev && different_next) - --num_keys_; - diff --git a/extra/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch b/extra/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch deleted file mode 100644 index ed811bce1..000000000 --- a/extra/chromium/only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch +++ /dev/null @@ -1,139 +0,0 @@ -From fbd756ab55f9351165f923b0411c31dd71319c78 Mon Sep 17 00:00:00 2001 -From: Ted Meyer -Date: Wed, 16 Sep 2020 17:42:03 +0000 -Subject: [PATCH] Only fall back to the i965 driver if we're on iHD - -I got my hands on an old AMD laptop, and the gallium driver worked very -well and was saving power even at 720p, so there's no reason to block -that for now. - -Bug: 1116703 -Change-Id: Ib15bc2b93f33e99adad7569dd825e167b503a0ea -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2409967 -Commit-Queue: Ted Meyer -Reviewed-by: Andres Calderon Jaramillo -Cr-Commit-Position: refs/heads/master@{#807550} ---- - media/gpu/vaapi/vaapi_wrapper.cc | 73 ++++++++++++++++++++------------ - 1 file changed, 47 insertions(+), 26 deletions(-) - -diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc -index 2ad0b997e56..e30d1dfb73b 100644 ---- a/media/gpu/vaapi/vaapi_wrapper.cc -+++ b/media/gpu/vaapi/vaapi_wrapper.cc -@@ -409,6 +409,8 @@ class VADisplayState { - - // Implementation of Initialize() called only once. - bool InitializeOnce() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); -+ bool InitializeVaDisplay_Locked() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); -+ bool InitializeVaDriver_Locked() EXCLUSIVE_LOCKS_REQUIRED(va_lock_); - - int refcount_ GUARDED_BY(va_lock_); - -@@ -472,11 +474,7 @@ bool VADisplayState::Initialize() { - return success; - } - --bool VADisplayState::InitializeOnce() { -- static_assert( -- VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 1), -- "Requires VA-API >= 1.1.0"); -- -+bool VADisplayState::InitializeVaDisplay_Locked() { - switch (gl::GetGLImplementation()) { - case gl::kGLImplementationEGLGLES2: - va_display_ = vaGetDisplayDRM(drm_fd_.get()); -@@ -519,25 +517,10 @@ bool VADisplayState::InitializeOnce() { - return false; - } - -- // Set VA logging level and driver name, unless already set. -- constexpr char libva_log_level_env[] = "LIBVA_MESSAGING_LEVEL"; -- std::unique_ptr env(base::Environment::Create()); -- if (!env->HasVar(libva_log_level_env)) -- env->SetVar(libva_log_level_env, "1"); -- --#if defined(USE_X11) -- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE) { -- DCHECK(!features::IsUsingOzonePlatform()); -- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME"; -- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in -- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There -- // is discussion of the issue here: -- // https://github.com/intel/media-driver/issues/818 -- if (!env->HasVar(libva_driver_impl_env)) -- env->SetVar(libva_driver_impl_env, "i965"); -- } --#endif // USE_X11 -+ return true; -+} - -+bool VADisplayState::InitializeVaDriver_Locked() { - // The VAAPI version. - int major_version, minor_version; - VAStatus va_res = vaInitialize(va_display_, &major_version, &minor_version); -@@ -545,9 +528,6 @@ bool VADisplayState::InitializeOnce() { - LOG(ERROR) << "vaInitialize failed: " << vaErrorStr(va_res); - return false; - } -- -- va_initialized_ = true; -- - const std::string va_vendor_string = vaQueryVendorString(va_display_); - DLOG_IF(WARNING, va_vendor_string.empty()) - << "Vendor string empty or error reading."; -@@ -555,6 +535,8 @@ bool VADisplayState::InitializeOnce() { - << va_vendor_string; - implementation_type_ = VendorStringToImplementationType(va_vendor_string); - -+ va_initialized_ = true; -+ - // The VAAPI version is determined from what is loaded on the system by - // calling vaInitialize(). Since the libva is now ABI-compatible, relax the - // version check which helps in upgrading the libva, without breaking any -@@ -571,6 +553,45 @@ bool VADisplayState::InitializeOnce() { - return true; - } - -+bool VADisplayState::InitializeOnce() { -+ static_assert( -+ VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 1), -+ "Requires VA-API >= 1.1.0"); -+ -+ // Set VA logging level, unless already set. -+ constexpr char libva_log_level_env[] = "LIBVA_MESSAGING_LEVEL"; -+ std::unique_ptr env(base::Environment::Create()); -+ if (!env->HasVar(libva_log_level_env)) -+ env->SetVar(libva_log_level_env, "1"); -+ -+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) -+ return false; -+ -+#if defined(USE_X11) -+ if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE && -+ implementation_type_ == VAImplementation::kIntelIHD) { -+ DCHECK(!features::IsUsingOzonePlatform()); -+ constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME"; -+ // TODO(crbug/1116703) The libva intel-media driver has a known segfault in -+ // vaPutSurface, so until this is fixed, fall back to the i965 driver. There -+ // is discussion of the issue here: -+ // https://github.com/intel/media-driver/issues/818 -+ if (!env->HasVar(libva_driver_impl_env)) -+ env->SetVar(libva_driver_impl_env, "i965"); -+ -+ // Re-initialize with the new driver. -+ va_display_ = nullptr; -+ va_initialized_ = false; -+ implementation_type_ = VAImplementation::kInvalid; -+ -+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) -+ return false; -+ } -+#endif // USE_X11 -+ -+ return true; -+} -+ - VAStatus VADisplayState::Deinitialize() { - base::AutoLock auto_lock(va_lock_); - VAStatus va_res = VA_STATUS_SUCCESS; diff --git a/extra/chromium/remove-dead-reloc-in-nonalloc-LD-flags.patch b/extra/chromium/remove-dead-reloc-in-nonalloc-LD-flags.patch deleted file mode 100644 index 1adf3397b..000000000 --- a/extra/chromium/remove-dead-reloc-in-nonalloc-LD-flags.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 74b0cb5b86f7d7f8f7c1172d85b09096bef147b7 Mon Sep 17 00:00:00 2001 -From: Daniel Nicoara -Date: Thu, 24 Sep 2020 02:34:24 +0000 -Subject: [PATCH] Remove dead-reloc-in-nonalloc LD flags - -Breakpad change landed. Revert workaround. - -Bug: 1105559 -Test: components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/andrd --binary=out/andrd/lib.unstripped/libcontent_shell_content_view.so --symbols-dir=/tmp/foo --platform=android -Change-Id: I519534002898a97b15a57b9b87ac78ef3f216dee -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2427349 -Commit-Queue: Nico Weber -Reviewed-by: Nico Weber -Cr-Commit-Position: refs/heads/master@{#810066} ---- - build/config/compiler/BUILD.gn | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index aa9eca20bd2..42839cfba3f 100644 ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -396,14 +396,6 @@ config("compiler") { - "-Wl,--as-needed", - ] - } -- if (use_lld && !is_chromeos_device) { -- # TODO(thakis): Fix dump_syms to not need this and then remove it, -- # https://crbug.com/1105559 -- ldflags += [ -- "-Wl,-z,dead-reloc-in-nonalloc=*=0", -- "-Wl,-z,dead-reloc-in-nonalloc=.debug_ranges=1", -- ] -- } - } - - # Linux-specific compiler flags setup. diff --git a/extra/chromium/xproto-fix-underflow-in-Fp1616ToDouble.patch b/extra/chromium/xproto-fix-underflow-in-Fp1616ToDouble.patch deleted file mode 100644 index 8fcbd7226..000000000 --- a/extra/chromium/xproto-fix-underflow-in-Fp1616ToDouble.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5ade494a9966c7a9675af86dc42aca62fb4d806d Mon Sep 17 00:00:00 2001 -From: Tom Anderson -Date: Wed, 21 Oct 2020 22:02:35 +0000 -Subject: [PATCH] [XProto] Fix underflow in Fp1616ToDouble - -x11::Input::Fp1616 should be treated as a signed integer, otherwise --1 will underflow to 65535. When dragging a scrollbar, this would -cause the scrollbar to snap to the bottom when the cursor is dragged -above the window's y=0 coordinate. Verified that the issue is fixed -after this CL. - -BUG=1139623,1136352 -R=sky - -Change-Id: Ie318006ceadde9b9ce3e267fb453ddeba0e81da0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2485620 -Auto-Submit: Thomas Anderson -Commit-Queue: Scott Violet -Reviewed-by: Scott Violet -Cr-Commit-Position: refs/heads/master@{#819538} ---- - ui/events/x/events_x_utils.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ui/events/x/events_x_utils.cc b/ui/events/x/events_x_utils.cc -index 3010db5f40c..856dfb221e7 100644 ---- a/ui/events/x/events_x_utils.cc -+++ b/ui/events/x/events_x_utils.cc -@@ -376,7 +376,7 @@ base::TimeTicks TimeTicksFromXEvent(const x11::Event& xev) { - - // This is ported from libxi's FP1616toDBL in XExtInt.c - double Fp1616ToDouble(x11::Input::Fp1616 x) { -- auto x32 = static_cast(x); -+ auto x32 = static_cast(x); - return x32 * 1.0 / (1 << 16); - } -