From 71fa5a89a0b7b362b7075a267f3e91eceb505c41 Mon Sep 17 00:00:00 2001 From: Automatic Build System Date: Fri, 5 Jan 2024 21:13:37 +0100 Subject: [PATCH] automatic version update by autodist [release 96.0.4664.45-1mamba;Sun Nov 21 2021] --- ...um-92.0.4515.131-breakpad-gcc-11.2.0.patch | 11 - ...ium-92.0.4515.131-sandbox-gcc-11.2.0.patch | 11 - ...63-replace-blacklist-with-ignorelist.patch | 196 +++++ ...dd-a-TODO-about-a-missing-pnacl-flag.patch | 28 + chromium-94.0.4606.71-ffmpeg-4.4.patch | 36 + chromium-94.0.4606.71-ffmpeg-roll.patch | 49 ++ ...expire-accelerated-video-decode-flag.patch | 11 + ....0.4606.71-use-ffile-compilation-dir.patch | 47 ++ chromium-95.0.4638.54-harfbuzz-3.patch | 31 + ...pend-on-zlib-instead-of-headers-only.patch | 31 + ...um-95.0.4638.54-ozone-x11-fix-VA-API.patch | 671 ++++++++++++++++++ chromium-96.0.4664.45-gcc-2.34.patch | 50 ++ chromium.spec | 76 +- 13 files changed, 1196 insertions(+), 52 deletions(-) delete mode 100644 chromium-92.0.4515.131-breakpad-gcc-11.2.0.patch delete mode 100644 chromium-92.0.4515.131-sandbox-gcc-11.2.0.patch create mode 100644 chromium-93.0.4577.63-replace-blacklist-with-ignorelist.patch create mode 100644 chromium-94.0.4606.71-add-a-TODO-about-a-missing-pnacl-flag.patch create mode 100644 chromium-94.0.4606.71-ffmpeg-4.4.patch create mode 100644 chromium-94.0.4606.71-ffmpeg-roll.patch create mode 100644 chromium-94.0.4606.71-unexpire-accelerated-video-decode-flag.patch create mode 100644 chromium-94.0.4606.71-use-ffile-compilation-dir.patch create mode 100644 chromium-95.0.4638.54-harfbuzz-3.patch create mode 100644 chromium-95.0.4638.54-maldoca-depend-on-zlib-instead-of-headers-only.patch create mode 100644 chromium-95.0.4638.54-ozone-x11-fix-VA-API.patch create mode 100644 chromium-96.0.4664.45-gcc-2.34.patch diff --git a/chromium-92.0.4515.131-breakpad-gcc-11.2.0.patch b/chromium-92.0.4515.131-breakpad-gcc-11.2.0.patch deleted file mode 100644 index 89e4e9f..0000000 --- a/chromium-92.0.4515.131-breakpad-gcc-11.2.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- chromium-92.0.4515.131/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.orig 2021-08-16 19:38:33.386147431 +0200 -+++ chromium-92.0.4515.131/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-08-16 19:39:12.914789827 +0200 -@@ -138,7 +138,7 @@ - // SIGSTKSZ may be too small to prevent the signal handlers from overrunning - // the alternative stack. Ensure that the size of the alternative stack is - // large enough. -- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); -+ static const unsigned kSigStackSize = std::max((long int)16384, SIGSTKSZ); - - // Only set an alternative stack if there isn't already one, or if the current - // one is too small. diff --git a/chromium-92.0.4515.131-sandbox-gcc-11.2.0.patch b/chromium-92.0.4515.131-sandbox-gcc-11.2.0.patch deleted file mode 100644 index 1db2e95..0000000 --- a/chromium-92.0.4515.131-sandbox-gcc-11.2.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- chromium-92.0.4515.131/sandbox/linux/services/credentials.cc.orig 2021-08-16 22:20:24.580175771 +0200 -+++ chromium-92.0.4515.131/sandbox/linux/services/credentials.cc 2021-08-16 22:20:32.025287245 +0200 -@@ -98,7 +98,7 @@ - // attempt this optimization. - clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS; - -- char tls_buf[PTHREAD_STACK_MIN] = {0}; -+ char tls_buf[PTHREAD_STACK_MIN]; - tls = tls_buf; - #endif - diff --git a/chromium-93.0.4577.63-replace-blacklist-with-ignorelist.patch b/chromium-93.0.4577.63-replace-blacklist-with-ignorelist.patch new file mode 100644 index 0000000..1cc3a50 --- /dev/null +++ b/chromium-93.0.4577.63-replace-blacklist-with-ignorelist.patch @@ -0,0 +1,196 @@ +From 9d080c0934b848ee4a05013c78641e612fcc1e03 Mon Sep 17 00:00:00 2001 +From: Dylan Cutler +Date: Wed, 26 May 2021 16:39:52 +0000 +Subject: [PATCH] Reland "Replace 'blacklist' with 'ignorelist' in + ./tools/msan/." + +This is a reland of 3b6263f2eece1264b052dfdcbc03b851d5abfb48 + +Relanding now that https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2897974 is merged + +Original change's description: +> Replace 'blacklist' with 'ignorelist' in ./tools/msan/. +> +> Bug: 1097272, 1097268 +> Change-Id: Id5c8227a5bfb1ffaec82d3168b609085b10c8297 +> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2867730 +> Commit-Queue: Dylan Cutler +> Reviewed-by: Nico Weber +> Reviewed-by: Jonathan Metzman +> Cr-Commit-Position: refs/heads/master@{#883035} + +Bug: 1097272 +Bug: 1097268 +Change-Id: I11a5bc8972680c95fb1dab95ed3b707ed76f4667 +Cq-Include-Trybots: luci.chromium.try:chromeos-amd64-generic-cfi-thin-lto-rel +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2911096 +Commit-Queue: Dylan Cutler +Reviewed-by: Nico Weber +Cr-Commit-Position: refs/heads/master@{#886773} +--- + build/config/sanitizers/BUILD.gn | 44 ++++++++++---------- + build_overrides/build.gni | 14 +++---- + tools/msan/{blacklist.txt => ignorelist.txt} | 0 + 3 files changed, 29 insertions(+), 29 deletions(-) + rename tools/msan/{blacklist.txt => ignorelist.txt} (100%) + +diff --git a/build/config/sanitizers/BUILD.gn b/build/config/sanitizers/BUILD.gn +index aaaad023474d..55b388a43743 100644 +--- a/build/config/sanitizers/BUILD.gn ++++ b/build/config/sanitizers/BUILD.gn +@@ -272,11 +272,11 @@ config("asan_flags") { + if (is_asan) { + cflags += [ "-fsanitize=address" ] + if (is_win) { +- if (!defined(asan_win_blacklist_path)) { +- asan_win_blacklist_path = ++ if (!defined(asan_win_blocklist_path)) { ++ asan_win_blocklist_path = + rebase_path("//tools/memory/asan/blocklist_win.txt", root_build_dir) + } +- cflags += [ "-fsanitize-blacklist=$asan_win_blacklist_path" ] ++ cflags += [ "-fsanitize-ignorelist=$asan_win_blocklist_path" ] + } + } + } +@@ -306,13 +306,13 @@ config("link_shared_library") { + config("cfi_flags") { + cflags = [] + if (is_cfi && current_toolchain == default_toolchain) { +- if (!defined(cfi_blacklist_path)) { +- cfi_blacklist_path = ++ if (!defined(cfi_ignorelist_path)) { ++ cfi_ignorelist_path = + rebase_path("//tools/cfi/ignores.txt", root_build_dir) + } + cflags += [ + "-fsanitize=cfi-vcall", +- "-fsanitize-blacklist=$cfi_blacklist_path", ++ "-fsanitize-ignorelist=$cfi_ignorelist_path", + ] + + if (use_cfi_cast) { +@@ -409,14 +409,14 @@ config("msan_flags") { + if (is_msan) { + assert(is_linux || is_chromeos, + "msan only supported on linux x86_64/ChromeOS") +- if (!defined(msan_blacklist_path)) { +- msan_blacklist_path = +- rebase_path("//tools/msan/blacklist.txt", root_build_dir) ++ if (!defined(msan_ignorelist_path)) { ++ msan_ignorelist_path = ++ rebase_path("//tools/msan/ignorelist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=memory", + "-fsanitize-memory-track-origins=$msan_track_origins", +- "-fsanitize-blacklist=$msan_blacklist_path", ++ "-fsanitize-ignorelist=$msan_ignorelist_path", + ] + } + } +@@ -424,13 +424,13 @@ config("msan_flags") { + config("tsan_flags") { + if (is_tsan) { + assert(is_linux || is_chromeos, "tsan only supported on linux x86_64") +- if (!defined(tsan_blacklist_path)) { +- tsan_blacklist_path = ++ if (!defined(tsan_ignorelist_path)) { ++ tsan_ignorelist_path = + rebase_path("//tools/memory/tsan_v2/ignores.txt", root_build_dir) + } + cflags = [ + "-fsanitize=thread", +- "-fsanitize-blacklist=$tsan_blacklist_path", ++ "-fsanitize-ignorelist=$tsan_ignorelist_path", + ] + } + } +@@ -438,8 +438,8 @@ config("tsan_flags") { + config("ubsan_flags") { + cflags = [] + if (is_ubsan) { +- if (!defined(ubsan_blacklist_path)) { +- ubsan_blacklist_path = ++ if (!defined(ubsan_ignorelist_path)) { ++ ubsan_ignorelist_path = + rebase_path("//tools/ubsan/ignorelist.txt", root_build_dir) + } + cflags += [ +@@ -456,7 +456,7 @@ config("ubsan_flags") { + "-fsanitize=signed-integer-overflow", + "-fsanitize=unreachable", + "-fsanitize=vla-bound", +- "-fsanitize-blacklist=$ubsan_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_ignorelist_path", + ] + + # Chromecast ubsan builds fail to compile with these +@@ -486,8 +486,8 @@ config("ubsan_no_recover") { + + config("ubsan_security_flags") { + if (is_ubsan_security) { +- if (!defined(ubsan_security_blacklist_path)) { +- ubsan_security_blacklist_path = ++ if (!defined(ubsan_security_ignorelist_path)) { ++ ubsan_security_ignorelist_path = + rebase_path("//tools/ubsan/security_ignorelist.txt", root_build_dir) + } + cflags = [ +@@ -495,7 +495,7 @@ config("ubsan_security_flags") { + "-fsanitize=shift", + "-fsanitize=signed-integer-overflow", + "-fsanitize=vla-bound", +- "-fsanitize-blacklist=$ubsan_security_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_security_ignorelist_path", + ] + } + } +@@ -508,13 +508,13 @@ config("ubsan_null_flags") { + + config("ubsan_vptr_flags") { + if (is_ubsan_vptr) { +- if (!defined(ubsan_vptr_blacklist_path)) { +- ubsan_vptr_blacklist_path = ++ if (!defined(ubsan_vptr_ignorelist_path)) { ++ ubsan_vptr_ignorelist_path = + rebase_path("//tools/ubsan/vptr_ignorelist.txt", root_build_dir) + } + cflags = [ + "-fsanitize=vptr", +- "-fsanitize-blacklist=$ubsan_vptr_blacklist_path", ++ "-fsanitize-ignorelist=$ubsan_vptr_ignorelist_path", + ] + } + } +diff --git a/build_overrides/build.gni b/build_overrides/build.gni +index 82627b03653f..f3e563ab701b 100644 +--- a/build_overrides/build.gni ++++ b/build_overrides/build.gni +@@ -42,15 +42,15 @@ declare_args() { + # Allows different projects to specify their own suppression/ignore lists for + # sanitizer tools. + # asan_suppressions_file = "path/to/asan_suppressions.cc" +-# asan_win_blacklist_path = "path/to/asan/blocklist_win.txt" ++# asan_win_ignorelist_path = "path/to/asan/blocklist_win.txt" + # lsan_suppressions_file = "path/to/lsan_suppressions.cc" + # tsan_suppressions_file = "path/to/tsan_suppressions.cc" +-# tsan_blacklist_path = "path/to/tsan/ignores.txt" +-# msan_blacklist_path = "path/to/msan/blacklist.txt" +-# ubsan_blacklist_path = "path/to/ubsan/blacklist.txt" +-# ubsan_vptr_blacklist_path = "path/to/ubsan/vptr_blacklist.txt" +-# ubsan_security_blacklist_path = "path/to/ubsan/security_blacklist.txt" +-# cfi_blacklist_path = "path/to/cfi/ignores.txt" ++# tsan_ignorelist_path = "path/to/tsan/ignores.txt" ++# msan_ignorelist_path = "path/to/msan/ignorelist.txt" ++# ubsan_ignorelist_path = "path/to/ubsan/ignorelist.txt" ++# ubsan_vptr_ignorelist_path = "path/to/ubsan/vptr_ignorelist.txt" ++# ubsan_security_ignorelist_path = "path/to/ubsan/security_ignorelist.txt" ++# cfi_ignorelist_path = "path/to/cfi/ignores.txt" + + declare_args() { + # Android 32-bit non-component, non-clang builds cannot have symbol_level=2 +diff --git a/tools/msan/blacklist.txt b/tools/msan/ignorelist.txt +similarity index 100% +rename from tools/msan/blacklist.txt +rename to tools/msan/ignorelist.txt diff --git a/chromium-94.0.4606.71-add-a-TODO-about-a-missing-pnacl-flag.patch b/chromium-94.0.4606.71-add-a-TODO-about-a-missing-pnacl-flag.patch new file mode 100644 index 0000000..bfeafee --- /dev/null +++ b/chromium-94.0.4606.71-add-a-TODO-about-a-missing-pnacl-flag.patch @@ -0,0 +1,28 @@ +From 7a23987acb698c2934958cb42a5e7b1cd73fe142 Mon Sep 17 00:00:00 2001 +From: Nico Weber +Date: Tue, 20 Jul 2021 21:54:09 +0000 +Subject: [PATCH] build: Add a TODO about a missing pnacl flag + +Change-Id: I1700d185a23afe4120e14c755782450b1bf89289 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041785 +Commit-Queue: Nico Weber +Commit-Queue: Hans Wennborg +Auto-Submit: Nico Weber +Reviewed-by: Hans Wennborg +Cr-Commit-Position: refs/heads/master@{#903659} +--- + build/config/compiler/BUILD.gn | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index b6e095b705..ef6d1dfc12 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1217,6 +1217,7 @@ config("compiler_deterministic") { + # we build same files with same compile flag. + # Other paths are already given in relative, no need to normalize them. + if (is_nacl) { ++ # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. + cflags += [ + "-Xclang", + "-fdebug-compilation-dir", diff --git a/chromium-94.0.4606.71-ffmpeg-4.4.patch b/chromium-94.0.4606.71-ffmpeg-4.4.patch new file mode 100644 index 0000000..f0ec736 --- /dev/null +++ b/chromium-94.0.4606.71-ffmpeg-4.4.patch @@ -0,0 +1,36 @@ +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc +index ac4713b07268..492a9a37d096 100644 +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + scoped_refptr buffer; + + if (type() == DemuxerStream::TEXT) { +- size_t id_size = 0; ++ int id_size = 0; + uint8_t* id_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size); + +- size_t settings_size = 0; ++ int settings_size = 0; + uint8_t* settings_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size); + +@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + buffer = DecoderBuffer::CopyFrom(packet->data, packet->size, + side_data.data(), side_data.size()); + } else { +- size_t side_data_size = 0; ++ int side_data_size = 0; + uint8_t* side_data = av_packet_get_side_data( + packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size); + +@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { + packet->size - data_offset); + } + +- size_t skip_samples_size = 0; ++ int skip_samples_size = 0; + const uint32_t* skip_samples_ptr = + reinterpret_cast(av_packet_get_side_data( + packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size)); diff --git a/chromium-94.0.4606.71-ffmpeg-roll.patch b/chromium-94.0.4606.71-ffmpeg-roll.patch new file mode 100644 index 0000000..68f2636 --- /dev/null +++ b/chromium-94.0.4606.71-ffmpeg-roll.patch @@ -0,0 +1,49 @@ +From b94755e4633045be96ab5e0bdde0db7e16a804bd Mon Sep 17 00:00:00 2001 +From: "liberato@chromium.org" +Date: Fri, 6 Aug 2021 04:25:31 +0000 +Subject: [PATCH] FFmpeg M94 roll. + +Contains DEPS update + chromium-side fixes. + +Bug: 1227259 +Change-Id: I61c5eaa789ea12c17d0cbcbf837435b9cf32479b +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011889 +Reviewed-by: Thomas Guilbert +Commit-Queue: Frank Liberato +Cr-Commit-Position: refs/heads/master@{#909174} +--- + media/ffmpeg/ffmpeg_common.h | 1 + + media/filters/ffmpeg_demuxer.cc | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h +index cede8ac5a7..97d6307e28 100644 +--- a/media/ffmpeg/ffmpeg_common.h ++++ b/media/ffmpeg/ffmpeg_common.h +@@ -29,6 +29,7 @@ extern "C" { + #include + #include + #include ++#include + #include + #include + #include +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc +index ac4713b072..605001d935 100644 +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -106,12 +106,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) { + + // Next try to use the first DTS value, for codecs where we know PTS == DTS + // (excludes all H26x codecs). The start time must be returned in PTS. +- if (stream->first_dts != kNoFFmpegTimestamp && ++ if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && + stream->codecpar->codec_id != AV_CODEC_ID_HEVC && + stream->codecpar->codec_id != AV_CODEC_ID_H264 && + stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { + const base::TimeDelta first_pts = +- ConvertFromTimeBase(stream->time_base, stream->first_dts); ++ ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); + if (first_pts < start_time) + start_time = first_pts; + } diff --git a/chromium-94.0.4606.71-unexpire-accelerated-video-decode-flag.patch b/chromium-94.0.4606.71-unexpire-accelerated-video-decode-flag.patch new file mode 100644 index 0000000..da3a4a5 --- /dev/null +++ b/chromium-94.0.4606.71-unexpire-accelerated-video-decode-flag.patch @@ -0,0 +1,11 @@ +--- chrome/browser/flag-metadata.json.orig 2021-09-21 18:34:38.740426608 +0000 ++++ chrome/browser/flag-metadata.json 2021-09-21 18:35:09.392000797 +0000 +@@ -1285,7 +1285,7 @@ + { + "name": "enable-accelerated-video-decode", + "owners": [ "media-dev@chromium.org" ], +- "expiry_milestone": 93 ++ "expiry_milestone": 99 + }, + { + "name": "enable-accessibility-live-caption", diff --git a/chromium-94.0.4606.71-use-ffile-compilation-dir.patch b/chromium-94.0.4606.71-use-ffile-compilation-dir.patch new file mode 100644 index 0000000..ceda14f --- /dev/null +++ b/chromium-94.0.4606.71-use-ffile-compilation-dir.patch @@ -0,0 +1,47 @@ +From 34a955823630096f5b01c2b01d51c1ea59d22763 Mon Sep 17 00:00:00 2001 +From: Zequan Wu +Date: Tue, 20 Jul 2021 14:13:50 +0000 +Subject: [PATCH] Use -ffile-compilation-dir= instead of + -fdebug-compilation-dir= + +Bug: 1010267 +Change-Id: If2b4ead8535a76490eb466a38e3d8fed6ea91079 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2770738 +Auto-Submit: Zequan Wu +Commit-Queue: Nico Weber +Reviewed-by: Nico Weber +Cr-Commit-Position: refs/heads/master@{#903456} +--- + build/config/compiler/BUILD.gn | 18 ++++++++++++------ + build/config/compiler/compiler.gni | 7 ++----- + 2 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index ede07d111c..6db16c1cdd 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -1216,12 +1216,18 @@ config("compiler_deterministic") { + # different build directory like "out/feature_a" and "out/feature_b" if + # we build same files with same compile flag. + # Other paths are already given in relative, no need to normalize them. +- cflags += [ +- "-Xclang", +- "-fdebug-compilation-dir", +- "-Xclang", +- ".", +- ] ++ if (is_nacl) { ++ cflags += [ ++ "-Xclang", ++ "-fdebug-compilation-dir", ++ "-Xclang", ++ ".", ++ ] ++ } else { ++ # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir= ++ # and -fcoverage-compilation-dir=. ++ cflags += [ "-ffile-compilation-dir=." ] ++ } + if (!is_win) { + # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) + asmflags = [ "-Wa,-fdebug-compilation-dir,." ] diff --git a/chromium-95.0.4638.54-harfbuzz-3.patch b/chromium-95.0.4638.54-harfbuzz-3.patch new file mode 100644 index 0000000..33fe955 --- /dev/null +++ b/chromium-95.0.4638.54-harfbuzz-3.patch @@ -0,0 +1,31 @@ +From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001 +From: Dominik Röttsches +Date: Tue, 28 Sep 2021 15:31:50 +0000 +Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits) + +Fixed: 1252284 +Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252 +Commit-Queue: Dominik Röttsches +Commit-Queue: Calder Kitagawa +Auto-Submit: Dominik Röttsches +Reviewed-by: Calder Kitagawa +Reviewed-by: Anders Hartvoll Ruud +Cr-Commit-Position: refs/heads/main@{#925776} + +(only components/paint_preview/common/subset_font.cc) +--- + +diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc +index 45daea7b1..43a448e 100644 +--- a/components/paint_preview/common/subset_font.cc ++++ b/components/paint_preview/common/subset_font.cc +@@ -79,7 +79,7 @@ + // Retain all variation information for OpenType variation fonts. See: + // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview + hb_set_t* skip_subset = +- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|. ++ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG); + hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r')); + hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r')); + hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r')); diff --git a/chromium-95.0.4638.54-maldoca-depend-on-zlib-instead-of-headers-only.patch b/chromium-95.0.4638.54-maldoca-depend-on-zlib-instead-of-headers-only.patch new file mode 100644 index 0000000..e1b438c --- /dev/null +++ b/chromium-95.0.4638.54-maldoca-depend-on-zlib-instead-of-headers-only.patch @@ -0,0 +1,31 @@ +From 0aa878b7839141077071db97ba1cd30edf486827 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 15 Sep 2021 17:14:14 +0000 +Subject: [PATCH] maldoca: depend on zlib instead of headers only + +There is no zlib_common_headers target for unbundled zlib +and in the end code links against zlib static library anyways. + +Bug: None +Change-Id: I50b8bb5b480770b637904de00aecc3a629f09471 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3162976 +Reviewed-by: Daniel Rubery +Commit-Queue: Stephan Hartmann +Cr-Commit-Position: refs/heads/main@{#921717} +--- + third_party/maldoca/BUILD.gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn +index eeab2056b5..29a0a2ca49 100644 +--- a/third_party/maldoca/BUILD.gn ++++ b/third_party/maldoca/BUILD.gn +@@ -224,7 +224,7 @@ source_set("maldoca-ole") { + "//third_party/libxml", + "//third_party/protobuf:protobuf_lite", + "//third_party/re2", +- "//third_party/zlib:zlib_common_headers", ++ "//third_party/zlib:zlib", + "//third_party/zlib/google:zip", + ] + diff --git a/chromium-95.0.4638.54-ozone-x11-fix-VA-API.patch b/chromium-95.0.4638.54-ozone-x11-fix-VA-API.patch new file mode 100644 index 0000000..61d72bf --- /dev/null +++ b/chromium-95.0.4638.54-ozone-x11-fix-VA-API.patch @@ -0,0 +1,671 @@ +From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001 +From: Maksim Sisov +Date: Fri, 17 Sep 2021 08:45:55 +0000 +Subject: [PATCH] ozone/x11: fix VA-API. + +This patch fixes VA-API usage with Ozone/X11 backend (which +is our default backend now as X11 has been deprecated - +crrev.com/c/3114071)). + +non-Ozone X11 is disabled now and Ozone is always used +on Linux. However, VA-API implementation is not Ozone friendly +yet and requires major refactoring. But given that VA-API +implementation on Linux worked only with X11, it's fine for +now to change USE_X11 and !IsUsingOzonePlatform to +BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization +in VADisplayState::Initialize for Ozone/Linux other than +non-X11 backends. + +Bug: 1121948 +Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878 +Commit-Queue: Maksim Sisov +Reviewed-by: Andres Calderon Jaramillo +Reviewed-by: Robert Kroeger +Reviewed-by: Xiaohan Wang +Reviewed-by: Alexander Dunaev +Cr-Commit-Position: refs/heads/main@{#922466} +--- + media/BUILD.gn | 3 - + media/gpu/BUILD.gn | 5 +- + media/gpu/args.gni | 13 +++- + media/gpu/vaapi/BUILD.gn | 8 +- + media/gpu/vaapi/va_stub_header.fragment | 6 +- + media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++---------- + .../vaapi_picture_native_pixmap_angle.cc | 2 - + media/gpu/vaapi/vaapi_picture_tfp.cc | 2 - + .../vaapi/vaapi_video_decode_accelerator.cc | 9 +-- + ...vaapi_video_decode_accelerator_unittest.cc | 11 +-- + media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++---------- + media/gpu/vaapi/vaapi_wrapper.h | 8 +- + ui/ozone/platform/x11/ozone_platform_x11.cc | 3 + + ui/ozone/public/ozone_platform.h | 10 +++ + 14 files changed, 108 insertions(+), 120 deletions(-) + +diff --git a/media/BUILD.gn b/media/BUILD.gn +index dbee1d4338..d5c158c08f 100644 +--- a/media/BUILD.gn ++++ b/media/BUILD.gn +@@ -130,9 +130,6 @@ component("media") { + public_deps += [ "//media/base/mac" ] + } + +- if (use_x11) { +- deps += [ "//ui/base/x" ] +- } + if (use_ozone) { + deps += [ "//ui/ozone" ] + } +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index c7499485ac..3fedc78948 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -20,6 +20,7 @@ buildflag_header("buildflags") { + "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs", + "USE_V4L2_CODEC=$use_v4l2_codec", + "USE_LIBV4L2=$use_v4lplugin", ++ "USE_VAAPI_X11=$use_vaapi_x11", + ] + } + +@@ -215,9 +216,7 @@ component("gpu") { + "windows/supported_profile_helpers.cc", + "windows/supported_profile_helpers.h", + ] +- configs += [ +- "//third_party/khronos:khronos_headers", +- ] ++ configs += [ "//third_party/khronos:khronos_headers" ] + public_deps += [ "//media/base/win:media_foundation_util" ] + deps += [ + "//gpu/ipc/common:common", +diff --git a/media/gpu/args.gni b/media/gpu/args.gni +index 4004937949..2f53843918 100644 +--- a/media/gpu/args.gni ++++ b/media/gpu/args.gni +@@ -3,7 +3,15 @@ + # found in the LICENSE file. + + import("//build/config/chromeos/ui_mode.gni") +-import("//build/config/ui.gni") ++import("//build/config/ozone.gni") ++ ++declare_args() { ++ # Indicates if X11 VA-API-based hardware acceleration is to be used. ++ # See also the comment near the |use_vaapi| arg. ++ use_vaapi_x11 = ++ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros && ++ (target_cpu == "x86" || target_cpu == "x64") ++} + + declare_args() { + # Indicates if V4L plugin is used. +@@ -21,8 +29,7 @@ declare_args() { + # is typically the case on x86-based ChromeOS devices. + # VA-API should also be compiled by default on x11-using linux devices + # using x86/x64. +- use_vaapi = +- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64") ++ use_vaapi = use_vaapi_x11 + + # Indicates if ChromeOS protected media support exists. This is used + # to enable the CDM daemon in Chrome OS as well as support for +diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn +index b11d2c60fa..0c2520dd6b 100644 +--- a/media/gpu/vaapi/BUILD.gn ++++ b/media/gpu/vaapi/BUILD.gn +@@ -17,7 +17,7 @@ assert(use_vaapi) + generate_stubs("libva_stubs") { + extra_header = "va_stub_header.fragment" + sigs = [ "va.sigs" ] +- if (use_x11) { ++ if (use_vaapi_x11) { + sigs += [ "va_x11.sigs" ] + } + if (is_chromeos_ash) { +@@ -131,14 +131,14 @@ source_set("vaapi") { + ] + } + +- if (use_x11 || use_ozone || use_egl) { ++ if (use_ozone || use_egl) { + sources += [ + "vaapi_picture_native_pixmap.cc", + "vaapi_picture_native_pixmap.h", + ] + } + +- if (use_x11) { ++ if (use_vaapi_x11) { + deps += [ "//ui/gfx/x" ] + sources += [ + "vaapi_picture_native_pixmap_angle.cc", +@@ -197,7 +197,7 @@ source_set("common") { + deps += [ "//ui/ozone" ] + } + +- if (use_x11) { ++ if (use_vaapi_x11) { + deps += [ "//ui/gfx/x" ] + } + +diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment +index bed198484d..e8c46c5e81 100644 +--- a/media/gpu/vaapi/va_stub_header.fragment ++++ b/media/gpu/vaapi/va_stub_header.fragment +@@ -1,12 +1,14 @@ + // The extra include header needed in the generated stub file for defining + // various libva types. + ++#include "media/gpu/buildflags.h" ++ + extern "C" { + + #include + #include +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + #include +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + + } +diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc +index 719035b87c..9c7d7387d2 100644 +--- a/media/gpu/vaapi/vaapi_picture_factory.cc ++++ b/media/gpu/vaapi/vaapi_picture_factory.cc +@@ -10,13 +10,13 @@ + #include "ui/base/ui_base_features.h" + #include "ui/gl/gl_bindings.h" + +-#if defined(USE_X11) +-#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h" +-#include "media/gpu/vaapi/vaapi_picture_tfp.h" +-#endif + #if defined(USE_OZONE) + #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h" +-#endif ++#endif // defined(USE_OZONE) ++#if BUILDFLAG(USE_VAAPI_X11) ++#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h" ++#include "media/gpu/vaapi/vaapi_picture_tfp.h" ++#endif // BUILDFLAG(USE_VAAPI_X11) + #if defined(USE_EGL) + #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h" + #endif +@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() { + vaapi_impl_pairs_.insert( + std::make_pair(gl::kGLImplementationEGLGLES2, + VaapiPictureFactory::kVaapiImplementationDrm)); +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + vaapi_impl_pairs_.insert( + std::make_pair(gl::kGLImplementationEGLANGLE, + VaapiPictureFactory::kVaapiImplementationAngle)); +- if (!features::IsUsingOzonePlatform()) { +- vaapi_impl_pairs_.insert( +- std::make_pair(gl::kGLImplementationDesktopGL, +- VaapiPictureFactory::kVaapiImplementationX11)); +- } ++ vaapi_impl_pairs_.insert( ++ std::make_pair(gl::kGLImplementationDesktopGL, ++ VaapiPictureFactory::kVaapiImplementationX11)); + #endif + + DeterminePictureCreationAndDownloadingMechanism(); +@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) { + } + + uint32_t VaapiPictureFactory::GetGLTextureTarget() { +-#if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) +- return GL_TEXTURE_EXTERNAL_OES; +-#endif ++#if BUILDFLAG(USE_VAAPI_X11) + return GL_TEXTURE_2D; ++#else ++ return GL_TEXTURE_EXTERNAL_OES; ++#endif + } + + gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() { +-#if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) +- return gfx::BufferFormat::YUV_420_BIPLANAR; +-#endif ++#if BUILDFLAG(USE_VAAPI_X11) + return gfx::BufferFormat::RGBX_8888; ++#else ++ return gfx::BufferFormat::YUV_420_BIPLANAR; ++#endif + } + + void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() { +@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() { + #if defined(USE_OZONE) + // We can be called without GL initialized, which is valid if we use Ozone. + case kVaapiImplementationNone: +- if (features::IsUsingOzonePlatform()) { +- create_picture_cb_ = base::BindRepeating( +- &CreateVaapiPictureNativeImpl); +- needs_vpp_for_downloading_ = true; +- } +- +- // This is reached by unit tests which don't require create_picture_cb_ +- // to be initialized or called. ++ create_picture_cb_ = base::BindRepeating( ++ &CreateVaapiPictureNativeImpl); ++ needs_vpp_for_downloading_ = true; + break; + #endif // defined(USE_OZONE) +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + case kVaapiImplementationX11: +- DCHECK(!features::IsUsingOzonePlatform()); + create_picture_cb_ = + base::BindRepeating(&CreateVaapiPictureNativeImpl); + // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. + needs_vpp_for_downloading_ = false; + break; + case kVaapiImplementationAngle: +- DCHECK(!features::IsUsingOzonePlatform()); + create_picture_cb_ = base::BindRepeating( + &CreateVaapiPictureNativeImpl); + // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. + needs_vpp_for_downloading_ = false; + break; +-#endif // defined(USE_X11) ++#endif // BUILDFLAG(USE_VAAPI_X11) + case kVaapiImplementationDrm: + #if defined(USE_OZONE) +- if (features::IsUsingOzonePlatform()) { +- create_picture_cb_ = base::BindRepeating( +- &CreateVaapiPictureNativeImpl); +- needs_vpp_for_downloading_ = true; +- break; +- } +-#endif // defined(USE_OZONE) +-#if defined(USE_EGL) ++ create_picture_cb_ = base::BindRepeating( ++ &CreateVaapiPictureNativeImpl); ++ needs_vpp_for_downloading_ = true; ++ break; ++#elif defined(USE_EGL) + create_picture_cb_ = base::BindRepeating( + &CreateVaapiPictureNativeImpl); + needs_vpp_for_downloading_ = true; + break; +-#endif // defined(USE_EGL) ++#else + // ozone or egl must be used to use the DRM implementation. +- NOTREACHED(); ++ FALLTHROUGH; ++#endif + default: + NOTREACHED(); ++ break; + } + } + +diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +index 9de0c93b44..e5b9908490 100644 +--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc ++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc +@@ -6,7 +6,6 @@ + + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" +-#include "ui/base/ui_base_features.h" + #include "ui/gfx/x/connection.h" + #include "ui/gfx/x/future.h" + #include "ui/gfx/x/xproto.h" +@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) { + if (!make_context_current_cb_ || !make_context_current_cb_.Run()) + return StatusCode::kVaapiBadContext; + +- DCHECK(!features::IsUsingOzonePlatform()); + auto image = + base::MakeRefCounted(visible_size_, format); + if (!image) +diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc +index 3f7e221d8a..11914e3640 100644 +--- a/media/gpu/vaapi/vaapi_picture_tfp.cc ++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc +@@ -6,7 +6,6 @@ + + #include "media/gpu/vaapi/va_surface.h" + #include "media/gpu/vaapi/vaapi_wrapper.h" +-#include "ui/base/ui_base_features.h" + #include "ui/gfx/x/connection.h" + #include "ui/gfx/x/future.h" + #include "ui/gl/gl_bindings.h" +@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture( + connection_(x11::Connection::Get()), + x_pixmap_(x11::Pixmap::None) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(!features::IsUsingOzonePlatform()); + DCHECK(texture_id); + DCHECK(client_texture_id); + } +diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +index 7514fe4fdd..e4cd7c8d89 100644 +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc +@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config, + Client* client) { + DCHECK(task_runner_->BelongsToCurrentThread()); + +-#if defined(USE_X11) +- // TODO(crbug/1116701): implement decode acceleration when running with Ozone. +- if (features::IsUsingOzonePlatform()) +- return false; +-#endif +- + vaapi_picture_factory_ = std::make_unique(); + + if (config.is_encrypted()) { +@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() { + + VaapiVideoDecodeAccelerator::BufferAllocationMode + VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply + // here. + DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT); + // TODO(crbug/1116701): get video decode acceleration working with ozone. +- DCHECK(!features::IsUsingOzonePlatform()); + // For H.264 on older devices, another +1 is experimentally needed for + // high-to-high resolution changes. + // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and +diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc +index 5b9a543386..826bb103b1 100644 +--- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc ++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc +@@ -17,7 +17,6 @@ + #include "media/gpu/vaapi/vaapi_wrapper.h" + #include "testing/gmock/include/gmock/gmock.h" + #include "testing/gtest/include/gtest/gtest.h" +-#include "ui/base/ui_base_features.h" + + using base::test::RunClosure; + using ::testing::_; +@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) { + mock_vaapi_picture_factory_->GetVaapiImplementation( + gl::kGLImplementationEGLGLES2)); + +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) { +- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11, +- mock_vaapi_picture_factory_->GetVaapiImplementation( +- gl::kGLImplementationDesktopGL)); +- } ++#if BUILDFLAG(USE_VAAPI_X11) ++ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11, ++ mock_vaapi_picture_factory_->GetVaapiImplementation( ++ gl::kGLImplementationDesktopGL)); + #endif + } + +diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc +index 754d258848..e528b0f84d 100644 +--- a/media/gpu/vaapi/vaapi_wrapper.cc ++++ b/media/gpu/vaapi/vaapi_wrapper.cc +@@ -65,7 +65,7 @@ + #include "ui/gl/gl_bindings.h" + #include "ui/gl/gl_implementation.h" + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + typedef XID Drawable; + + extern "C" { +@@ -73,7 +73,7 @@ extern "C" { + } + + #include "ui/gfx/x/connection.h" // nogncheck +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + + #if defined(USE_OZONE) + #include "ui/ozone/public/ozone_platform.h" +@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot; + + using media_gpu_vaapi::kModuleVa; + using media_gpu_vaapi::kModuleVa_drm; +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::kModuleVa_x11; +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::InitializeStubs; + using media_gpu_vaapi::IsVaInitialized; +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::IsVa_x11Initialized; +-#endif ++#endif // BUILDFLAG(USE_VAAPI_X11) + using media_gpu_vaapi::IsVa_drmInitialized; + using media_gpu_vaapi::StubPathMap; + +@@ -559,10 +559,20 @@ VADisplayState::VADisplayState() + bool VADisplayState::Initialize() { + base::AutoLock auto_lock(va_lock_); + ++#if defined(USE_OZONE) && defined(OS_LINUX) ++ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on ++ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi ++ // for more details. This will also require revisiting everything that's ++ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the ++ // user chooses the Wayland backend for Ozone at runtime, then many things (if ++ // not all) that we do for X11 won't apply. ++ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi) ++ return false; ++#endif ++ + bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized(); +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) +- libraries_initialized = libraries_initialized && IsVa_x11Initialized(); ++#if BUILDFLAG(USE_VAAPI_X11) ++ libraries_initialized = libraries_initialized && IsVa_x11Initialized(); + #endif + if (!libraries_initialized) + return false; +@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() { + return success; + } + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + + absl::optional GetVADisplayStateX11(const base::ScopedFD& drm_fd) { +- bool use_drm_as_fallback = false; + switch (gl::GetGLImplementation()) { + case gl::kGLImplementationEGLGLES2: + return vaGetDisplayDRM(drm_fd.get()); + + case gl::kGLImplementationNone: +- use_drm_as_fallback = true; +- FALLTHROUGH; + + case gl::kGLImplementationDesktopGL: { +- if (!features::IsUsingOzonePlatform()) { +- VADisplay display = +- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); +- if (vaDisplayIsValid(display)) +- return display; +- return vaGetDisplayDRM(drm_fd.get()); +- } +- break; ++ VADisplay display = ++ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); ++ if (vaDisplayIsValid(display)) ++ return display; ++ return vaGetDisplayDRM(drm_fd.get()); + } + +- case gl::kGLImplementationEGLANGLE: { +- if (!features::IsUsingOzonePlatform()) +- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); +- break; +- } ++ case gl::kGLImplementationEGLANGLE: ++ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay()); + + default: + LOG(WARNING) << "VAAPI video acceleration not available for " +@@ -612,10 +613,6 @@ absl::optional GetVADisplayStateX11(const base::ScopedFD& drm_fd) { + gl::GetGLImplementationParts()); + return absl::nullopt; + } +- +- if (use_drm_as_fallback) +- return vaGetDisplayDRM(drm_fd.get()); +- return absl::nullopt; + } + + #else +@@ -633,11 +630,11 @@ absl::optional GetVADisplayState(const base::ScopedFD& drm_fd) { + } + } + +-#endif // defined(USE_X11) ++#endif // BUILDFLAG(USE_VAAPI_X11) + + bool VADisplayState::InitializeVaDisplay_Locked() { + absl::optional display = +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + GetVADisplayStateX11(drm_fd_); + #else + GetVADisplayState(drm_fd_); +@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() { + if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) + return false; + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_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 +@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() { + if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked()) + return false; + } +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + return true; + } +@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute( + return Execute_Locked(va_surface_id, va_buffer_ids); + } + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + x11::Pixmap x_pixmap, + gfx::Size dest_size) { +- DCHECK(!features::IsUsingOzonePlatform()); + base::AutoLock auto_lock(*va_lock_); + + VAStatus va_res = vaSyncSurface(va_display_, va_surface_id); +@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false); + return true; + } +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + std::unique_ptr VaapiWrapper::CreateVaImage( + VASurfaceID va_surface_id, +@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() { + + paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix); + paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix); +-#if defined(USE_X11) +- if (!features::IsUsingOzonePlatform()) +- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); ++#if BUILDFLAG(USE_VAAPI_X11) ++ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); + #endif + #if BUILDFLAG(IS_CHROMEOS_ASH) + paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix); +diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h +index 0e3da53624..88ffcd0799 100644 +--- a/media/gpu/vaapi/vaapi_wrapper.h ++++ b/media/gpu/vaapi/vaapi_wrapper.h +@@ -36,9 +36,9 @@ + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "ui/gfx/geometry/size.h" + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + #include "ui/gfx/x/xproto.h" // nogncheck +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + namespace gfx { + enum class BufferFormat; +@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper + const std::vector>& va_buffers) + WARN_UNUSED_RESULT; + +-#if defined(USE_X11) ++#if BUILDFLAG(USE_VAAPI_X11) + // Put data from |va_surface_id| into |x_pixmap| of size + // |dest_size|, converting/scaling to it. + bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, + x11::Pixmap x_pixmap, + gfx::Size dest_size) WARN_UNUSED_RESULT; +-#endif // USE_X11 ++#endif // BUILDFLAG(USE_VAAPI_X11) + + // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into + // memory with the given |format| and |size|. If |format| is not equal to the +diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc +index 8889828e0f..963dc7a0cd 100644 +--- a/ui/ozone/platform/x11/ozone_platform_x11.cc ++++ b/ui/ozone/platform/x11/ozone_platform_x11.cc +@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform, + properties->supports_global_application_menus = true; + properties->app_modal_dialogs_use_event_blocker = true; + properties->fetch_buffer_formats_for_gmb_on_gpu = true; ++#if defined(OS_LINUX) ++ properties->supports_vaapi = true; ++#endif + + initialised = true; + } +diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h +index df95f07486..2d7f44bbfa 100644 +--- a/ui/ozone/public/ozone_platform.h ++++ b/ui/ozone/public/ozone_platform.h +@@ -15,6 +15,7 @@ + #include "base/macros.h" + #include "base/message_loop/message_pump_type.h" + #include "base/single_thread_task_runner.h" ++#include "build/build_config.h" + #include "mojo/public/cpp/bindings/binder_map.h" + #include "ui/gfx/buffer_types.h" + #include "ui/gfx/native_widget_types.h" +@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform { + // Determines whether buffer formats should be fetched on GPU and passed + // back via gpu extra info. + bool fetch_buffer_formats_for_gmb_on_gpu = false; ++ ++#if defined(OS_LINUX) ++ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on ++ // Linux. At the moment, VA-API Linux implementation supports only X11 ++ // backend. This implementation must be refactored to support Ozone ++ // properly. As a temporary solution, VA-API on Linux checks if vaapi is ++ // supported (which implicitly means that it is Ozone/X11). ++ bool supports_vaapi = false; ++#endif + }; + + // Groups platform properties that can only be known at run time. diff --git a/chromium-96.0.4664.45-gcc-2.34.patch b/chromium-96.0.4664.45-gcc-2.34.patch new file mode 100644 index 0000000..64c03a6 --- /dev/null +++ b/chromium-96.0.4664.45-gcc-2.34.patch @@ -0,0 +1,50 @@ +From 600d63c2c59a9892dbc5423d7d8bb1565a9f91e7 Mon Sep 17 00:00:00 2001 +From: Michel Salim +Date: Thu, 04 Nov 2021 14:22:40 -0700 +Subject: [PATCH] Handle long SIGSTKSZ in glibc > 2.33 + +`SIGSTKSZ` is no longer constant in glibc > 2.33 but a function +returning a long. Cast before taking `max`. + +See https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD + +Signed-off-by: Michel Salim +Change-Id: I197f8ff3053eede80d6aed096be4f0113dd43241 +(relocated to chromium repo, removed static) +--- + +diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc +index ca353c4..5cdabcf 100644 +--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc ++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc +@@ -138,7 +138,7 @@ + // SIGSTKSZ may be too small to prevent the signal handlers from overrunning + // the alternative stack. Ensure that the size of the alternative stack is + // large enough. +- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); ++ const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ); + + // Only set an alternative stack if there isn't already one, or if the current + // one is too small. +diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc +index ca6b595..1c1ee42 100644 +--- a/sandbox/linux/services/credentials.cc ++++ b/sandbox/linux/services/credentials.cc +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() { + // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f. + clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS; + +- char tls_buf[PTHREAD_STACK_MIN] = {0}; ++ char tls_buf[PTHREAD_STACK_MIN]; ++ memset(tls_buf, 0, PTHREAD_STACK_MIN); + tls = tls_buf; + #endif + diff --git a/chromium.spec b/chromium.spec index d9e31e8..fb04d96 100644 --- a/chromium.spec +++ b/chromium.spec @@ -1,8 +1,8 @@ %define MAJver %(echo %version | cut -d. -f1) -%define gcc_patchset 7 +%define gcc_patchset 4 Name: chromium Epoch: 3 -Version: 92.0.4515.131 +Version: 96.0.4664.45 Release: 1mamba Summary: An open-source browser project that aims to build a safer, faster, and more stable way to experience the web Group: Graphical Desktop/Applications/Internet @@ -30,10 +30,18 @@ Patch9: chromium-92.0.4515.107-linux-sandbox-syscall-broker-use-struct-ke Patch10: chromium-92.0.4515.107-linux-sandbox-fix-fstatat-crash.patch Patch11: chromium-92.0.4515.107-make-GetUsableSize-handle-nullptr-gracefully.patch Patch12: chromium-92.0.4515.107-sql-make-VirtualCursor-standard-layout-type.patch -Patch13: chromium-92.0.4515.131-breakpad-gcc-11.2.0.patch -Patch14: chromium-92.0.4515.131-sandbox-gcc-11.2.0.patch Patch15: chromium-92.0.4515.131-freetype-2.11.patch -Patch16: chromium-92.0.4515.131-gcc-fix-swiftshader-libEGL-visibility.patch +Patch16: chromium-92.0.4515.131-gcc-fix-swiftshader-libEGL-visibility.patch +Patch17: chromium-93.0.4577.63-replace-blacklist-with-ignorelist.patch +Patch18: chromium-94.0.4606.71-use-ffile-compilation-dir.patch +Patch19: chromium-94.0.4606.71-ffmpeg-4.4.patch +Patch20: chromium-94.0.4606.71-ffmpeg-roll.patch +Patch21: chromium-94.0.4606.71-unexpire-accelerated-video-decode-flag.patch +Patch22: chromium-94.0.4606.71-add-a-TODO-about-a-missing-pnacl-flag.patch +Patch23: chromium-95.0.4638.54-maldoca-depend-on-zlib-instead-of-headers-only.patch +Patch24: chromium-95.0.4638.54-harfbuzz-3.patch +Patch25: chromium-95.0.4638.54-ozone-x11-fix-VA-API.patch +Patch26: chromium-96.0.4664.45-gcc-2.34.patch License: BSD ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -79,10 +87,10 @@ BuildRequires: libwebp-devel BuildRequires: libxcb-devel BuildRequires: libxkbcommon-devel BuildRequires: libxml2-devel -BuildRequires: libxshmfence-devel BuildRequires: libxslt-devel BuildRequires: libz-devel ## AUTOBUILDREQ-END +BuildRequires: libharfbuzz-devel >= 3.0.0 BuildRequires: libpthread-stubs-devel BuildRequires: libgnome-keyring-devel BuildRequires: gperf @@ -134,28 +142,26 @@ Chromium is an open-source browser project that aims to build a safer, faster, a # Allow building against system libraries in official builds sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ tools/generate_shim_headers/generate_shim_headers.py - -#%patch1 -p1 -#%patch2 -p1 + %ifarch %{ix86} %patch3 -p1 -#%patch4 -p1 %endif -#%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -#%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 +%patch6 -p1 -b .clang-11-nomerge +%patch7 -p1 -b .use-oauth2-client-switches-as-default +%patch19 -p1 -b .ffmpeg-4.4 +%patch20 -Rp1 -b .ffmpeg-roll +%patch21 -p0 -b .unexpire-accelerated-video-decode-flag +%patch17 -Rp1 -b .replace-blacklist-with-ignorelist +%patch22 -Rp1 -b .add-a-TODO-about-a-missing-pnacl-flag +%patch18 -Rp1 -b .use-ffile-compilation-dir +%patch12 -p1 -b .sql-make-VirtualCursor-standard-layout-type +%patch26 -p1 -b .gcc-2.34 # Fixes for building with libstdc++ instead of libc++ -patch -Np1 -i patches/chromium-90-ruy-include.patch +patch -Np1 -i patches/chromium-96-CommandLine-include.patch +patch -Np1 -i patches/chromium-96-RestrictedCookieManager-tuple.patch +patch -Np1 -i patches/chromium-96-DrmRenderNodePathFinder-include.patch +patch -Np1 -i patches/chromium-96-CouponDB-include.patch # Force script incompatible with Python 3 to use /usr/bin/python2 sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py @@ -217,7 +223,7 @@ for l in ${_unwanted_bundled_libs[@]}; do -delete done -python2 build/linux/unbundle/replace_gn_files.py \ +python3 build/linux/unbundle/replace_gn_files.py \ --system-libraries "${!_system_libs[@]}" mkdir -p third_party/node/linux/node-linux-x64/bin @@ -312,7 +318,7 @@ install -d -m0755 %{buildroot}%{_libdir}/chromium/ %{buildroot}%{_bindir} install -m0755 out/Release/chrome %{buildroot}%{_libdir}/chromium/chromium install -m0755 out/Release/chrome_sandbox %{buildroot}%{_libdir}/chromium/chrome-sandbox install -m0755 out/Release/chromedriver %{buildroot}%{_libdir}/chromium/chromedriver -install -m0755 out/Release/crashpad_handler %{buildroot}%{_libdir}/chromium/crashpad_handler +install -m0755 out/Release/chrome_crashpad_handler %{buildroot}%{_libdir}/chromium/chrome_crashpad_handler install -m0755 out/Release/libEGL.so %{buildroot}%{_libdir}/chromium/libEGL.so install -m0755 out/Release/libGLESv2.so %{buildroot}%{_libdir}/chromium/libGLESv2.so #install -m0755 out/Release/libwidevinecdm.so %{buildroot}%{_libdir}/chromium/libwidevinecdm.so @@ -362,16 +368,14 @@ cat > %{buildroot}%{_bindir}/chromium << _EOF #!/bin/bash set -- "\${ARGS[@]}" "\$@" -# FIXME: --no-sandbox: added as of 92.0.4515.131 as a temporary workaround - if [ -r /opt/chromium/PepperFlash/manifest.json ]; then PEPPER_FLASH_VERSION="\$(grep '"version":' /opt/chromium/PepperFlash/manifest.json | grep -Po '(?<=version": ")(?:\d|\.)*')" exec %{_libdir}/chromium/chromium \\ - --ignore-gpu-blacklist --no-sandbox \\ + --ignore-gpu-blacklist \\ --ppapi-flash-path=/opt/chromium/PepperFlash/libpepflashplayer.so \\ --ppapi-flash-version=\${PEPPER_FLASH_VERSION} "\$@" else - exec %{_libdir}/chromium/chromium --ignore-gpu-blacklist --no-sandbox "\$@" + exec %{_libdir}/chromium/chromium --ignore-gpu-blacklist "\$@" fi _EOF chmod 755 %{buildroot}%{_bindir}/chromium @@ -401,7 +405,7 @@ ln -s %{_libdir}/chromium/chromedriver %{buildroot}%{_bindir}/chromedriver %dir %{_libdir}/chromium %{_libdir}/chromium/chromium %{_libdir}/chromium/chromedriver -%{_libdir}/chromium/crashpad_handler +%{_libdir}/chromium/chrome_crashpad_handler %{_libdir}/chromium/*.bin %{_libdir}/chromium/*.pak #%{_libdir}/chromium/chrome-wrapper @@ -421,6 +425,18 @@ ln -s %{_libdir}/chromium/chromedriver %{buildroot}%{_bindir}/chromedriver %{_mandir}/man1/chromium.1* %changelog +* Sun Nov 21 2021 Automatic Build System 96.0.4664.45-1mamba +- automatic version update by autodist + +* Fri Nov 12 2021 Automatic Build System 95.0.4638.74-1mamba +- automatic version update by autodist + +* Tue Oct 12 2021 Automatic Build System 94.0.4606.81-1mamba +- automatic version update by autodist + +* Mon Oct 04 2021 Silvan Calarco 94.0.4606.71-1mamba +- update to 94.0.4606.71 + * Mon Aug 09 2021 Automatic Build System 92.0.4515.131-1mamba - automatic version update by autodist