From f07933999c9bbd88e819ef0af43aa1fd451964a1 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Fri, 19 Nov 2021 15:59:28 +0100 Subject: [PATCH] chromium: update to 97.0.4692.45. --- .../files/musl-patches/resolver.patch | 25 +++-- .../chromium-96-CommandLine-include.patch | 24 ---- .../chromium-96-CouponDB-include.patch | 25 ----- ...m-96-DrmRenderNodePathFinder-include.patch | 24 ---- ...ium-96-RestrictedCookieManager-tuple.patch | 31 ------ .../chromium/patches/chromium-97-ffmpeg.patch | 105 ++++++++++++++++++ .../patches/chromium-97-ffmpeg.patch.args | 1 + ...-visibility-of-build-config-freetype.patch | 31 ------ .../patches/xxx-ppc64le-support.patch | 38 ------- srcpkgs/chromium/template | 14 +-- 10 files changed, 126 insertions(+), 192 deletions(-) delete mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch delete mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch delete mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch delete mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch create mode 100644 srcpkgs/chromium/patches/chromium-97-ffmpeg.patch create mode 100644 srcpkgs/chromium/patches/chromium-97-ffmpeg.patch.args delete mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch diff --git a/srcpkgs/chromium/files/musl-patches/resolver.patch b/srcpkgs/chromium/files/musl-patches/resolver.patch index 091d3f3e88ef..3c2563b7824f 100644 --- a/srcpkgs/chromium/files/musl-patches/resolver.patch +++ b/srcpkgs/chromium/files/musl-patches/resolver.patch @@ -38,19 +38,20 @@ base::Optional ai; --- net/dns/dns_config_service_linux.cc.orig +++ net/dns/dns_config_service_linux.cc -@@ -432,12 +432,6 @@ - base::ScopedBlockingCall scoped_blocking_call( - FROM_HERE, base::BlockingType::MAY_BLOCK); +@@ -443,11 +443,13 @@ + base::ScopedBlockingCall scoped_blocking_call( + FROM_HERE, base::BlockingType::MAY_BLOCK); -- std::unique_ptr res = resolv_reader_->GetResState(); -- if (res) { -- dns_config_ = ConvertResStateToDnsConfig(*res.get()); -- resolv_reader_->CloseResState(res.get()); -- } -- - UMA_HISTOGRAM_BOOLEAN("Net.DNS.DnsConfig.Resolv.Read", - dns_config_.has_value()); - if (!dns_config_.has_value()) ++#if defined(__GLIBC__) + std::unique_ptr res = resolv_reader_->GetResState(); + if (res) { + dns_config_ = ConvertResStateToDnsConfig(*res.get()); + resolv_reader_->CloseResState(res.get()); + } ++#endif + + UMA_HISTOGRAM_BOOLEAN("Net.DNS.DnsConfig.Resolv.Read", + dns_config_.has_value()); --- net/dns/public/resolv_reader.cc.orig +++ net/dns/public/resolv_reader.cc @@ -20,19 +20,10 @@ diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch deleted file mode 100644 index 2d7b7e902376..000000000000 --- a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sat, 9 Oct 2021 08:27:04 +0000 -Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine - ---- - base/command_line.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/base/command_line.h b/base/command_line.h -index 706726a..ad02812 100644 ---- a/base/command_line.h -+++ b/base/command_line.h -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - --- -2.32.0 - diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch deleted file mode 100644 index 41acfb31b96e..000000000000 --- a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Wed, 6 Oct 2021 15:36:47 +0000 -Subject: [PATCH] IWYU: add vector for std::vector in CouponDB - ---- - chrome/browser/commerce/coupons/coupon_db.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h -index f0758f4..93e2dd3 100644 ---- a/chrome/browser/commerce/coupons/coupon_db.h -+++ b/chrome/browser/commerce/coupons/coupon_db.h -@@ -5,6 +5,8 @@ - #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_ - #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_ - -+#include -+ - #include "base/callback_helpers.h" - #include "base/memory/weak_ptr.h" - #include "url/gurl.h" --- -2.32.0 - diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch deleted file mode 100644 index fd44eb2c91a0..000000000000 --- a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sat, 9 Oct 2021 16:17:34 +0000 -Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder - ---- - ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc -index 06776a7..d5b7b71 100644 ---- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc -+++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc -@@ -5,6 +5,7 @@ - #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h" - - #include -+#include - #include - #include - #include --- -2.32.0 - diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch deleted file mode 100644 index cbdca44b738d..000000000000 --- a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Fri, 08 Oct 2021 06:32:55 +0000 -Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager. - -Fix compilation error: - ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map, std::unique_ptr > >’} and ‘std::tuple’) - -There is no conversion from tuple to pair. - -Bug: 957519 -Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752 -Reviewed-by: Robbie McElrath -Commit-Queue: José Dapena Paz -Cr-Commit-Position: refs/heads/main@{#929597} ---- - -diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc -index 425426f..c8c10c6 100644 ---- a/services/network/restricted_cookie_manager.cc -+++ b/services/network/restricted_cookie_manager.cc -@@ -161,7 +161,7 @@ - const GURL& url, - const net::SiteForCookies& site_for_cookies) { - std::unique_ptr& entry = -- recent_cookie_accesses_[std::tie(url, site_for_cookies)]; -+ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)]; - if (!entry) { - entry = std::make_unique(); - } diff --git a/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch b/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch new file mode 100644 index 000000000000..0c14fadb215d --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch @@ -0,0 +1,105 @@ +From 09c2674afbd26ab87891c6dd2f814bf5e12b3034 Mon Sep 17 00:00:00 2001 +From: Ted Meyer +Date: Wed, 3 Nov 2021 00:42:21 +0000 +Subject: [PATCH] Seek more than one stream in ffmpeg + +Some media (ie, badly muxed media) will sometimes include a track with +no frames. Previously, if that track was a video track, ffmpeg would try +to seek it, but since it had no frames, it would just seek to the end +instead. This didn't present itself with zero-frame audio tracks, +because the video stream was always selected preferentially. This change +grabs a preferred track for each type of {audio, video, text}, and seeks +all of them in order to avoid this issue. + +Right now the FFmpegDemuxerTests fail pretty hard. I tried tweaking some +of the numbers to demonstrate what the actual behavior with this patch +becomes, but as you can see, it doesn't seem quite right. When seeking +actual videos everything works just fine, but there are clearly some +inconsistencies. I suspect it has mostly to do with multiple calls to +av_seek_frame causing some bouncing around in the stream position that +wasn't happening before. WDYT the right solution is here Dale? Do we +accept that the badly muxed media just won't play correctly? + +Bug: 1183623 +Change-Id: I6fedfb7d36e6f6caeeaefb5f7e82b4e9f4481060 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3244470 +Commit-Queue: Ted Meyer +Reviewed-by: Dale Curtis +Cr-Commit-Position: refs/heads/main@{#937649} +--- + media/filters/ffmpeg_demuxer.cc | 27 ++++++++++++++++-------- + media/filters/ffmpeg_demuxer_unittest.cc | 8 +++---- + 2 files changed, 22 insertions(+), 13 deletions(-) + +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc +index f4649971676c8..1760c5d087872 100644 +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -60,6 +60,8 @@ namespace media { + + namespace { + ++constexpr int64_t kInvalidPTSMarker = static_cast(0x8000000000000000); ++ + void SetAVStreamDiscard(AVStream* stream, AVDiscard discard) { + DCHECK(stream); + stream->discard = discard; +@@ -1592,6 +1594,8 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindStreamWithLowestStartTimestamp( + for (const auto& stream : streams_) { + if (!stream || stream->IsEnabled() != enabled) + continue; ++ if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) ++ continue; + if (!lowest_start_time_stream || + stream->start_time() < lowest_start_time_stream->start_time()) { + lowest_start_time_stream = stream.get(); +@@ -1604,16 +1608,21 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking( + base::TimeDelta seek_time) { + // If we have a selected/enabled video stream and its start time is lower + // than the |seek_time| or unknown, then always prefer it for seeking. +- FFmpegDemuxerStream* video_stream = nullptr; + for (const auto& stream : streams_) { +- if (stream && stream->type() == DemuxerStream::VIDEO && +- stream->IsEnabled()) { +- video_stream = stream.get(); +- if (video_stream->start_time() <= seek_time) { +- return video_stream; +- } +- break; +- } ++ if (!stream) ++ continue; ++ ++ if (stream->type() != DemuxerStream::VIDEO) ++ continue; ++ ++ if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) ++ continue; ++ ++ if (!stream->IsEnabled()) ++ continue; ++ ++ if (stream->start_time() <= seek_time) ++ return stream.get(); + } + + // If video stream is not present or |seek_time| is lower than the video start +diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc +index 704fc4a0cb473..03939757e5520 100644 +--- a/media/filters/ffmpeg_demuxer_unittest.cc ++++ b/media/filters/ffmpeg_demuxer_unittest.cc +@@ -555,10 +555,10 @@ TEST_F(FFmpegDemuxerTest, Read_Video) { + TEST_F(FFmpegDemuxerTest, SeekInitialized_NoVideoStartTime) { + CreateDemuxer("audio-start-time-only.webm"); + InitializeDemuxer(); +- // Video stream should be preferred for seeking even if video start time is +- // unknown. +- DemuxerStream* vstream = GetStream(DemuxerStream::VIDEO); +- EXPECT_EQ(vstream, preferred_seeking_stream(base::TimeDelta())); ++ // Video would normally be preferred, but not if it's a zero packet ++ // stream. ++ DemuxerStream* expected_stream = GetStream(DemuxerStream::AUDIO); ++ EXPECT_EQ(expected_stream, preferred_seeking_stream(base::TimeDelta())); + } + + TEST_F(FFmpegDemuxerTest, Seeking_PreferredStreamSelection) { diff --git a/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch.args b/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch.args new file mode 100644 index 000000000000..8bbbbe948363 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-97-ffmpeg.patch.args @@ -0,0 +1 @@ +-RNp1 diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch deleted file mode 100644 index d10023bc0267..000000000000 --- a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Thu, 4 Nov 2021 18:58:34 +0000 -Subject: [PATCH] unbundle: fix visibility of //build/config/freetype - -For system freetype //build/linux:freetype_from_pkgconfig is restricted -to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source. -However //build/config/freetype:freetype is accessing it too. - -Bug: None -Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304 -Commit-Queue: Thomas Anderson -Reviewed-by: Thomas Anderson -Cr-Commit-Position: refs/heads/main@{#938388} ---- - build/linux/BUILD.gn | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn -index 54314c7687..cd49e3d524 100644 ---- a/build/linux/BUILD.gn -+++ b/build/linux/BUILD.gn -@@ -23,6 +23,7 @@ if (use_system_freetype) { - # the system, use with caution,for details see build/config/freetype/BUILD.gn. - pkg_config("freetype_from_pkgconfig") { - visibility = [ -+ "//build/config/freetype:freetype", - "//third_party:freetype_harfbuzz", - "//third_party/harfbuzz-ng:harfbuzz_source", - ] diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch index 06109237b794..2f66a144e269 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch @@ -3242,44 +3242,6 @@ index 30a2ab21d..60509f21d 100644 #endif } -diff --git a/third_party/crashpad/crashpad/util/posix/signals_test.cc b/third_party/crashpad/crashpad/util/posix/signals_test.cc -index 54cc2f19f..298b5c993 100644 ---- a/third_party/crashpad/crashpad/util/posix/signals_test.cc -+++ b/third_party/crashpad/crashpad/util/posix/signals_test.cc -@@ -46,9 +46,9 @@ bool CanCauseSignal(int sig) { - return sig == SIGABRT || - sig == SIGALRM || - sig == SIGBUS || --#if !defined(ARCH_CPU_ARM64) -+#if !defined(ARCH_CPU_ARM64) && !defined(ARCH_CPU_PPC64) - sig == SIGFPE || --#endif // !defined(ARCH_CPU_ARM64) -+#endif // !defined(ARCH_CPU_ARM64) && !defined(ARCH_CPU_PPC64) - #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) - sig == SIGILL || - #endif // defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) -@@ -117,9 +117,11 @@ void CauseSignal(int sig) { - break; - } - --#if !defined(ARCH_CPU_ARM64) -+#if !defined(ARCH_CPU_ARM64) && !defined(ARCH_CPU_PPC64) - // ARM64 has hardware integer division instructions that don’t generate a - // trap for divide-by-zero, so this doesn’t produce SIGFPE. -+ // -+ // PPC64 fixed-point division by zero also doesn't produce a SIGFPE. - case SIGFPE: { - // Optimization makes this tricky, so get zero from a system call likely - // to succeed, and try to do something with the result. -@@ -137,7 +139,7 @@ void CauseSignal(int sig) { - fstat(quotient, &stat_buf); - break; - } --#endif // ARCH_CPU_ARM64 -+#endif // !defined(ARCH_CPU_ARM64) && !defined(ARCH_CPU_PPC64) - - #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) - case SIGILL: { diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn index 6b4566fc3..c07f732ad 100644 --- a/third_party/dav1d/BUILD.gn diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 9568f4131fdc..386d1b206884 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version -version=96.0.4664.93 +version=97.0.4692.45 revision=1 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Enno Boland " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=7c7b1f8e4e0abc3453d40c60d6a70f30851db96e5d872cbaa1b4dd7f43aa3493 +checksum=d7af14bcde2f52714933e4548484292fef8177e19f92cb79b6119031b487a5f4 lib32disabled=yes @@ -31,7 +31,7 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel libXScrnSaver-devel alsa-lib-devel snappy-devel libdrm-devel libxml2-devel libxslt-devel $(vopt_if pulseaudio pulseaudio-devel) libexif-devel libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel - libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel + libjpeg-turbo-devel libevent-devel json-c-devel minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel @@ -45,7 +45,7 @@ esac if [ "$CROSS_BUILD" ]; then hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel - libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel + libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel @@ -169,12 +169,12 @@ do_configure() { # use_system_v8=1 # use_system_zlib=1 # bzip2 jsoncpp minizip xdg_utils speex + # XXX: harfbuzz-ng use builtin one until system-wide is updated >=3.0.0 system=" ffmpeg flac fontconfig freetype - harfbuzz-ng libdrm libevent libjpeg @@ -190,13 +190,13 @@ do_configure() { # remove build scripts for system provided dependencies - basically does the # same as the bundeled script to remove bundeled libs, but this way we don't # have to list the remaining libs + # \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \ for LIB in ${system} libjpeg_turbo; do find -type f -path "*third_party/$LIB/*" \ \! -path "*third_party/$LIB/chromium/*" \ \! -path "*third_party/$LIB/google/*" \ \! -path './base/third_party/icu/*' \ \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ - \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done @@ -237,7 +237,7 @@ do_configure() { 'enable_widevine=true' 'enable_hangout_services_extension=true' - 'use_system_harfbuzz=true' + 'use_system_harfbuzz=false' 'use_system_wayland_scanner=true' 'use_cups=true'