public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Than Ngo <than@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/chromium] epel9-next: - update to 122.0.6261.57
Date: Fri, 07 Aug 2026 16:06:02 GMT [thread overview]
Message-ID: <178611876219.1.11762354378346084145.rpms-chromium-09195bfaaa32@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 09195bfaaa32c66e8da67538c626e07daa536fa6
Author : Than Ngo <than@redhat.com>
Date : 2024-02-21T12:43:02+01:00
Stats : +1347/-1868 in 22 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/09195bfaaa32c66e8da67538c626e07daa536fa6?branch=epel9-next
Log:
- update to 122.0.6261.57
* High CVE-2024-1669: Out of bounds memory access in Blink
* High CVE-2024-1670: Use after free in Mojo
* Medium CVE-2024-1671: Inappropriate implementation in Site Isolation
* Medium CVE-2024-1672: Inappropriate implementation in Content Security Policy
* Medium CVE-2024-1673: Use after free in Accessibility
* Medium CVE-2024-1674: Inappropriate implementation in Navigation
* Medium CVE-2024-1675: Insufficient policy enforcement in Download
* Low CVE-2024-1676: Inappropriate implementation in Navigation.
---
diff --git a/chromium-105.0.5195.52-python-six-1.16.0.patch b/chromium-105.0.5195.52-python-six-1.16.0.patch
deleted file mode 100644
index 497c2df..0000000
--- a/chromium-105.0.5195.52-python-six-1.16.0.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
---- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 2022-07-05 13:31:29.434673638 +0000
-+++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py 2022-07-05 21:52:01.884578748 +0000
-@@ -29,7 +29,7 @@ import sys
- import types
-
- __author__ = "Benjamin Peterson <benjamin@python.org>"
--__version__ = "1.15.0"
-+__version__ = "1.16.0"
-
-
- # Useful for very coarse version differentiation.
-@@ -71,6 +71,11 @@ else:
- MAXSIZE = int((1 << 63) - 1)
- del X
-
-+if PY34:
-+ from importlib.util import spec_from_loader
-+else:
-+ spec_from_loader = None
-+
-
- def _add_doc(func, doc):
- """Add documentation to a function."""
-@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
- return self
- return None
-
-+ def find_spec(self, fullname, path, target=None):
-+ if fullname in self.known_modules:
-+ return spec_from_loader(fullname, self)
-+ return None
-+
- def __get_module(self, fullname):
- try:
- return self.known_modules[fullname]
-@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
- return None
- get_source = get_code # same as get_code
-
-+ def create_module(self, spec):
-+ return self.load_module(spec.name)
-+
-+ def exec_module(self, module):
-+ pass
-+
- _importer = _SixMetaPathImporter(__name__)
-
-
-diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
---- chromium-103.0.5060.53/third_party/six/src/six.py.116 2022-07-05 13:32:28.916687658 +0000
-+++ chromium-103.0.5060.53/third_party/six/src/six.py 2022-07-05 21:59:42.561240407 +0000
-@@ -29,7 +29,7 @@ import sys
- import types
-
- __author__ = "Benjamin Peterson <benjamin@python.org>"
--__version__ = "1.14.0"
-+__version__ = "1.16.0"
-
-
- # Useful for very coarse version differentiation.
-@@ -71,6 +71,11 @@ else:
- MAXSIZE = int((1 << 63) - 1)
- del X
-
-+if PY34:
-+ from importlib.util import spec_from_loader
-+else:
-+ spec_from_loader = None
-+
-
- def _add_doc(func, doc):
- """Add documentation to a function."""
-@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
- return self
- return None
-
-+ def find_spec(self, fullname, path, target=None):
-+ if fullname in self.known_modules:
-+ return spec_from_loader(fullname, self)
-+ return None
-+
- def __get_module(self, fullname):
- try:
- return self.known_modules[fullname]
-@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
- return None
- get_source = get_code # same as get_code
-
-+ def create_module(self, spec):
-+ return self.load_module(spec.name)
-+
-+ def exec_module(self, module):
-+ pass
-+
- _importer = _SixMetaPathImporter(__name__)
-
-
-@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
- - `str` -> encoded to `bytes`
- - `bytes` -> `bytes`
- """
-+ if isinstance(s, binary_type):
-+ return s
- if isinstance(s, text_type):
- return s.encode(encoding, errors)
-- elif isinstance(s, binary_type):
-- return s
-- else:
-- raise TypeError("not expecting type '%s'" % type(s))
-+ raise TypeError("not expecting type '%s'" % type(s))
-
-
- def ensure_str(s, encoding='utf-8', errors='strict'):
-@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
- - `str` -> `str`
- - `bytes` -> decoded to `str`
- """
-- if not isinstance(s, (text_type, binary_type)):
-- raise TypeError("not expecting type '%s'" % type(s))
-+ # Optimization: Fast return for the common case.
-+ if type(s) is str:
-+ return s
- if PY2 and isinstance(s, text_type):
-- s = s.encode(encoding, errors)
-+ return s.encode(encoding, errors)
- elif PY3 and isinstance(s, binary_type):
-- s = s.decode(encoding, errors)
-+ return s.decode(encoding, errors)
-+ elif not isinstance(s, (text_type, binary_type)):
-+ raise TypeError("not expecting type '%s'" % type(s))
- return s
-
-
diff --git a/chromium-119-norar.patch b/chromium-119-norar.patch
deleted file mode 100644
index 51b7155..0000000
--- a/chromium-119-norar.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -up chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
---- chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar 2023-11-01 19:10:13.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc 2023-11-06 17:16:55.630255973 +0100
-@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
-
- if (inspection_type == DownloadFileType::ZIP) {
- StartExtractZipFeatures();
-- } else if (inspection_type == DownloadFileType::RAR) {
-- StartExtractRarFeatures();
- #if BUILDFLAG(IS_MAC)
- } else if (inspection_type == DownloadFileType::DMG) {
- StartExtractDmgFeatures();
-diff -up chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn
---- chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-11-01 19:10:16.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn 2023-11-06 17:16:55.630255973 +0100
-@@ -143,7 +143,6 @@ source_set("safe_browsing") {
- "//components/safe_browsing/content/common:file_type_policies",
- "//components/safe_browsing/core/common",
- "//third_party/lzma_sdk/google:seven_zip_reader",
-- "//third_party/unrar:unrar",
- ]
-
- public_deps = [
-diff -up chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-11-06 18:07:30.549291823 +0100
-+++ chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc 2023-11-06 18:08:00.510076945 +0100
-@@ -74,6 +74,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
- const absl::optional<std::string>& password,
- mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
- temp_file_getter_.Bind(std::move(temp_file_getter));
- callback_ = std::move(callback);
-@@ -90,6 +91,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
- /*password=*/password,
- std::move(analysis_finished_callback),
- std::move(temp_file_getter_callback), &results_);
-+#else
-+ NOTREACHED();
-+#endif
- }
-
- void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
-diff -up chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h
---- chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h.nounrar 2023-11-01 19:10:16.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h 2023-11-06 17:16:55.630255973 +0100
-@@ -7,7 +7,6 @@
-
- #include "chrome/common/safe_browsing/archive_analyzer_results.h"
- #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
--#include "chrome/utility/safe_browsing/rar_analyzer.h"
- #include "chrome/utility/safe_browsing/seven_zip_analyzer.h"
- #include "chrome/utility/safe_browsing/zip_analyzer.h"
- #include "mojo/public/cpp/bindings/remote.h"
-@@ -66,7 +65,6 @@ class SafeArchiveAnalyzer : public chrom
- void Timeout();
-
- safe_browsing::ZipAnalyzer zip_analyzer_;
-- safe_browsing::RarAnalyzer rar_analyzer_;
- safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
- #if BUILDFLAG(IS_MAC)
- safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;
diff --git a/chromium-120-clang16-disable-auto-upgrade-debug-info.patch b/chromium-120-clang16-disable-auto-upgrade-debug-info.patch
deleted file mode 100644
index ea2f483..0000000
--- a/chromium-120-clang16-disable-auto-upgrade-debug-info.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-120.0.6099.62/build/config/compiler/BUILD.gn.than chromium-120.0.6099.62/build/config/compiler/BUILD.gn
---- chromium-120.0.6099.62/build/config/compiler/BUILD.gn.than 2023-12-06 19:28:25.998327318 +0100
-+++ chromium-120.0.6099.62/build/config/compiler/BUILD.gn 2023-12-06 19:28:34.190528906 +0100
-@@ -787,7 +787,7 @@ config("compiler") {
- # toolchain has this flag.
- # We only use one version of LLVM within a build so there's no need to
- # upgrade debug info, which can be expensive since it runs the verifier.
-- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
-+ ldflags += [ "" ]
- }
- }
-
diff --git a/chromium-120-disable-FFmpegAllowLists.patch b/chromium-120-disable-FFmpegAllowLists.patch
deleted file mode 100644
index 98216dd..0000000
--- a/chromium-120-disable-FFmpegAllowLists.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-120.0.6099.56/media/base/media_switches.cc.me chromium-120.0.6099.56/media/base/media_switches.cc
---- chromium-120.0.6099.56/media/base/media_switches.cc.me 2023-12-02 11:43:21.990775897 +0100
-+++ chromium-120.0.6099.56/media/base/media_switches.cc 2023-12-02 11:45:23.248006377 +0100
-@@ -1636,7 +1636,7 @@ BASE_FEATURE(kUseSharedImagesForPepperVi
- // Enables FFmpeg allow lists for supported codecs / containers.
- BASE_FEATURE(kFFmpegAllowLists,
- "FFmpegAllowLists",
-- base::FEATURE_ENABLED_BY_DEFAULT);
-+ base::FEATURE_DISABLED_BY_DEFAULT);
-
- #if BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS)
- // Allows decoding of theora / vp3 content.
diff --git a/chromium-121-arm64-memory_tagging.patch b/chromium-121-arm64-memory_tagging.patch
deleted file mode 100644
index cf807dd..0000000
--- a/chromium-121-arm64-memory_tagging.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-121.0.6167.57/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.me chromium-121.0.6167.57/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
---- chromium-121.0.6167.57/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.me 2024-01-16 14:20:52.401890657 +0100
-+++ chromium-121.0.6167.57/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h 2024-01-16 15:08:04.070156474 +0100
-@@ -162,7 +162,8 @@ static_assert(sizeof(void*) != 8, "");
-
- #if defined(ARCH_CPU_ARM64) && defined(__clang__) && \
- !defined(ADDRESS_SANITIZER) && \
-- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID))
-+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)) && \
-+ __GLIBC_PREREQ(2, 29)
- #define PA_CONFIG_HAS_MEMORY_TAGGING() 1
- #else
- #define PA_CONFIG_HAS_MEMORY_TAGGING() 0
diff --git a/chromium-121-constexpr.patch b/chromium-121-constexpr.patch
deleted file mode 100644
index a0b7166..0000000
--- a/chromium-121-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-121.0.6167.57/components/performance_manager/resource_attribution/query_params.h.me chromium-121.0.6167.57/components/performance_manager/resource_attribution/query_params.h
---- chromium-121.0.6167.57/components/performance_manager/resource_attribution/query_params.h.me 2024-01-18 17:00:24.791582422 +0100
-+++ chromium-121.0.6167.57/components/performance_manager/resource_attribution/query_params.h 2024-01-18 17:22:21.521682845 +0100
-@@ -27,7 +27,7 @@ struct QueryParams {
- QueryParams(const QueryParams& other);
- QueryParams& operator=(const QueryParams& other);
-
-- friend constexpr bool operator==(const QueryParams&,
-+ friend bool operator==(const QueryParams&,
- const QueryParams&) = default;
-
- // Individual resource contexts to measure.
diff --git a/chromium-121-el8-support-64kpage.patch b/chromium-121-el8-support-64kpage.patch
deleted file mode 100644
index 556fc65..0000000
--- a/chromium-121-el8-support-64kpage.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h
---- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
-+++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h 2024-02-01 17:20:37.178877448 +0100
-@@ -146,7 +146,13 @@ struct PartitionBucket {
- // Returns a slot number starting from the beginning of the slot span.
- PA_ALWAYS_INLINE size_t GetSlotNumber(size_t offset_in_slot_span) const {
- // See the static assertion for `kReciprocalShift` above.
-- PA_DCHECK(offset_in_slot_span <= kMaxBucketed);
-+ // TODO(casey.smalley@arm.com): triggers on Aarch64/Linux
-+ // systems with 64k system pages. Constants need to be
-+ // adjusted to prevent different parts of the allocator
-+ // from overlapping. For now this will allow 64k pages
-+ // to function on Aarch64/Linux systems, albeit not
-+ // very efficiently.
-+ // PA_DCHECK(offset_in_slot_span <= kMaxBucketed);
- PA_DCHECK(slot_size <= kMaxBucketed);
-
- const size_t offset_in_slot =
-diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
---- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h.el8-support-64kpage.patch 2024-02-01 17:20:37.178877448 +0100
-+++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h 2024-02-01 17:31:08.500268457 +0100
-@@ -17,10 +17,8 @@ namespace partition_alloc::internal {
- // PartitionPageSize() is 4 times the OS page size.
- static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
- #elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
--// System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
--// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
--// so we use the 16 kiB maximum (64 kiB will crash).
--static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
-+// System page size can be 4, 16, or 64 kiB on Linux on AArch64.
-+static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 16) / kSmallestBucket;
- #else
- // A slot span can "span" multiple PartitionPages, but then its slot size is
- // larger, so it doesn't have as many slots.
-diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
---- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
-+++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h 2024-02-01 17:20:37.178877448 +0100
-@@ -95,26 +95,25 @@ struct SlotSpanMetadata {
-
- // CHECK()ed in AllocNewSlotSpan().
- // The maximum number of bits needed to cover all currently supported OSes.
-- static constexpr size_t kMaxSlotsPerSlotSpanBits = 13;
-+ static constexpr size_t kMaxSlotsPerSlotSpanBits = 15;
- static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), "");
-
-- // |marked_full| isn't equivalent to being full. Slot span is marked as full
-- // iff it isn't on the active slot span list (or any other list).
-- uint32_t marked_full : 1;
- // |num_allocated_slots| is 0 for empty or decommitted slot spans, which can
- // be further differentiated by checking existence of the freelist.
-- uint32_t num_allocated_slots : kMaxSlotsPerSlotSpanBits;
-- uint32_t num_unprovisioned_slots : kMaxSlotsPerSlotSpanBits;
-+ uint16_t num_allocated_slots : kMaxSlotsPerSlotSpanBits;
-+ uint16_t num_unprovisioned_slots : kMaxSlotsPerSlotSpanBits;
-+
-+ // |marked_full| isn't equivalent to being full. Slot span is marked as full
-+ // iff it isn't on the active slot span list (or any other list).
-+ bool marked_full : 1;
-
- private:
-- const uint32_t can_store_raw_size_ : 1;
-- uint32_t freelist_is_sorted_ : 1;
-- uint32_t unused1_ : (32 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1);
-+ const uint8_t can_store_raw_size_ : 1;
-+ uint8_t freelist_is_sorted_ : 1;
- // If |in_empty_cache_|==1, |empty_cache_index| is undefined and mustn't be
- // used.
-- uint16_t in_empty_cache_ : 1;
-- uint16_t empty_cache_index_ : kEmptyCacheIndexBits; // < kMaxFreeableSpans.
-- uint16_t unused2_ : (16 - 1 - kEmptyCacheIndexBits);
-+ bool in_empty_cache_ : 1;
-+ uint8_t empty_cache_index_ : kEmptyCacheIndexBits; // < kMaxFreeableSpans.
- // Can use only 48 bits (6B) in this bitfield, as this structure is embedded
- // in PartitionPage which has 2B worth of fields and must fit in 32B.
-
-@@ -279,18 +278,13 @@ static_assert(sizeof(SlotSpanMetadata) <
- "SlotSpanMetadata must fit into a Page Metadata slot.");
-
- inline constexpr SlotSpanMetadata::SlotSpanMetadata() noexcept
-- : marked_full(0),
-- num_allocated_slots(0),
-+ : num_allocated_slots(0),
- num_unprovisioned_slots(0),
-+ marked_full(0),
- can_store_raw_size_(false),
- freelist_is_sorted_(true),
-- unused1_(0),
- in_empty_cache_(0),
-- empty_cache_index_(0),
-- unused2_(0) {
-- (void)unused1_;
-- (void)unused2_;
--}
-+ empty_cache_index_(0) {}
-
- inline SlotSpanMetadata::SlotSpanMetadata(const SlotSpanMetadata&) = default;
-
-@@ -883,7 +877,7 @@ PA_ALWAYS_INLINE void SlotSpanMetadata::
-
- size_t num_slots_per_span = bucket->get_slots_per_span();
- PA_DCHECK(num_slots_per_span <= kMaxSlotsPerSlotSpan);
-- num_unprovisioned_slots = static_cast<uint32_t>(num_slots_per_span);
-+ num_unprovisioned_slots = static_cast<uint16_t>(num_slots_per_span);
- PA_DCHECK(num_unprovisioned_slots);
-
- ToSuperPageExtent()->IncrementNumberOfNonemptySlotSpans();
-diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
---- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
-+++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc 2024-02-01 17:20:37.178877448 +0100
-@@ -950,12 +950,11 @@ void PartitionRoot::Init(PartitionOption
- (internal::SystemPageSize() == (size_t{1} << 14)));
- #elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
- // Check runtime pagesize. Though the code is currently the same, it is
-- // not merged with the IS_APPLE case above as a 1 << 16 case needs to be
-- // added here in the future, to allow 64 kiB pagesize. That is only
-- // supported on Linux on arm64, not on IS_APPLE, but not yet present here
-- // as the rest of the partition allocator does not currently support it.
-+ // not merged with the IS_APPLE case above as a 1 << 16 case is only
-+ // supported on Linux on AArch64.
- PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
-- (internal::SystemPageSize() == (size_t{1} << 14)));
-+ (internal::SystemPageSize() == (size_t{1} << 14)) ||
-+ (internal::SystemPageSize() == (size_t{1} << 16)));
- #endif
-
- ::partition_alloc::internal::ScopedGuard guard{lock_};
diff --git a/chromium-121-missing-header-files.patch b/chromium-121-missing-header-files.patch
deleted file mode 100644
index b686ed7..0000000
--- a/chromium-121-missing-header-files.patch
+++ /dev/null
@@ -1,515 +0,0 @@
-diff -up chromium-119.0.6045.105/base/check_op.h.missing-header-files chromium-119.0.6045.105/base/check_op.h
---- chromium-119.0.6045.105/base/check_op.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
-+++ chromium-119.0.6045.105/base/check_op.h 2023-11-06 14:34:01.808868982 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CHECK_OP_H_
- #define BASE_CHECK_OP_H_
-
-+#include <cstdint>
- #include <cstddef>
- #include <string>
- #include <string_view>
-diff -up chromium-119.0.6045.105/base/containers/flat_map.h.missing-header-files chromium-119.0.6045.105/base/containers/flat_map.h
---- chromium-119.0.6045.105/base/containers/flat_map.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
-+++ chromium-119.0.6045.105/base/containers/flat_map.h 2023-11-06 14:34:01.813869089 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CONTAINERS_FLAT_MAP_H_
- #define BASE_CONTAINERS_FLAT_MAP_H_
-
-+#include <cstdint>
- #include <functional>
- #include <tuple>
- #include <type_traits>
-diff -up chromium-119.0.6045.105/base/debug/profiler.h.missing-header-files chromium-119.0.6045.105/base/debug/profiler.h
---- chromium-119.0.6045.105/base/debug/profiler.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
-+++ chromium-119.0.6045.105/base/debug/profiler.h 2023-11-06 14:34:01.809869004 +0100
-@@ -8,6 +8,7 @@
- #include <stddef.h>
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
- #include "base/base_export.h"
-diff -up chromium-119.0.6045.105/base/memory/ref_counted.h.missing-header-files chromium-119.0.6045.105/base/memory/ref_counted.h
---- chromium-119.0.6045.105/base/memory/ref_counted.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
-+++ chromium-119.0.6045.105/base/memory/ref_counted.h 2023-11-06 14:34:01.808868982 +0100
-@@ -6,6 +6,7 @@
- #define BASE_MEMORY_REF_COUNTED_H_
-
- #include <stddef.h>
-+#include <limits>
-
- #include <limits>
- #include <utility>
-diff -up chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h.missing-header-files chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h
---- chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h.missing-header-files 2023-11-01 19:10:13.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h 2023-11-06 14:34:01.814869110 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <map>
-
- #include "base/containers/flat_set.h"
-diff -up chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h
---- chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2023-11-01 19:10:16.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h 2023-11-06 14:34:01.817869174 +0100
-@@ -8,6 +8,7 @@
- #include <memory>
- #include <string>
- #include <vector>
-+#include <variant>
-
- #include "base/containers/span.h"
- #include "base/functional/callback_forward.h"
-diff -up chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc
---- chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2023-11-01 19:10:16.000000000 +0100
-+++ chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc 2023-11-06 14:34:01.818869196 +0100
-@@ -11,6 +11,7 @@
- #include <queue>
- #include <utility>
- #include <vector>
-+#include <cstring>
-
- #include "base/check.h"
- #include "base/files/file_path.h"
-diff -up chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h.missing-header-files chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h
---- chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h.missing-header-files 2023-11-01 19:10:19.000000000 +0100
-+++ chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h 2023-11-06 14:34:01.815869132 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
- class GURL;
-diff -up chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h.missing-header-files chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h
---- chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h.missing-header-files 2023-11-01 19:10:20.000000000 +0100
-+++ chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h 2023-11-06 14:34:01.813869089 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
- #include "build/build_config.h"
-diff -up chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h.missing-header-files chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h
---- chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
-+++ chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h 2023-11-06 14:34:01.814869110 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
- namespace feature_engagement {
-diff -up chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h
---- chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
-+++ chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h 2023-11-06 14:34:01.814869110 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
- #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
-
-+#include <cstdint>
- #include <string>
-
- #include "components/feature_engagement/internal/event_storage_validator.h"
-diff -up chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h.missing-header-files chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h
---- chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
-+++ chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h 2023-11-06 14:34:01.815869132 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
- #include <utility>
- #include <vector>
-diff -up chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h.missing-header-files chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h
---- chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
-+++ chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h 2023-11-06 14:34:01.814869110 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
-
-diff -up chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h.missing-header-files chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h
---- chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
-+++ chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h 2023-11-06 14:34:01.815869132 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
- #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
-
-+#include <cstdint>
- #include <stddef.h>
- #include <stdint.h>
-
-diff -up chromium-119.0.6045.105/gin/time_clamper.h.missing-header-files chromium-119.0.6045.105/gin/time_clamper.h
---- chromium-119.0.6045.105/gin/time_clamper.h.missing-header-files 2023-11-01 19:10:28.000000000 +0100
-+++ chromium-119.0.6045.105/gin/time_clamper.h 2023-11-06 14:34:01.818869196 +0100
-@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
- const int64_t micros = now_micros % 1000;
- // abs() is necessary for devices with times before unix-epoch (most likely
- // configured incorrectly).
-- if (abs(micros) + kResolutionMicros < 1000) {
-+ if (std::abs(micros) + kResolutionMicros < 1000) {
- return now_micros / 1000;
- }
- return ClampTimeResolution(now_micros) / 1000;
-diff -up chromium-119.0.6045.105/gpu/config/gpu_feature_info.h.missing-header-files chromium-119.0.6045.105/gpu/config/gpu_feature_info.h
---- chromium-119.0.6045.105/gpu/config/gpu_feature_info.h.missing-header-files 2023-11-01 19:10:28.000000000 +0100
-+++ chromium-119.0.6045.105/gpu/config/gpu_feature_info.h 2023-11-06 14:34:01.809869004 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
- #include <vector>
-
-diff -up chromium-119.0.6045.105/net/base/net_export.h.missing-header-files chromium-119.0.6045.105/net/base/net_export.h
---- chromium-119.0.6045.105/net/base/net_export.h.missing-header-files 2023-11-01 19:10:32.000000000 +0100
-+++ chromium-119.0.6045.105/net/base/net_export.h 2023-11-06 14:34:01.809869004 +0100
-@@ -5,6 +5,8 @@
- #ifndef NET_BASE_NET_EXPORT_H_
- #define NET_BASE_NET_EXPORT_H_
-
-+#include <cstdint>
-+
- // Defines NET_EXPORT so that functionality implemented by the net module can
- // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
- // access features not intended to be used directly by real consumers.
-diff -up chromium-119.0.6045.105/pdf/document_attachment_info.h.missing-header-files chromium-119.0.6045.105/pdf/document_attachment_info.h
---- chromium-119.0.6045.105/pdf/document_attachment_info.h.missing-header-files 2023-11-01 19:10:34.000000000 +0100
-+++ chromium-119.0.6045.105/pdf/document_attachment_info.h 2023-11-06 14:34:01.815869132 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <string>
-
-
-diff -up chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h.missing-header-files chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h
---- chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h.missing-header-files 2023-11-01 19:10:34.000000000 +0100
-+++ chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h 2023-11-06 14:34:01.809869004 +0100
-@@ -5,6 +5,7 @@
- #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
- #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
-
-+#include <cstdint>
- #include <bitset>
- #include <cstdint>
- #include <string>
-diff -up chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h.missing-header-files chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h
---- chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h.missing-header-files 2023-11-01 19:10:35.000000000 +0100
-+++ chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h 2023-11-06 14:34:01.820869238 +0100
-@@ -8,6 +8,9 @@
- #include <stddef.h>
- #include <stdint.h>
-
-+#include <cstddef>
-+#include <cstdint>
-+
- #include <type_traits>
-
- namespace device {
-diff -up chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc.missing-header-files chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc
---- chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc.missing-header-files 2023-11-01 19:10:35.000000000 +0100
-+++ chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc 2023-11-06 14:34:01.818869196 +0100
-@@ -3,6 +3,7 @@
- // found in the LICENSE file.
-
- #include "skia/ext/skcolorspace_trfn.h"
-+#include <cmath>
-
- #include <cmath>
-
-diff -up chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h
---- chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2023-11-01 19:10:36.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h 2023-11-06 14:34:01.809869004 +0100
-@@ -27,6 +27,7 @@
- #ifndef ABSL_STRINGS_STRING_VIEW_H_
- #define ABSL_STRINGS_STRING_VIEW_H_
-
-+#include <cstdint>
- #include <algorithm>
- #include <cassert>
- #include <cstddef>
-diff -up chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h.missing-header-files chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h
---- chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h.missing-header-files 2023-11-01 19:11:59.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h 2023-11-06 14:34:01.810869025 +0100
-@@ -10,6 +10,7 @@
- #ifndef GLSLANG_SHADERVARS_H_
- #define GLSLANG_SHADERVARS_H_
-
-+#include <cstdint>
- #include <algorithm>
- #include <array>
- #include <cstdint>
-diff -up chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.missing-header-files chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
---- chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.missing-header-files 2023-11-01 19:10:37.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h 2023-11-06 14:34:01.810869025 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <array>
- #include <cstdint>
- #include <functional>
-diff -up chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
---- chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2023-11-01 19:13:50.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2023-11-06 14:34:01.810869025 +0100
-@@ -15,6 +15,7 @@
- #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
- #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
-
-+#include <cstdint>
- #include <string>
- #include <unordered_map>
- #include <vector>
-diff -up chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h.missing-header-files chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h
---- chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h.missing-header-files 2023-11-01 19:11:20.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h 2023-11-06 14:34:01.819869217 +0100
-@@ -5,6 +5,7 @@
- #ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
- #define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
-
-+#include <memory>
- #include <cstddef>
- #include <functional>
- #include <memory>
-diff -up chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc
---- chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files 2023-11-01 19:11:53.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2023-11-06 14:34:01.819869217 +0100
-@@ -14,6 +14,7 @@
- * limitations under the License.
- */
-
-+#include <cmath>
- #include "cpp/palettes/tones.h"
-
- #include "cpp/cam/cam.h"
-diff -up chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.missing-header-files chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
---- chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.missing-header-files 2023-11-01 19:11:59.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h 2023-11-06 14:34:01.810869025 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <functional>
- #include <map>
- #include <set>
-diff -up chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h.missing-header-files chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h
---- chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h.missing-header-files 2023-11-01 19:14:48.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h 2023-11-06 14:34:01.815869132 +0100
-@@ -7,6 +7,8 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
-+
- namespace pdfium {
- namespace annotation_flags {
-
-diff -up chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h
---- chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files 2023-11-01 19:12:02.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h 2023-11-06 14:34:01.813869089 +0100
-@@ -17,6 +17,7 @@ limitations under the License.
- #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
-
- #ifdef RUY_PROFILER
-+#include <string>
- #include <cstdio>
- #include <mutex>
- #include <vector>
-diff -up chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp.missing-header-files chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp
---- chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp.missing-header-files 2023-11-01 19:12:15.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp 2023-11-06 14:34:01.810869025 +0100
-@@ -17,6 +17,7 @@
-
- #include "System/Debug.hpp"
-
-+#include <cstdint>
- #include <cstddef>
- #include <cstdint>
- #include <functional>
-diff -up chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
---- chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2023-11-01 19:12:42.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2023-11-06 14:34:01.814869110 +0100
-@@ -45,6 +45,7 @@
- #include "llvm/Support/SaveAndRestore.h"
- #include "llvm/Support/raw_ostream.h"
- #include <algorithm>
-+#include <cstdint>
- #include <string>
- #include <sysexits.h>
- #ifdef HAVE_BACKTRACE
-diff -up chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
---- chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2023-11-01 19:13:20.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2023-11-06 14:34:01.813869089 +0100
-@@ -31,6 +31,7 @@ limitations under the License.
- #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
- #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
-
-+#include <cstdint>
- #include <complex>
- #include <deque>
- #include <vector>
-diff -up chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
---- chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2023-11-01 19:12:45.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-11-06 14:34:01.817869174 +0100
-@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
-
- // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
- #if VMA_STATS_STRING_ENABLED
-+#include <stdio.h>
- static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
- {
- snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
-diff -up chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc
---- chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2023-11-01 19:14:05.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc 2023-11-06 14:34:01.819869217 +0100
-@@ -8,6 +8,8 @@
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-+#include <cstring>
-+
- #include "audio/utility/channel_mixer.h"
-
- #include "audio/utility/channel_mixing_matrix.h"
-diff -up chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h.missing-header-files chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h
---- chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h.missing-header-files 2023-11-01 19:14:06.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h 2023-11-06 14:34:01.819869217 +0100
-@@ -11,6 +11,7 @@
- #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
- #define COMMON_VIDEO_H264_SPS_PARSER_H_
-
-+#include <cstdint>
- #include "absl/types/optional.h"
- #include "rtc_base/bitstream_reader.h"
-
-diff -up chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h
---- chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2023-11-01 19:14:11.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h 2023-11-06 14:34:01.819869217 +0100
-@@ -11,6 +11,7 @@
- #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
- #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
-
-+#include <cstdint>
- #include <limits>
-
- #include "absl/types/optional.h"
-diff -up chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-header-files chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
---- chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-header-files 2023-11-01 19:14:12.000000000 +0100
-+++ chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2023-11-06 14:34:01.819869217 +0100
-@@ -10,6 +10,7 @@
-
- #include "modules/video_coding/utility/ivf_file_reader.h"
-
-+#include <cstring>
- #include <string>
- #include <vector>
-
-diff -up chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h.missing-header-files chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h
---- chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
-+++ chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h 2023-11-06 14:34:01.814869110 +0100
-@@ -7,6 +7,8 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
-+
- #include "base/component_export.h"
- #include "ui/gfx/geometry/matrix3_f.h"
-
-diff -up chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h.missing-header-files chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h
---- chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
-+++ chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h 2023-11-06 14:34:01.812869068 +0100
-@@ -7,6 +7,7 @@
-
- #include <stdint.h>
-
-+#include <cstdint>
- #include <array>
- #include <cstddef>
- #include <cstdint>
-diff -up chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h
---- chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
-+++ chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h 2023-11-06 14:34:01.819869217 +0100
-@@ -9,6 +9,8 @@
-
- #include "ui/gfx/buffer_types.h"
-
-+#include <cstdint>
-+
- namespace ui {
-
- int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
-diff -up chromium-121.0.6167.139/crypto/hkdf.h.me chromium-121.0.6167.139/crypto/hkdf.h
---- chromium-121.0.6167.139/crypto/hkdf.h.me 2024-02-03 17:24:49.957949670 +0100
-+++ chromium-121.0.6167.139/crypto/hkdf.h 2024-02-03 17:26:05.753312178 +0100
-@@ -7,6 +7,7 @@
-
- #include <stddef.h>
-
-+#include <vector>
- #include <string>
- #include <string_view>
-
-diff -up chromium-121.0.6167.139/ui/display/types/display_color_management.h.me chromium-121.0.6167.139/ui/display/types/display_color_management.h
---- chromium-121.0.6167.139/ui/display/types/display_color_management.h.me 2024-02-03 18:55:34.889499101 +0100
-+++ chromium-121.0.6167.139/ui/display/types/display_color_management.h 2024-02-03 18:55:59.608945624 +0100
-@@ -6,6 +6,7 @@
- #define UI_DISPLAY_TYPES_DISPLAY_COLOR_MANAGEMENT_H_
-
- #include <vector>
-+#include <memory>
-
- #include "third_party/skia/modules/skcms/skcms.h"
- #include "ui/display/types/display_types_export.h"
-diff -up chromium-121.0.6167.139/ui/gfx/x/visual_manager.cc.me chromium-121.0.6167.139/ui/gfx/x/visual_manager.cc
---- chromium-121.0.6167.139/ui/gfx/x/visual_manager.cc.me 2024-02-03 21:20:32.126285578 +0100
-+++ chromium-121.0.6167.139/ui/gfx/x/visual_manager.cc 2024-02-03 21:20:50.272607248 +0100
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <bitset>
-+
- #include "ui/gfx/x/visual_manager.h"
-
- #include "base/strings/string_number_conversions.h"
-diff -up chromium-121.0.6167.139/third_party/blink/renderer/platform/fonts/simple_font_data.h.me chromium-121.0.6167.139/third_party/blink/renderer/platform/fonts/simple_font_data.h
---- chromium-121.0.6167.139/third_party/blink/renderer/platform/fonts/simple_font_data.h.me 2024-02-03 22:47:05.632713381 +0100
-+++ chromium-121.0.6167.139/third_party/blink/renderer/platform/fonts/simple_font_data.h 2024-02-03 22:47:30.788293027 +0100
-@@ -26,6 +26,7 @@
-
- #include <memory>
- #include <utility>
-+#include <mutex>
-
- #include "build/build_config.h"
- #include "third_party/blink/renderer/platform/fonts/canvas_rotation_in_vertical.h"
-diff -up chromium-121.0.6167.139/chrome/browser/performance_manager/policies/probability_distribution.h.me chromium-121.0.6167.139/chrome/browser/performance_manager/policies/probability_distribution.h
---- chromium-121.0.6167.139/chrome/browser/performance_manager/policies/probability_distribution.h.me 2024-02-04 09:26:02.239427860 +0100
-+++ chromium-121.0.6167.139/chrome/browser/performance_manager/policies/probability_distribution.h 2024-02-04 09:26:10.051565081 +0100
-@@ -5,6 +5,7 @@
- #ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILITY_DISTRIBUTION_H_
- #define CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILITY_DISTRIBUTION_H_
-
-+#include <cstdint>
- #include <utility>
- #include <vector>
-
diff --git a/chromium-121-python3-invalid-escape-sequence.patch b/chromium-121-python3-invalid-escape-sequence.patch
deleted file mode 100644
index c2bf5b4..0000000
--- a/chromium-121-python3-invalid-escape-sequence.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff -up chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
---- chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me 2024-01-15 20:48:28.177397102 +0100
-+++ chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py 2024-01-15 20:48:46.427768328 +0100
-@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
-
- def GetHTMLForInlineStylesheet(self, contents):
- if self.current_module is None:
-- if re.search('url\(.+\)', contents):
-+ if re.search(r'url\(.+\)', contents):
- raise Exception(
- 'Default HTMLGenerationController cannot handle inline style urls')
- return contents
-diff -up chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
---- chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me 2024-01-15 20:49:39.363845083 +0100
-+++ chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py 2024-01-15 20:49:57.407212098 +0100
-@@ -4,4 +4,4 @@
-
-
- def EscapeJSIfNeeded(js):
-- return js.replace('</script>', '<\/script>')
-+ return js.replace(r'</script>', r'<\/script>')
-diff -up chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
---- chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me 2024-01-15 20:50:11.819505254 +0100
-+++ chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py 2024-01-15 20:50:38.611050213 +0100
-@@ -293,6 +293,6 @@ class HTMLModuleParser():
- html = ''
- else:
- if html.find('< /script>') != -1:
-- raise Exception('Escape script tags with <\/script>')
-+ raise Exception(r'Escape script tags with <\/script>')
-
- return HTMLModuleParserResults(html)
-diff -up chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
---- chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me 2024-01-15 20:48:59.917042709 +0100
-+++ chromium-121.0.6167.57/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py 2024-01-15 20:49:24.402540761 +0100
-@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
- return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
-
- # I'm assuming we only have url()'s associated with images
-- return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
-+ return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
- InlineUrl, self.contents)
-
- def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
-@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
- raise Exception('@imports are not supported')
-
- matches = re.findall(
-- 'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
-+ r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
- self.contents)
-
- def resolve_url(url):
-diff -up chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-tools/src/scripts/gn/generate_vulkan_icd_json.py.me chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-tools/src/scripts/gn/generate_vulkan_icd_json.py
---- chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-tools/src/scripts/gn/generate_vulkan_icd_json.py.me 2024-01-15 20:50:56.810420400 +0100
-+++ chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-tools/src/scripts/gn/generate_vulkan_icd_json.py 2024-01-15 20:52:33.506387261 +0100
-@@ -28,7 +28,7 @@ import platform
- import sys
-
- def glob_slash(dirname):
-- """Like regular glob but replaces \ with / in returned paths."""
-+ """Like regular glob but replaces \\ with / in returned paths."""
- return [s.replace('\\', '/') for s in glob.glob(dirname)]
-
- def main():
-diff -up chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-validation-layers/src/scripts/gn/generate_vulkan_layers_json.py.me chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-validation-layers/src/scripts/gn/generate_vulkan_layers_json.py
---- chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-validation-layers/src/scripts/gn/generate_vulkan_layers_json.py.me 2024-01-15 20:52:38.016479000 +0100
-+++ chromium-121.0.6167.57/third_party/vulkan-deps/vulkan-validation-layers/src/scripts/gn/generate_vulkan_layers_json.py 2024-01-15 20:52:48.863699640 +0100
-@@ -28,7 +28,7 @@ import platform
- import sys
-
- def glob_slash(dirname):
-- """Like regular glob but replaces \ with / in returned paths."""
-+ """Like regular glob but replaces \\ with / in returned paths."""
- return [s.replace('\\', '/') for s in glob.glob(dirname)]
-
- def main():
diff --git a/chromium-121-revert-av1enc-el9.patch b/chromium-121-revert-av1enc-el9.patch
deleted file mode 100644
index 3debbe6..0000000
--- a/chromium-121-revert-av1enc-el9.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
---- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me 2023-05-21 10:05:00.357860329 +0200
-+++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2023-05-21 10:18:09.665432735 +0200
-@@ -41,7 +41,6 @@
- #include "media/gpu/gpu_video_encode_accelerator_helpers.h"
- #include "media/gpu/h264_dpb.h"
- #include "media/gpu/macros.h"
--#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
- #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_common.h"
-@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
-
- const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
- if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
-- codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
-+ codec != VideoCodec::kVP9) {
- MEDIA_LOG(ERROR, media_log.get())
- << "Unsupported profile: " << GetProfileName(config.output_profile);
- return false;
-@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
- break;
- case VideoCodec::kVP8:
- case VideoCodec::kVP9:
-- case VideoCodec::kAV1:
- mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
- break;
- default:
-@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
- vaapi_wrapper_, error_cb);
- }
- break;
-- case VideoCodec::kAV1:
-- if (!IsConfiguredForTesting()) {
-- encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
-- vaapi_wrapper_, error_cb);
-- }
-- break;
- default:
- NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
- return;
-@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
- case VideoCodec::kVP9:
- picture = new VaapiVP9Picture(std::move(reconstructed_surface));
- break;
-- case VideoCodec::kAV1:
-- picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
-- std::move(reconstructed_surface));
-- break;
- default:
- return nullptr;
- }
-diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
---- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
-+++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn 2023-05-20 13:14:10.756183626 +0200
-@@ -38,8 +38,6 @@ source_set("vaapi") {
- sources = [
- "av1_vaapi_video_decoder_delegate.cc",
- "av1_vaapi_video_decoder_delegate.h",
-- "av1_vaapi_video_encoder_delegate.cc",
-- "av1_vaapi_video_encoder_delegate.h",
- "h264_vaapi_video_decoder_delegate.cc",
- "h264_vaapi_video_decoder_delegate.h",
- "h264_vaapi_video_encoder_delegate.cc",
-@@ -107,7 +105,6 @@ source_set("vaapi") {
- "//media/gpu/chromeos:common",
- "//media/parsers",
- "//mojo/public/cpp/bindings",
-- "//third_party/libaom:libaomrc",
- "//third_party/libvpx:libvpxrc",
- "//third_party/libyuv",
- "//ui/gfx",
-diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc
---- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me 2023-11-02 15:08:30.921325747 +0100
-+++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc 2023-11-02 15:09:46.123692602 +0100
-@@ -3124,6 +3124,7 @@ bool VaapiWrapper::GetSupportedPackedHea
- return true;
- }
-
-+#if 0 //disable AV1 due to old libva on epel9
- bool VaapiWrapper::GetMinAV1SegmentSize(VideoCodecProfile profile,
- uint32_t& min_seg_size) {
- CHECK(!enforce_sequence_affinity_ ||
-@@ -3141,6 +3142,7 @@ bool VaapiWrapper::GetMinAV1SegmentSize(
-
- return true;
- }
-+#endif
-
- bool VaapiWrapper::BlitSurface(const VASurface& va_surface_src,
- const VASurface& va_surface_dest,
-diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h
---- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me 2023-11-02 15:09:58.973928395 +0100
-+++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h 2023-11-02 15:10:45.990791114 +0100
-@@ -553,9 +553,11 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- bool& packed_pps,
- bool& packed_slice);
-
-+#if 0 //disable AV1 due to old libva on epel9
- // Gets the minimum segment block size supported for AV1 encoding.
- [[nodiscard]] bool GetMinAV1SegmentSize(VideoCodecProfile profile,
- uint32_t& min_seg_size);
-+#endif
-
- // Blits a VASurface |va_surface_src| into another VASurface
- // |va_surface_dest| applying pixel format conversion, cropping
-diff -up chromium-121.0.6167.57/media/gpu/BUILD.gn.than chromium-121.0.6167.57/media/gpu/BUILD.gn
---- chromium-121.0.6167.57/media/gpu/BUILD.gn.than 2024-01-15 22:09:21.010029147 +0100
-+++ chromium-121.0.6167.57/media/gpu/BUILD.gn 2024-01-15 22:10:05.192259340 +0100
-@@ -391,10 +391,7 @@ source_set("common") {
- "vp9_svc_layers_stateful.h",
- ]
- configs += [ "//third_party/libvpx:libvpx_config" ]
-- deps += [
-- "//third_party/libaom:libaomrc",
-- "//third_party/libvpx:libvpxrc",
-- ]
-+ deps += [ "//third_party/libvpx:libvpxrc" ]
- }
- if (use_libgav1_parser) {
- sources += [
diff --git a/chromium-121-v8-c++20.patch b/chromium-121-v8-c++20.patch
deleted file mode 100644
index 3b3bb50..0000000
--- a/chromium-121-v8-c++20.patch
+++ /dev/null
@@ -1,743 +0,0 @@
-commit 940af9f2c87b436559b97c53763aa9eaaf1254eb
-Author: Jeremy Roman <jbroman@chromium.org>
-Date: Wed Nov 15 16:24:54 2023 +0000
-
- Use C++20 features to simplify blink::NativeValueTraitsBase.
-
- These allow some of the metaprogramming bits to be simplified a little.
-
- Change-Id: I052b4397586d21348401616e1792afdb9662f975
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5030335
- Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
- Commit-Queue: Jeremy Roman <jbroman@chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1224978}
-
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-index 7fc91d14acc71..1e5a0790df6da 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-@@ -5,6 +5,7 @@
- #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
- #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
-
-+#include <concepts>
- #include <type_traits>
-
- #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h"
-@@ -30,7 +31,7 @@ class ExceptionState;
- // return toInt32(isolate, value, exceptionState, NormalConversion);
- // }
- // }
--template <typename T, typename SFINAEHelper = void>
-+template <typename T>
- struct NativeValueTraits;
-
- // This declaration serves only as a blueprint for specializations: the
-@@ -45,22 +46,15 @@ struct NativeValueTraits;
-
- namespace bindings {
-
--template <typename T, typename = void>
--struct NativeValueTraitsHasIsNull : std::false_type {};
--
- template <typename T>
--struct NativeValueTraitsHasIsNull<
-- T,
-- std::void_t<decltype(std::declval<T>().IsNull())>> : std::true_type {};
-+struct ImplTypeFor {
-+ using type = T;
-+};
-
- template <typename T>
--struct NativeValueTraitsHasNullValue {
-- // true if |T| supports IDL null value.
-- static constexpr bool value =
-- // ScriptValue, String, and union types have IsNull member function.
-- bindings::NativeValueTraitsHasIsNull<T>::value ||
-- // Pointer types have nullptr as IDL null value.
-- std::is_pointer<T>::value;
-+ requires std::derived_from<T, IDLBase>
-+struct ImplTypeFor<T> {
-+ using type = typename T::ImplType;
- };
-
- } // namespace bindings
-@@ -78,37 +72,17 @@ struct NativeValueTraitsHasNullValue {
- // If present, |NullValue()| will be used when converting from the nullable type
- // T?, and should be used if the impl type has an existing "null" state. If not
- // present, WTF::Optional will be used to wrap the type.
--template <typename T, typename SFINAEHelper = void>
--struct NativeValueTraitsBase {
-- STATIC_ONLY(NativeValueTraitsBase);
--
-- using ImplType = T;
--
-- static constexpr bool has_null_value =
-- bindings::NativeValueTraitsHasNullValue<ImplType>::value;
--
-- template <typename... ExtraArgs>
-- static decltype(auto) ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state,
-- ExtraArgs... extra_args) {
-- return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue(
-- isolate, value, exception_state,
-- std::forward<ExtraArgs>(extra_args)...);
-- }
--};
--
- template <typename T>
--struct NativeValueTraitsBase<
-- T,
-- std::enable_if_t<std::is_base_of<IDLBase, T>::value>> {
-+struct NativeValueTraitsBase {
- STATIC_ONLY(NativeValueTraitsBase);
-
-- using ImplType = typename T::ImplType;
-+ using ImplType = bindings::ImplTypeFor<T>::type;
-
-+ // Pointer types have nullptr as IDL null value.
-+ // ScriptValue, String, and union types have IsNull member function.
- static constexpr bool has_null_value =
-- bindings::NativeValueTraitsHasNullValue<ImplType>::value;
-+ std::is_pointer_v<ImplType> ||
-+ requires(ImplType value) { value.IsNull(); };
-
- template <typename... ExtraArgs>
- static decltype(auto) ArgumentValue(v8::Isolate* isolate,
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-index 508ea6d8eea48..18de71d84023f 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-@@ -7,6 +7,7 @@
- #include "third_party/blink/renderer/core/core_export.h"
- #include "third_party/blink/renderer/core/execution_context/execution_context.h"
- #include "third_party/blink/renderer/core/frame/web_feature.h"
-+#include "third_party/blink/renderer/core/typed_arrays/flexible_array_buffer_view.h"
- #include "third_party/blink/renderer/core/typed_arrays/typed_flexible_array_buffer_view.h"
-
- namespace blink {
-@@ -698,12 +699,11 @@ DOMArrayBufferBase* NativeValueTraits<
- // ArrayBufferView
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<NotShared<T>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -712,13 +712,12 @@ NotShared<T> NativeValueTraits<
- }
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<NotShared<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -729,12 +728,11 @@ NotShared<T> NativeValueTraits<
- // [AllowShared] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<MaybeShared<T>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -743,13 +741,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<MaybeShared<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -760,12 +757,12 @@ MaybeShared<T> NativeValueTraits<
- // [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T>
-+NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
-@@ -774,13 +771,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<
-+ MaybeShared<T>>>::ArgumentValue(v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
-@@ -791,12 +787,11 @@ MaybeShared<T> NativeValueTraits<
- // Nullable ArrayBufferView
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -805,13 +800,12 @@ NotShared<T> NativeValueTraits<
- }
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -822,12 +816,11 @@ NotShared<T> NativeValueTraits<
- // Nullable [AllowShared] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -836,13 +829,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -853,9 +845,9 @@ MaybeShared<T> NativeValueTraits<
- // Nullable [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T>
-+NativeValueTraits<IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>::
- ArgumentValue(v8::Isolate* isolate,
- int argument_index,
- v8::Local<v8::Value> value,
-@@ -870,13 +862,11 @@ MaybeShared<T> NativeValueTraits<
- // [AllowShared, FlexibleArrayBufferView] ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<T,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<T>::ArgumentValue(v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
- ResizableAllowance::kDisallowResizable,
-@@ -888,13 +878,12 @@ T NativeValueTraits<T,
- // ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<T>, ToFlexibleArrayBufferView, Nullablity::kIsNotNullable,
- BufferSizeCheck::kDoNotCheck, ResizableAllowance::kDisallowResizable,
-@@ -905,13 +894,12 @@ T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>,
- // Nullable [AllowShared, FlexibleArrayBufferView] ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<IDLNullable<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
- ResizableAllowance::kDisallowResizable,
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-index 899929dcf49f9..5011503dcf1c0 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-@@ -5,6 +5,9 @@
- #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
- #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
-
-+#include <concepts>
-+#include <type_traits>
-+
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
- #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h"
-@@ -715,9 +718,8 @@ struct CORE_EXPORT NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<T> {
- // NotShared<T> or MaybeShared<T> should be used instead.
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -729,9 +731,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<T>> {
- // NotShared<T> or MaybeShared<T> should be used instead.
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -743,9 +744,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<NotShared<T>>
- : public NativeValueTraitsBase<NotShared<T>> {
- static NotShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -758,9 +758,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<NotShared<T>>>
- : public NativeValueTraitsBase<NotShared<T>> {
- static NotShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -773,9 +772,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<MaybeShared<T>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -788,9 +786,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- // FlexibleArrayBufferView uses this in its implementation, so we cannot
- // delete it.
-@@ -805,9 +802,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<MaybeShared<T>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -820,9 +816,9 @@ struct NativeValueTraits<
- };
-
- template <typename T>
-+ requires std::derived_from<T, DOMArrayBufferView>
- struct NativeValueTraits<
-- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- // BufferSourceTypeNoSizeLimit must be used only as arguments.
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
-@@ -836,11 +832,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
- // FlexibleArrayBufferView must be used only as arguments.
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -853,10 +846,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>
- : public NativeValueTraitsBase<T> {
- // BufferSourceTypeNoSizeLimit and FlexibleArrayBufferView must be used only
- // as arguments.
-@@ -871,11 +862,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T> {
- // FlexibleArrayBufferView must be used only as arguments.
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1134,9 +1122,8 @@ NativeValueTraits<IDLSequence<T>>::NativeValue(
- }
-
- template <typename T>
--struct NativeValueTraits<IDLNullable<IDLSequence<T>>,
-- typename std::enable_if_t<
-- NativeValueTraits<IDLSequence<T>>::has_null_value>>
-+ requires NativeValueTraits<IDLSequence<T>>::has_null_value
-+struct NativeValueTraits<IDLNullable<IDLSequence<T>>>
- : public NativeValueTraitsBase<HeapVector<AddMemberIfNeeded<T>>*> {
- using ImplType = typename NativeValueTraits<IDLSequence<T>>::ImplType*;
-
-@@ -1203,9 +1190,8 @@ struct NativeValueTraits<IDLArray<T>>
- : public NativeValueTraits<IDLSequence<T>> {};
-
- template <typename T>
--struct NativeValueTraits<IDLNullable<IDLArray<T>>,
-- typename std::enable_if_t<
-- NativeValueTraits<IDLSequence<T>>::has_null_value>>
-+ requires NativeValueTraits<IDLSequence<T>>::has_null_value
-+struct NativeValueTraits<IDLNullable<IDLArray<T>>>
- : public NativeValueTraits<IDLNullable<IDLSequence<T>>> {};
-
- // Record types
-@@ -1335,10 +1321,8 @@ struct NativeValueTraits<IDLRecord<K, V>>
-
- // Callback function types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, CallbackFunctionBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1361,9 +1345,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
-+ requires std::derived_from<T, CallbackFunctionBase>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1392,10 +1375,8 @@ struct NativeValueTraits<
-
- // Callback interface types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, CallbackInterfaceBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1418,9 +1399,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
-+ requires std::derived_from<T, CallbackInterfaceBase>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1449,11 +1429,8 @@ struct NativeValueTraits<
-
- // Dictionary types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::DictionaryBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::DictionaryBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1464,14 +1441,11 @@ struct NativeValueTraits<
- // We don't support nullable dictionary types in general since it's quite
- // confusing and often misused.
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::DictionaryBase, T>::value &&
-- (std::is_same<T, GPUColorTargetState>::value ||
-- std::is_same<T, GPURenderPassColorAttachment>::value ||
-- std::is_same<T, GPUVertexBufferLayout>::value)>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::DictionaryBase> &&
-+ (std::same_as<T, GPUColorTargetState> ||
-+ std::same_as<T, GPURenderPassColorAttachment> ||
-+ std::same_as<T, GPUVertexBufferLayout>)
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1483,11 +1457,8 @@ struct NativeValueTraits<
-
- // Enumeration types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::EnumerationBase, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, bindings::EnumerationBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1497,10 +1468,8 @@ struct NativeValueTraits<
-
- // Interface types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, ScriptWrappable>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static inline T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1528,9 +1497,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
-+ requires std::derived_from<T, ScriptWrappable>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static inline T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1565,10 +1533,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::UnionBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1584,10 +1550,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::UnionBase>
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1608,9 +1572,8 @@ struct NativeValueTraits<
-
- // Nullable types
- template <typename InnerType>
--struct NativeValueTraits<
-- IDLNullable<InnerType>,
-- typename std::enable_if_t<!NativeValueTraits<InnerType>::has_null_value>>
-+ requires(!NativeValueTraits<InnerType>::has_null_value)
-+struct NativeValueTraits<IDLNullable<InnerType>>
- : public NativeValueTraitsBase<IDLNullable<InnerType>> {
- // https://webidl.spec.whatwg.org/#es-nullable-type
- using ImplType =
-@@ -1642,9 +1605,8 @@ struct NativeValueTraits<IDLNullable<IDLNullable<T>>>;
-
- // Optional types
- template <typename T>
--struct NativeValueTraits<IDLOptional<T>,
-- typename std::enable_if_t<std::is_arithmetic<
-- typename NativeValueTraits<T>::ImplType>::value>>
-+ requires std::is_arithmetic_v<typename NativeValueTraits<T>::ImplType>
-+struct NativeValueTraits<IDLOptional<T>>
- : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
- using ImplType = typename NativeValueTraits<T>::ImplType;
-
-@@ -1666,9 +1628,8 @@ struct NativeValueTraits<IDLOptional<T>,
- };
-
- template <typename T>
--struct NativeValueTraits<IDLOptional<T>,
-- typename std::enable_if_t<std::is_pointer<
-- typename NativeValueTraits<T>::ImplType>::value>>
-+ requires std::is_pointer_v<typename NativeValueTraits<T>::ImplType>
-+struct NativeValueTraits<IDLOptional<T>>
- : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
- using ImplType = typename NativeValueTraits<T>::ImplType;
-
diff --git a/chromium-122-clang16-buildflags.patch b/chromium-122-clang16-buildflags.patch
new file mode 100644
index 0000000..6725f3b
--- /dev/null
+++ b/chromium-122-clang16-buildflags.patch
@@ -0,0 +1,20 @@
+diff -up chromium-122.0.6261.39/build/config/compiler/BUILD.gn.me chromium-122.0.6261.39/build/config/compiler/BUILD.gn
+--- chromium-122.0.6261.39/build/config/compiler/BUILD.gn.me 2024-02-19 21:58:15.835818177 +0100
++++ chromium-122.0.6261.39/build/config/compiler/BUILD.gn 2024-02-19 21:59:11.661880633 +0100
+@@ -1856,15 +1856,12 @@ config("default_warnings") {
+
+ # TODO(crbug.com/1494809): Evaluate and possibly enable.
+ "-Wno-vla-extension",
+-
+- # TODO(https://crbug.com/1490607): Fix and re-enable.
+- "-Wno-thread-safety-reference-return",
+ ]
+
+ if (!is_nacl) {
+ cflags_cc += [
+ # TODO(https://crbug.com/1513724): Fix and re-enable.
+- "-Wno-c++11-narrowing-const-reference",
++ "-Wno-c++11-narrowing",
+ ]
+ }
+ }
diff --git a/chromium-122-clang16-disable-auto-upgrade-debug-info.patch b/chromium-122-clang16-disable-auto-upgrade-debug-info.patch
new file mode 100644
index 0000000..c830caa
--- /dev/null
+++ b/chromium-122-clang16-disable-auto-upgrade-debug-info.patch
@@ -0,0 +1,12 @@
+diff -up chromium-122.0.6261.29/build/config/compiler/BUILD.gn.me chromium-122.0.6261.29/build/config/compiler/BUILD.gn
+--- chromium-122.0.6261.29/build/config/compiler/BUILD.gn.me 2024-02-12 14:46:52.691992282 +0100
++++ chromium-122.0.6261.29/build/config/compiler/BUILD.gn 2024-02-12 14:48:54.256274068 +0100
+@@ -787,7 +787,7 @@ config("compiler") {
+
+ # We only use one version of LLVM within a build so there's no need to
+ # upgrade debug info, which can be expensive since it runs the verifier.
+- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
++ ldflags += [ "" ]
+ }
+
+ # TODO(https://crbug.com/1211155): investigate why this isn't effective on
diff --git a/chromium-122-constexpr.patch b/chromium-122-constexpr.patch
new file mode 100644
index 0000000..282066c
--- /dev/null
+++ b/chromium-122-constexpr.patch
@@ -0,0 +1,45 @@
+diff -up chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h
+--- chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me 2024-02-13 13:07:24.982184485 +0100
++++ chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h 2024-02-13 13:07:45.510551589 +0100
+@@ -137,7 +137,7 @@ struct GlobalId {
+
+ friend constexpr auto operator<=>(const GlobalId<RendererId>& lhs,
+ const GlobalId<RendererId>& rhs) = default;
+- friend constexpr bool operator==(const GlobalId<RendererId>& lhs,
++ friend bool operator==(const GlobalId<RendererId>& lhs,
+ const GlobalId<RendererId>& rhs) = default;
+ };
+
+diff -up chromium-122.0.6261.29/base/types/strong_alias.h.me chromium-122.0.6261.29/base/types/strong_alias.h
+--- chromium-122.0.6261.29/base/types/strong_alias.h.me 2024-02-13 14:13:20.311374288 +0100
++++ chromium-122.0.6261.29/base/types/strong_alias.h 2024-02-13 12:30:38.596913951 +0100
+@@ -110,7 +110,7 @@ class StrongAlias {
+ // a `StrongAlias<W>`.
+ friend constexpr auto operator<=>(const StrongAlias& lhs,
+ const StrongAlias& rhs) = default;
+- friend constexpr bool operator==(const StrongAlias& lhs,
++ friend bool operator==(const StrongAlias& lhs,
+ const StrongAlias& rhs) = default;
+
+ // Hasher to use in std::unordered_map, std::unordered_set, etc.
+diff -up chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h
+--- chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr 2024-02-07 19:49:31.000000000 +0100
++++ chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h 2024-02-13 11:12:52.913338699 +0100
+@@ -29,7 +29,7 @@ class ContextCollection {
+ ContextCollection(const ContextCollection& other);
+ ContextCollection& operator=(const ContextCollection& other);
+
+- friend constexpr bool operator==(const ContextCollection&,
++ friend bool operator==(const ContextCollection&,
+ const ContextCollection&) = default;
+
+ // Adds `context` to the collection.
+@@ -67,7 +67,7 @@ struct QueryParams {
+ QueryParams(const QueryParams& other);
+ QueryParams& operator=(const QueryParams& other);
+
+- friend constexpr bool operator==(const QueryParams&,
++ friend bool operator==(const QueryParams&,
+ const QueryParams&) = default;
+
+ // Resource types to measure.
diff --git a/chromium-122-disable-FFmpegAllowLists.patch b/chromium-122-disable-FFmpegAllowLists.patch
new file mode 100644
index 0000000..c3fb606
--- /dev/null
+++ b/chromium-122-disable-FFmpegAllowLists.patch
@@ -0,0 +1,12 @@
+diff -up chromium-122.0.6261.29/media/base/media_switches.cc.disable-FFmpegAllowLists chromium-122.0.6261.29/media/base/media_switches.cc
+--- chromium-122.0.6261.29/media/base/media_switches.cc.disable-FFmpegAllowLists 2024-02-12 15:56:50.703196471 +0100
++++ chromium-122.0.6261.29/media/base/media_switches.cc 2024-02-12 17:08:42.266076401 +0100
+@@ -1687,7 +1687,7 @@ BASE_FEATURE(kUseWindowBoundsForPip,
+ // Enables FFmpeg allow lists for supported codecs / containers.
+ BASE_FEATURE(kFFmpegAllowLists,
+ "FFmpegAllowLists",
+- base::FEATURE_ENABLED_BY_DEFAULT);
++ base::FEATURE_DISABLED_BY_DEFAULT);
+
+ // Enables sending MediaLog to the log stream, which is useful for easier
+ // development by ensuring logs can be seen without a remote desktop session.
diff --git a/chromium-122-el8-support-64kpage.patch b/chromium-122-el8-support-64kpage.patch
new file mode 100644
index 0000000..0c8a8ac
--- /dev/null
+++ b/chromium-122-el8-support-64kpage.patch
@@ -0,0 +1,126 @@
+diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h
+--- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
++++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h 2024-02-01 17:20:37.178877448 +0100
+@@ -146,7 +146,13 @@ struct PartitionBucket {
+ // Returns a slot number starting from the beginning of the slot span.
+ PA_ALWAYS_INLINE size_t GetSlotNumber(size_t offset_in_slot_span) const {
+ // See the static assertion for `kReciprocalShift` above.
+- PA_DCHECK(offset_in_slot_span <= kMaxBucketed);
++ // TODO(casey.smalley@arm.com): triggers on Aarch64/Linux
++ // systems with 64k system pages. Constants need to be
++ // adjusted to prevent different parts of the allocator
++ // from overlapping. For now this will allow 64k pages
++ // to function on Aarch64/Linux systems, albeit not
++ // very efficiently.
++ // PA_DCHECK(offset_in_slot_span <= kMaxBucketed);
+ PA_DCHECK(slot_size <= kMaxBucketed);
+
+ const size_t offset_in_slot =
+diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+--- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h.el8-support-64kpage.patch 2024-02-01 17:20:37.178877448 +0100
++++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h 2024-02-01 17:31:08.500268457 +0100
+@@ -17,10 +17,8 @@ namespace partition_alloc::internal {
+ // PartitionPageSize() is 4 times the OS page size.
+ static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
+ #elif (BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)) && defined(ARCH_CPU_ARM64)
+-// System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
+-// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
+-// so we use the 16 kiB maximum (64 kiB will crash).
+-static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
++// System page size can be 4, 16, or 64 kiB on Linux on AArch64.
++static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 16) / kSmallestBucket;
+ #else
+ // A slot span can "span" multiple PartitionPages, but then its slot size is
+ // larger, so it doesn't have as many slots.
+diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+--- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
++++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_page.h 2024-02-01 17:20:37.178877448 +0100
+@@ -95,26 +95,25 @@ struct SlotSpanMetadata {
+
+ // CHECK()ed in AllocNewSlotSpan().
+ // The maximum number of bits needed to cover all currently supported OSes.
+- static constexpr size_t kMaxSlotsPerSlotSpanBits = 13;
++ static constexpr size_t kMaxSlotsPerSlotSpanBits = 15;
+ static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), "");
+
+- // |marked_full| isn't equivalent to being full. Slot span is marked as full
+- // iff it isn't on the active slot span list (or any other list).
+- uint32_t marked_full : 1;
+ // |num_allocated_slots| is 0 for empty or decommitted slot spans, which can
+ // be further differentiated by checking existence of the freelist.
+- uint32_t num_allocated_slots : kMaxSlotsPerSlotSpanBits;
+- uint32_t num_unprovisioned_slots : kMaxSlotsPerSlotSpanBits;
++ uint16_t num_allocated_slots : kMaxSlotsPerSlotSpanBits;
++ uint16_t num_unprovisioned_slots : kMaxSlotsPerSlotSpanBits;
++
++ // |marked_full| isn't equivalent to being full. Slot span is marked as full
++ // iff it isn't on the active slot span list (or any other list).
++ bool marked_full : 1;
+
+ private:
+- const uint32_t can_store_raw_size_ : 1;
+- uint32_t freelist_is_sorted_ : 1;
+- uint32_t unused1_ : (32 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1);
++ const uint8_t can_store_raw_size_ : 1;
++ uint8_t freelist_is_sorted_ : 1;
+ // If |in_empty_cache_|==1, |empty_cache_index| is undefined and mustn't be
+ // used.
+- uint16_t in_empty_cache_ : 1;
+- uint16_t empty_cache_index_ : kEmptyCacheIndexBits; // < kMaxFreeableSpans.
+- uint16_t unused2_ : (16 - 1 - kEmptyCacheIndexBits);
++ bool in_empty_cache_ : 1;
++ uint8_t empty_cache_index_ : kEmptyCacheIndexBits; // < kMaxFreeableSpans.
+ // Can use only 48 bits (6B) in this bitfield, as this structure is embedded
+ // in PartitionPage which has 2B worth of fields and must fit in 32B.
+
+@@ -279,18 +278,13 @@ static_assert(sizeof(SlotSpanMetadata) <
+ "SlotSpanMetadata must fit into a Page Metadata slot.");
+
+ inline constexpr SlotSpanMetadata::SlotSpanMetadata() noexcept
+- : marked_full(0),
+- num_allocated_slots(0),
++ : num_allocated_slots(0),
+ num_unprovisioned_slots(0),
++ marked_full(0),
+ can_store_raw_size_(false),
+ freelist_is_sorted_(true),
+- unused1_(0),
+ in_empty_cache_(0),
+- empty_cache_index_(0),
+- unused2_(0) {
+- (void)unused1_;
+- (void)unused2_;
+-}
++ empty_cache_index_(0) {}
+
+ inline SlotSpanMetadata::SlotSpanMetadata(const SlotSpanMetadata&) = default;
+
+@@ -883,7 +877,7 @@ PA_ALWAYS_INLINE void SlotSpanMetadata::
+
+ size_t num_slots_per_span = bucket->get_slots_per_span();
+ PA_DCHECK(num_slots_per_span <= kMaxSlotsPerSlotSpan);
+- num_unprovisioned_slots = static_cast<uint32_t>(num_slots_per_span);
++ num_unprovisioned_slots = static_cast<uint16_t>(num_slots_per_span);
+ PA_DCHECK(num_unprovisioned_slots);
+
+ ToSuperPageExtent()->IncrementNumberOfNonemptySlotSpans();
+diff -up chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.el8-support-64kpage.patch chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
+--- chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc.el8-support-64kpage.patch 2024-01-30 21:24:10.000000000 +0100
++++ chromium-121.0.6167.139/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc 2024-02-01 17:20:37.178877448 +0100
+@@ -950,12 +950,11 @@ void PartitionRoot::Init(PartitionOption
+ (internal::SystemPageSize() == (size_t{1} << 14)));
+ #elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)
+ // Check runtime pagesize. Though the code is currently the same, it is
+- // not merged with the IS_APPLE case above as a 1 << 16 case needs to be
+- // added here in the future, to allow 64 kiB pagesize. That is only
+- // supported on Linux on arm64, not on IS_APPLE, but not yet present here
+- // as the rest of the partition allocator does not currently support it.
++ // not merged with the IS_APPLE case above as a 1 << 16 case is only
++ // supported on Linux on AArch64.
+ PA_CHECK((internal::SystemPageSize() == (size_t{1} << 12)) ||
+- (internal::SystemPageSize() == (size_t{1} << 14)));
++ (internal::SystemPageSize() == (size_t{1} << 14)) ||
++ (internal::SystemPageSize() == (size_t{1} << 16)));
+ #endif
+
+ ::partition_alloc::internal::ScopedGuard guard{lock_};
diff --git a/chromium-122-missing-header-files.patch b/chromium-122-missing-header-files.patch
new file mode 100644
index 0000000..aa6bd70
--- /dev/null
+++ b/chromium-122-missing-header-files.patch
@@ -0,0 +1,191 @@
+diff -up chromium-122.0.6261.29/base/check_op.h.missing-header-files chromium-122.0.6261.29/base/check_op.h
+--- chromium-122.0.6261.29/base/check_op.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
++++ chromium-122.0.6261.29/base/check_op.h 2024-02-12 14:59:48.136415060 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <string_view>
+diff -up chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files chromium-122.0.6261.29/base/containers/flat_map.h
+--- chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
++++ chromium-122.0.6261.29/base/containers/flat_map.h 2024-02-12 14:59:48.136415060 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <type_traits>
+diff -up chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h
+--- chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2024-02-12 14:59:48.137415079 +0100
++++ chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h 2024-02-12 15:28:17.168395787 +0100
+@@ -9,6 +9,7 @@
+ #include <optional>
+ #include <string>
+ #include <vector>
++#include <variant>
+
+ #include "base/containers/span.h"
+ #include "base/functional/callback_forward.h"
+diff -up chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc
+--- chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2024-02-07 19:49:27.000000000 +0100
++++ chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc 2024-02-12 14:59:48.137415079 +0100
+@@ -11,6 +11,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+diff -up chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h
+--- chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2024-02-07 19:49:30.000000000 +0100
++++ chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h 2024-02-12 14:59:48.138415097 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+
++#include <cstdint>
+ #include <string>
+
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+diff -up chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files chromium-122.0.6261.29/gin/time_clamper.h
+--- chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files 2024-02-07 19:49:35.000000000 +0100
++++ chromium-122.0.6261.29/gin/time_clamper.h 2024-02-12 14:59:48.138415097 +0100
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+ const int64_t micros = now_micros % 1000;
+ // abs() is necessary for devices with times before unix-epoch (most likely
+ // configured incorrectly).
+- if (abs(micros) + kResolutionMicros < 1000) {
++ if (std::abs(micros) + kResolutionMicros < 1000) {
+ return now_micros / 1000;
+ }
+ return ClampTimeResolution(now_micros) / 1000;
+diff -up chromium-122.0.6261.29/net/base/net_export.h.missing-header-files chromium-122.0.6261.29/net/base/net_export.h
+--- chromium-122.0.6261.29/net/base/net_export.h.missing-header-files 2024-02-07 19:49:38.000000000 +0100
++++ chromium-122.0.6261.29/net/base/net_export.h 2024-02-12 14:59:48.139415116 +0100
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+diff -up chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h
+--- chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2024-02-07 19:49:40.000000000 +0100
++++ chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h 2024-02-12 14:59:48.142415172 +0100
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+diff -up chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+--- chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2024-02-07 19:50:44.000000000 +0100
++++ chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2024-02-12 14:59:48.142415172 +0100
+@@ -28,6 +28,7 @@
+ #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+diff -up chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+--- chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files 2024-02-07 19:52:34.000000000 +0100
++++ chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2024-02-12 14:59:48.143415190 +0100
+@@ -14,6 +14,7 @@
+ * limitations under the License.
+ */
+
++#include <cmath>
+ #include "cpp/palettes/tones.h"
+
+ #include "cpp/cam/cam.h"
+diff -up chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h
+--- chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files 2024-02-07 19:52:59.000000000 +0100
++++ chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h 2024-02-12 14:59:48.143415190 +0100
+@@ -17,6 +17,7 @@ limitations under the License.
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
+
+ #ifdef RUY_PROFILER
++#include <string>
+ #include <cstdio>
+ #include <mutex>
+ #include <vector>
+diff -up chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
+--- chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2024-02-07 19:54:45.000000000 +0100
++++ chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2024-02-12 14:59:48.143415190 +0100
+@@ -45,6 +45,7 @@
+ #include "llvm/Support/SaveAndRestore.h"
+ #include "llvm/Support/raw_ostream.h"
+ #include <algorithm>
++#include <cstdint>
+ #include <string>
+ #include <sysexits.h>
+ #ifdef HAVE_BACKTRACE
+diff -up chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
+--- chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2024-02-12 14:59:48.143415190 +0100
+@@ -31,6 +31,7 @@ limitations under the License.
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+
++#include <cstdint>
+ #include <complex>
+ #include <deque>
+ #include <vector>
+diff -up chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+--- chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2024-02-07 19:54:20.000000000 +0100
++++ chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2024-02-12 14:59:48.145415228 +0100
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
+
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+ static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+ {
+ snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+diff -up chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc
+--- chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc 2024-02-12 14:59:48.145415228 +0100
+@@ -8,6 +8,8 @@
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+
+ #include "audio/utility/channel_mixing_matrix.h"
+diff -up chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h
+--- chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h 2024-02-12 14:59:48.145415228 +0100
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+
++#include <cstdint>
+ #include <limits>
+
+ #include "absl/types/optional.h"
+diff -up chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h
+--- chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files 2024-02-07 19:50:05.000000000 +0100
++++ chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h 2024-02-12 14:59:48.147415265 +0100
+@@ -9,6 +9,8 @@
+
+ #include "ui/gfx/buffer_types.h"
+
++#include <cstdint>
++
+ namespace ui {
+
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
diff --git a/chromium-122-norar.patch b/chromium-122-norar.patch
new file mode 100644
index 0000000..2d7836d
--- /dev/null
+++ b/chromium-122-norar.patch
@@ -0,0 +1,63 @@
+diff -up chromium-122.0.6261.29/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-122.0.6261.29/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+--- chromium-122.0.6261.29/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar 2024-02-07 19:49:25.000000000 +0100
++++ chromium-122.0.6261.29/chrome/browser/safe_browsing/download_protection/file_analyzer.cc 2024-02-11 18:55:29.964450604 +0100
+@@ -79,8 +79,6 @@ void FileAnalyzer::Start(const base::Fil
+
+ if (inspection_type == DownloadFileType::ZIP) {
+ StartExtractZipFeatures();
+- } else if (inspection_type == DownloadFileType::RAR) {
+- StartExtractRarFeatures();
+ #if BUILDFLAG(IS_MAC)
+ } else if (inspection_type == DownloadFileType::DMG) {
+ StartExtractDmgFeatures();
+diff -up chromium-122.0.6261.29/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-122.0.6261.29/chrome/common/safe_browsing/BUILD.gn
+--- chromium-122.0.6261.29/chrome/common/safe_browsing/BUILD.gn.nounrar 2024-02-07 19:49:27.000000000 +0100
++++ chromium-122.0.6261.29/chrome/common/safe_browsing/BUILD.gn 2024-02-11 18:55:29.965450629 +0100
+@@ -143,7 +143,6 @@ source_set("safe_browsing") {
+ "//components/safe_browsing/content/common:file_type_policies",
+ "//components/safe_browsing/core/common",
+ "//third_party/lzma_sdk/google:seven_zip_reader",
+- "//third_party/unrar:unrar",
+ ]
+
+ public_deps = [
+diff -up chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2024-02-07 19:49:27.000000000 +0100
++++ chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.cc 2024-02-11 23:49:25.061324007 +0100
+@@ -74,6 +74,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
+ const std::optional<std::string>& password,
+ mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
+ AnalyzeRarFileCallback callback) {
++#if 0
+ DCHECK(rar_file.IsValid());
+ temp_file_getter_.Bind(std::move(temp_file_getter));
+ callback_ = std::move(callback);
+@@ -90,6 +91,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
+ /*password=*/password,
+ std::move(analysis_finished_callback),
+ std::move(temp_file_getter_callback), &results_);
++#else
++ NOTREACHED();
++#endif
+ }
+
+ void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
+diff -up chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.h
+--- chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.h.nounrar 2024-02-07 19:49:27.000000000 +0100
++++ chromium-122.0.6261.29/chrome/services/file_util/safe_archive_analyzer.h 2024-02-11 18:55:29.966450653 +0100
+@@ -9,7 +9,6 @@
+
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
+ #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
+-#include "chrome/utility/safe_browsing/rar_analyzer.h"
+ #include "chrome/utility/safe_browsing/seven_zip_analyzer.h"
+ #include "chrome/utility/safe_browsing/zip_analyzer.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+@@ -67,7 +66,6 @@ class SafeArchiveAnalyzer : public chrom
+ void Timeout();
+
+ safe_browsing::ZipAnalyzer zip_analyzer_;
+- safe_browsing::RarAnalyzer rar_analyzer_;
+ safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
+ #if BUILDFLAG(IS_MAC)
+ safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;
diff --git a/chromium-122-revert-av1enc-el9.patch b/chromium-122-revert-av1enc-el9.patch
new file mode 100644
index 0000000..5861bc6
--- /dev/null
+++ b/chromium-122-revert-av1enc-el9.patch
@@ -0,0 +1,98 @@
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
+--- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me 2023-05-21 10:05:00.357860329 +0200
++++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2023-05-21 10:18:09.665432735 +0200
+@@ -41,7 +41,6 @@
+ #include "media/gpu/gpu_video_encode_accelerator_helpers.h"
+ #include "media/gpu/h264_dpb.h"
+ #include "media/gpu/macros.h"
+-#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
+ #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
+ #include "media/gpu/vaapi/va_surface.h"
+ #include "media/gpu/vaapi/vaapi_common.h"
+@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
+
+ const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
+ if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
+- codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
++ codec != VideoCodec::kVP9) {
+ MEDIA_LOG(ERROR, media_log.get())
+ << "Unsupported profile: " << GetProfileName(config.output_profile);
+ return false;
+@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
+ break;
+ case VideoCodec::kVP8:
+ case VideoCodec::kVP9:
+- case VideoCodec::kAV1:
+ mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
+ break;
+ default:
+@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
+ vaapi_wrapper_, error_cb);
+ }
+ break;
+- case VideoCodec::kAV1:
+- if (!IsConfiguredForTesting()) {
+- encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
+- vaapi_wrapper_, error_cb);
+- }
+- break;
+ default:
+ NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
+ return;
+@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
+ case VideoCodec::kVP9:
+ picture = new VaapiVP9Picture(std::move(reconstructed_surface));
+ break;
+- case VideoCodec::kAV1:
+- picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
+- std::move(reconstructed_surface));
+- break;
+ default:
+ return nullptr;
+ }
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
+--- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
++++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn 2023-05-20 13:14:10.756183626 +0200
+@@ -38,8 +38,6 @@ source_set("vaapi") {
+ sources = [
+ "av1_vaapi_video_decoder_delegate.cc",
+ "av1_vaapi_video_decoder_delegate.h",
+- "av1_vaapi_video_encoder_delegate.cc",
+- "av1_vaapi_video_encoder_delegate.h",
+ "h264_vaapi_video_decoder_delegate.cc",
+ "h264_vaapi_video_decoder_delegate.h",
+ "h264_vaapi_video_encoder_delegate.cc",
+diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc
+--- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me 2023-11-02 15:08:30.921325747 +0100
++++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc 2023-11-02 15:09:46.123692602 +0100
+@@ -3124,6 +3124,7 @@ bool VaapiWrapper::GetSupportedPackedHea
+ return true;
+ }
+
++#if 0 //disable AV1 due to old libva on epel9
+ bool VaapiWrapper::GetMinAV1SegmentSize(VideoCodecProfile profile,
+ uint32_t& min_seg_size) {
+ CHECK(!enforce_sequence_affinity_ ||
+@@ -3141,6 +3142,7 @@ bool VaapiWrapper::GetMinAV1SegmentSize(
+
+ return true;
+ }
++#endif
+
+ bool VaapiWrapper::BlitSurface(const VASurface& va_surface_src,
+ const VASurface& va_surface_dest,
+diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h
+--- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me 2023-11-02 15:09:58.973928395 +0100
++++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h 2023-11-02 15:10:45.990791114 +0100
+@@ -553,9 +553,11 @@ class MEDIA_GPU_EXPORT VaapiWrapper
+ bool& packed_pps,
+ bool& packed_slice);
+
++#if 0 //disable AV1 due to old libva on epel9
+ // Gets the minimum segment block size supported for AV1 encoding.
+ [[nodiscard]] bool GetMinAV1SegmentSize(VideoCodecProfile profile,
+ uint32_t& min_seg_size);
++#endif
+
+ // Blits a VASurface |va_surface_src| into another VASurface
+ // |va_surface_dest| applying pixel format conversion, cropping
diff --git a/chromium-122-v8-c++20.patch b/chromium-122-v8-c++20.patch
new file mode 100644
index 0000000..2b40db2
--- /dev/null
+++ b/chromium-122-v8-c++20.patch
@@ -0,0 +1,740 @@
+commit 940af9f2c87b436559b97c53763aa9eaaf1254eb
+Author: Jeremy Roman <jbroman@chromium.org>
+Date: Wed Nov 15 16:24:54 2023 +0000
+
+ Use C++20 features to simplify blink::NativeValueTraitsBase.
+
+ These allow some of the metaprogramming bits to be simplified a little.
+
+ Change-Id: I052b4397586d21348401616e1792afdb9662f975
+ Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5030335
+ Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
+ Commit-Queue: Jeremy Roman <jbroman@chromium.org>
+ Cr-Commit-Position: refs/heads/main@{#1224978}
+
+diff -up chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc.me chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
+--- chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc.me 2024-02-21 01:20:53.138946500 +0100
++++ chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc 2024-02-21 12:33:53.226207103 +0100
+@@ -7,7 +7,6 @@
+ #include "third_party/blink/renderer/core/core_export.h"
+ #include "third_party/blink/renderer/core/execution_context/execution_context.h"
+ #include "third_party/blink/renderer/core/frame/web_feature.h"
+-#include "third_party/blink/renderer/core/typed_arrays/flexible_array_buffer_view.h"
+ #include "third_party/blink/renderer/core/typed_arrays/typed_flexible_array_buffer_view.h"
+
+ namespace blink {
+@@ -699,11 +698,12 @@ DOMArrayBufferBase* NativeValueTraits<
+ // ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-NotShared<T> NativeValueTraits<NotShared<T>>::NativeValue(
+- v8::Isolate* isolate,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++NotShared<T> NativeValueTraits<
++ NotShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ NativeValue(v8::Isolate* isolate,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return NativeValueImpl<
+ RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
+@@ -712,12 +712,13 @@ NotShared<T> NativeValueTraits<NotShared
+ }
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-NotShared<T> NativeValueTraits<NotShared<T>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++NotShared<T> NativeValueTraits<
++ NotShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<
+ RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
+@@ -728,11 +729,12 @@ NotShared<T> NativeValueTraits<NotShared
+ // [AllowShared] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T> NativeValueTraits<MaybeShared<T>>::NativeValue(
+- v8::Isolate* isolate,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ MaybeShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ NativeValue(v8::Isolate* isolate,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
+ ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
+@@ -741,12 +743,13 @@ MaybeShared<T> NativeValueTraits<MaybeSh
+ }
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T> NativeValueTraits<MaybeShared<T>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ MaybeShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
+ ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
+@@ -757,12 +760,12 @@ MaybeShared<T> NativeValueTraits<MaybeSh
+ // [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T>
+-NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>::NativeValue(
+- v8::Isolate* isolate,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ NativeValue(v8::Isolate* isolate,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return NativeValueImpl<
+ RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
+@@ -771,12 +774,13 @@ NativeValueTraits<IDLBufferSourceTypeNoS
+ }
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T> NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<
+- MaybeShared<T>>>::ArgumentValue(v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<
+ RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
+@@ -787,11 +791,12 @@ MaybeShared<T> NativeValueTraits<IDLBuff
+ // Nullable ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::NativeValue(
+- v8::Isolate* isolate,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++NotShared<T> NativeValueTraits<
++ IDLNullable<NotShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ NativeValue(v8::Isolate* isolate,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return NativeValueImpl<
+ RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
+ Nullablity::kIsNullable, BufferSizeCheck::kCheck,
+@@ -800,12 +805,13 @@ NotShared<T> NativeValueTraits<IDLNullab
+ }
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++NotShared<T> NativeValueTraits<
++ IDLNullable<NotShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<
+ RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
+ Nullablity::kIsNullable, BufferSizeCheck::kCheck,
+@@ -816,11 +822,12 @@ NotShared<T> NativeValueTraits<IDLNullab
+ // Nullable [AllowShared] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::NativeValue(
+- v8::Isolate* isolate,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ IDLNullable<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ NativeValue(v8::Isolate* isolate,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
+ ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNullable, BufferSizeCheck::kCheck,
+@@ -829,12 +836,13 @@ MaybeShared<T> NativeValueTraits<IDLNull
+ }
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++MaybeShared<T> NativeValueTraits<
++ IDLNullable<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
+ ToDOMViewType<T, kMaybeShared>,
+ Nullablity::kIsNullable, BufferSizeCheck::kCheck,
+@@ -845,9 +853,9 @@ MaybeShared<T> NativeValueTraits<IDLNull
+ // Nullable [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-MaybeShared<T>
+-NativeValueTraits<IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>::
++MaybeShared<T> NativeValueTraits<
++ IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
+ ArgumentValue(v8::Isolate* isolate,
+ int argument_index,
+ v8::Local<v8::Value> value,
+@@ -862,11 +870,13 @@ NativeValueTraits<IDLNullable<IDLBufferS
+ // [AllowShared, FlexibleArrayBufferView] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-T NativeValueTraits<T>::ArgumentValue(v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++T NativeValueTraits<T,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
+ Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
+ ResizableAllowance::kDisallowResizable,
+@@ -878,12 +888,13 @@ T NativeValueTraits<T>::ArgumentValue(v8
+ // ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<
+ RecipeTrait<T>, ToFlexibleArrayBufferView, Nullablity::kIsNotNullable,
+ BufferSizeCheck::kDoNotCheck, ResizableAllowance::kDisallowResizable,
+@@ -894,12 +905,13 @@ T NativeValueTraits<IDLBufferSourceTypeN
+ // Nullable [AllowShared, FlexibleArrayBufferView] ArrayBufferView
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-T NativeValueTraits<IDLNullable<T>>::ArgumentValue(
+- v8::Isolate* isolate,
+- int argument_index,
+- v8::Local<v8::Value> value,
+- ExceptionState& exception_state) {
++T NativeValueTraits<IDLNullable<T>,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>::
++ ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state) {
+ return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
+ Nullablity::kIsNullable, BufferSizeCheck::kCheck,
+ ResizableAllowance::kDisallowResizable,
+diff -up chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits.h.me chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
+--- chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits.h.me 2024-02-21 01:20:53.138946500 +0100
++++ chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits.h 2024-02-21 12:33:53.225207075 +0100
+@@ -5,7 +5,6 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
+ #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
+
+-#include <concepts>
+ #include <type_traits>
+
+ #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h"
+@@ -31,7 +30,7 @@ class ExceptionState;
+ // return toInt32(isolate, value, exceptionState, NormalConversion);
+ // }
+ // }
+-template <typename T>
++template <typename T, typename SFINAEHelper = void>
+ struct NativeValueTraits;
+
+ // This declaration serves only as a blueprint for specializations: the
+@@ -46,15 +45,22 @@ struct NativeValueTraits;
+
+ namespace bindings {
+
++template <typename T, typename = void>
++struct NativeValueTraitsHasIsNull : std::false_type {};
++
+ template <typename T>
+-struct ImplTypeFor {
+- using type = T;
+-};
++struct NativeValueTraitsHasIsNull<
++ T,
++ std::void_t<decltype(std::declval<T>().IsNull())>> : std::true_type {};
+
+ template <typename T>
+- requires std::derived_from<T, IDLBase>
+-struct ImplTypeFor<T> {
+- using type = typename T::ImplType;
++struct NativeValueTraitsHasNullValue {
++ // true if |T| supports IDL null value.
++ static constexpr bool value =
++ // ScriptValue, String, and union types have IsNull member function.
++ bindings::NativeValueTraitsHasIsNull<T>::value ||
++ // Pointer types have nullptr as IDL null value.
++ std::is_pointer<T>::value;
+ };
+
+ } // namespace bindings
+@@ -72,17 +78,37 @@ struct ImplTypeFor<T> {
+ // If present, |NullValue()| will be used when converting from the nullable type
+ // T?, and should be used if the impl type has an existing "null" state. If not
+ // present, WTF::Optional will be used to wrap the type.
+-template <typename T>
++template <typename T, typename SFINAEHelper = void>
+ struct NativeValueTraitsBase {
+ STATIC_ONLY(NativeValueTraitsBase);
+
+- using ImplType = bindings::ImplTypeFor<T>::type;
++ using ImplType = T;
++
++ static constexpr bool has_null_value =
++ bindings::NativeValueTraitsHasNullValue<ImplType>::value;
++
++ template <typename... ExtraArgs>
++ static decltype(auto) ArgumentValue(v8::Isolate* isolate,
++ int argument_index,
++ v8::Local<v8::Value> value,
++ ExceptionState& exception_state,
++ ExtraArgs... extra_args) {
++ return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue(
++ isolate, value, exception_state,
++ std::forward<ExtraArgs>(extra_args)...);
++ }
++};
++
++template <typename T>
++struct NativeValueTraitsBase<
++ T,
++ std::enable_if_t<std::is_base_of<IDLBase, T>::value>> {
++ STATIC_ONLY(NativeValueTraitsBase);
++
++ using ImplType = typename T::ImplType;
+
+- // Pointer types have nullptr as IDL null value.
+- // ScriptValue, String, and union types have IsNull member function.
+ static constexpr bool has_null_value =
+- std::is_pointer_v<ImplType> ||
+- requires(ImplType value) { value.IsNull(); };
++ bindings::NativeValueTraitsHasNullValue<ImplType>::value;
+
+ // This should only be true for certain subclasses of ScriptWrappable
+ // that satisfy the assumptions of CreateIDLSequenceFromV8ArraySlow() with
+diff -up chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h.me chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
+--- chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h.me 2024-02-21 01:20:53.138946500 +0100
++++ chromium-122.0.6261.57/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h 2024-02-21 12:33:53.227207131 +0100
+@@ -5,9 +5,6 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
+ #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
+
+-#include <concepts>
+-#include <type_traits>
+-
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+ #include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
+ #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h"
+@@ -736,8 +733,9 @@ struct CORE_EXPORT NativeValueTraits<
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<T> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
+ // NotShared<T> or MaybeShared<T> should be used instead.
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -749,8 +747,9 @@ struct NativeValueTraits<T> {
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<IDLNullable<T>> {
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
+ // NotShared<T> or MaybeShared<T> should be used instead.
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -762,8 +761,9 @@ struct NativeValueTraits<IDLNullable<T>>
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<NotShared<T>>
++struct NativeValueTraits<
++ NotShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<NotShared<T>> {
+ static NotShared<T> NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -776,8 +776,9 @@ struct NativeValueTraits<NotShared<T>>
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<IDLNullable<NotShared<T>>>
++struct NativeValueTraits<
++ IDLNullable<NotShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<NotShared<T>> {
+ static NotShared<T> NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -790,8 +791,9 @@ struct NativeValueTraits<IDLNullable<Not
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<MaybeShared<T>>
++struct NativeValueTraits<
++ MaybeShared<T>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<MaybeShared<T>> {
+ static MaybeShared<T> NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -804,8 +806,9 @@ struct NativeValueTraits<MaybeShared<T>>
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>
++struct NativeValueTraits<
++ IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<MaybeShared<T>> {
+ // FlexibleArrayBufferView uses this in its implementation, so we cannot
+ // delete it.
+@@ -820,8 +823,9 @@ struct NativeValueTraits<IDLBufferSource
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+-struct NativeValueTraits<IDLNullable<MaybeShared<T>>>
++struct NativeValueTraits<
++ IDLNullable<MaybeShared<T>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<MaybeShared<T>> {
+ static MaybeShared<T> NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -834,9 +838,9 @@ struct NativeValueTraits<IDLNullable<May
+ };
+
+ template <typename T>
+- requires std::derived_from<T, DOMArrayBufferView>
+ struct NativeValueTraits<
+- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>
++ IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
++ typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<MaybeShared<T>> {
+ // BufferSourceTypeNoSizeLimit must be used only as arguments.
+ static MaybeShared<T> NativeValue(v8::Isolate* isolate,
+@@ -850,8 +854,11 @@ struct NativeValueTraits<
+ };
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>
++ : public NativeValueTraitsBase<T> {
+ // FlexibleArrayBufferView must be used only as arguments.
+ static T NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -864,8 +871,10 @@ struct NativeValueTraits<T> : public Nat
+ };
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>
++struct NativeValueTraits<
++ IDLBufferSourceTypeNoSizeLimit<T>,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>
+ : public NativeValueTraitsBase<T> {
+ // BufferSourceTypeNoSizeLimit and FlexibleArrayBufferView must be used only
+ // as arguments.
+@@ -880,8 +889,11 @@ struct NativeValueTraits<IDLBufferSource
+ };
+
+ template <typename T>
+- requires std::derived_from<T, FlexibleArrayBufferView>
+-struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T> {
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<
++ std::is_base_of<FlexibleArrayBufferView, T>::value>>
++ : public NativeValueTraitsBase<T> {
+ // FlexibleArrayBufferView must be used only as arguments.
+ static T NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -1217,8 +1229,9 @@ NativeValueTraits<IDLSequence<T>>::Nativ
+ }
+
+ template <typename T>
+- requires NativeValueTraits<IDLSequence<T>>::has_null_value
+-struct NativeValueTraits<IDLNullable<IDLSequence<T>>>
++struct NativeValueTraits<IDLNullable<IDLSequence<T>>,
++ typename std::enable_if_t<
++ NativeValueTraits<IDLSequence<T>>::has_null_value>>
+ : public NativeValueTraitsBase<HeapVector<AddMemberIfNeeded<T>>*> {
+ using ImplType = typename NativeValueTraits<IDLSequence<T>>::ImplType*;
+
+@@ -1294,8 +1307,9 @@ struct NativeValueTraits<IDLArray<T>>
+ : public NativeValueTraits<IDLSequence<T>> {};
+
+ template <typename T>
+- requires NativeValueTraits<IDLSequence<T>>::has_null_value
+-struct NativeValueTraits<IDLNullable<IDLArray<T>>>
++struct NativeValueTraits<IDLNullable<IDLArray<T>>,
++ typename std::enable_if_t<
++ NativeValueTraits<IDLSequence<T>>::has_null_value>>
+ : public NativeValueTraits<IDLNullable<IDLSequence<T>>> {};
+
+ // Record types
+@@ -1425,8 +1439,10 @@ struct NativeValueTraits<IDLRecord<K, V>
+
+ // Callback function types
+ template <typename T>
+- requires std::derived_from<T, CallbackFunctionBase>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1449,8 +1465,9 @@ struct NativeValueTraits<T> : public Nat
+ };
+
+ template <typename T>
+- requires std::derived_from<T, CallbackFunctionBase>
+-struct NativeValueTraits<IDLNullable<T>>
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
+ : public NativeValueTraitsBase<IDLNullable<T>> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -1479,8 +1496,10 @@ struct NativeValueTraits<IDLNullable<T>>
+
+ // Callback interface types
+ template <typename T>
+- requires std::derived_from<T, CallbackInterfaceBase>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1504,8 +1523,9 @@ struct NativeValueTraits<T> : public Nat
+
+ // Interface types
+ template <typename T>
+- requires std::derived_from<T, CallbackInterfaceBase>
+-struct NativeValueTraits<IDLNullable<T>>
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
+ : public NativeValueTraitsBase<IDLNullable<T>> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -1534,8 +1554,11 @@ struct NativeValueTraits<IDLNullable<T>>
+
+ // Dictionary types
+ template <typename T>
+- requires std::derived_from<T, bindings::DictionaryBase>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<
++ std::is_base_of<bindings::DictionaryBase, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1546,11 +1569,14 @@ struct NativeValueTraits<T> : public Nat
+ // We don't support nullable dictionary types in general since it's quite
+ // confusing and often misused.
+ template <typename T>
+- requires std::derived_from<T, bindings::DictionaryBase> &&
+- (std::same_as<T, GPUColorTargetState> ||
+- std::same_as<T, GPURenderPassColorAttachment> ||
+- std::same_as<T, GPUVertexBufferLayout>)
+-struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<
++ std::is_base_of<bindings::DictionaryBase, T>::value &&
++ (std::is_same<T, GPUColorTargetState>::value ||
++ std::is_same<T, GPURenderPassColorAttachment>::value ||
++ std::is_same<T, GPUVertexBufferLayout>::value)>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1562,8 +1588,11 @@ struct NativeValueTraits<IDLNullable<T>>
+
+ // Enumeration types
+ template <typename T>
+- requires std::derived_from<T, bindings::EnumerationBase>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<
++ std::is_base_of<bindings::EnumerationBase, T>::value>>
++ : public NativeValueTraitsBase<T> {
+ static T NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1573,8 +1602,10 @@ struct NativeValueTraits<T> : public Nat
+
+ // Interface types
+ template <typename T>
+- requires std::derived_from<T, ScriptWrappable>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ // This signifies that CreateIDLSequenceFromV8ArraySlow() may apply
+ // certain optimization based on assumptions about `NativeValue()`
+ // implementation below. For subclasses of ScriptWrappable that have
+@@ -1611,8 +1642,9 @@ struct NativeValueTraits<T> : public Nat
+ };
+
+ template <typename T>
+- requires std::derived_from<T, ScriptWrappable>
+-struct NativeValueTraits<IDLNullable<T>>
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
+ : public NativeValueTraitsBase<IDLNullable<T>> {
+ static inline T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+@@ -1647,8 +1679,10 @@ struct NativeValueTraits<IDLNullable<T>>
+ };
+
+ template <typename T>
+- requires std::derived_from<T, bindings::UnionBase>
+-struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ T,
++ typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1664,8 +1698,10 @@ struct NativeValueTraits<T> : public Nat
+ };
+
+ template <typename T>
+- requires std::derived_from<T, bindings::UnionBase>
+-struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
++struct NativeValueTraits<
++ IDLNullable<T>,
++ typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
++ : public NativeValueTraitsBase<T*> {
+ static T* NativeValue(v8::Isolate* isolate,
+ v8::Local<v8::Value> value,
+ ExceptionState& exception_state) {
+@@ -1686,8 +1722,9 @@ struct NativeValueTraits<IDLNullable<T>>
+
+ // Nullable types
+ template <typename InnerType>
+- requires(!NativeValueTraits<InnerType>::has_null_value)
+-struct NativeValueTraits<IDLNullable<InnerType>>
++struct NativeValueTraits<
++ IDLNullable<InnerType>,
++ typename std::enable_if_t<!NativeValueTraits<InnerType>::has_null_value>>
+ : public NativeValueTraitsBase<IDLNullable<InnerType>> {
+ // https://webidl.spec.whatwg.org/#es-nullable-type
+ using ImplType =
+@@ -1719,8 +1756,9 @@ struct NativeValueTraits<IDLNullable<IDL
+
+ // Optional types
+ template <typename T>
+- requires std::is_arithmetic_v<typename NativeValueTraits<T>::ImplType>
+-struct NativeValueTraits<IDLOptional<T>>
++struct NativeValueTraits<IDLOptional<T>,
++ typename std::enable_if_t<std::is_arithmetic<
++ typename NativeValueTraits<T>::ImplType>::value>>
+ : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
+ using ImplType = typename NativeValueTraits<T>::ImplType;
+
+@@ -1742,8 +1780,9 @@ struct NativeValueTraits<IDLOptional<T>>
+ };
+
+ template <typename T>
+- requires std::is_pointer_v<typename NativeValueTraits<T>::ImplType>
+-struct NativeValueTraits<IDLOptional<T>>
++struct NativeValueTraits<IDLOptional<T>,
++ typename std::enable_if_t<std::is_pointer<
++ typename NativeValueTraits<T>::ImplType>::value>>
+ : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
+ using ImplType = typename NativeValueTraits<T>::ImplType;
+
diff --git a/chromium.spec b/chromium.spec
index 771ec77..528332a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -300,7 +300,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 121.0.6167.184
+Version: 122.0.6261.57
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -319,7 +319,7 @@ Patch2: chromium-120-system-libusb.patch
Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch6: chromium-119-norar.patch
+Patch6: chromium-122-norar.patch
# Try to load widevine from other places
Patch8: chromium-117-widevine-other-locations.patch
@@ -346,9 +346,6 @@ Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
# Update rjsmin to 1.2.0
Patch69: chromium-103.0.5060.53-update-rjsmin-to-1.2.0.patch
-# Update six to 1.16.0
-Patch70: chromium-105.0.5195.52-python-six-1.16.0.patch
-
# Disable tests on remoting build
Patch82: chromium-98.0.4758.102-remoting-no-tests.patch
@@ -411,7 +408,7 @@ Patch117: chromium-118-sigtrap_system_ffmpeg.patch
Patch118: chromium-121-system-old-ffmpeg.patch
# revert AV1 VAAPI video encode due to old libva on el9
-Patch130: chromium-121-revert-av1enc-el9.patch
+Patch130: chromium-122-revert-av1enc-el9.patch
# file conflict with old kernel on el8/el9
Patch140: chromium-118-dma_buf_export_sync_file-conflict.patch
@@ -432,16 +429,14 @@ Patch304: chromium-117-string-convert.patch
Patch306: chromium-119-assert.patch
-# disable memory tagging in epel7 and epel8 on aarch64 due to new feature IFUNC-Resolver
-# not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found
-Patch307: chromium-121-arm64-memory_tagging.patch
-
# compiler errors on epel
-Patch308: chromium-121-v8-c++20.patch
-Patch309: chromium-121-constexpr.patch
+Patch307: chromium-122-clang16-buildflags.patch
+# revert it for old clang on rhel and f38
+Patch308: chromium-122-v8-c++20.patch
+Patch309: chromium-122-constexpr.patch
# missing include header files
-Patch310: chromium-121-missing-header-files.patch
+Patch310: chromium-122-missing-header-files.patch
# clang warnings
Patch311: chromium-115-clang-warnings.patch
@@ -464,19 +459,16 @@ Patch354: chromium-120-split-threshold-for-reg-with-hint.patch
Patch355: chromium-121-nullptr_t-without-namespace-std.patch
# disable FFmpegAllowLists by default to allow external ffmpeg
-patch356: chromium-120-disable-FFmpegAllowLists.patch
+patch356: chromium-122-disable-FFmpegAllowLists.patch
# remove ldflags -Wl,-mllvm,-disable-auto-upgrade-debug-info which is not supported
-Patch357: chromium-120-clang16-disable-auto-upgrade-debug-info.patch
+Patch357: chromium-122-clang16-disable-auto-upgrade-debug-info.patch
# set clang_lib path
Patch358: chromium-121-rust-clang_lib.patch
-# python3-invalid-escape-sequence
-Patch359: chromium-121-python3-invalid-escape-sequence.patch
-
# upstream patches
-Patch400: chromium-121-el8-support-64kpage.patch
+Patch400: chromium-122-el8-support-64kpage.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -1048,6 +1040,11 @@ udev.
%patch -P8 -p1 -b .widevine-other-locations
%patch -P11 -p1 -b .py3
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch -P12 -p1 -b .fedora-user-agent
+%endif
+
%patch -P20 -p1 -b .disable-font-test
%if ! %{bundleminizip}
@@ -1057,7 +1054,6 @@ udev.
%patch -P65 -p1 -b .java-only-allowed
%patch -P69 -p1 -b .update-rjsmin-to-1.2.0
-%patch -P70 -p1 -b .update-six-to-1.16.0
%patch -P82 -p1 -b .remoting-no-tests
%if ! %{bundlebrotli}
@@ -1074,11 +1070,6 @@ udev.
%patch -P91 -p1 -b .system-opus
%endif
-# Fedora branded user agent
-%if 0%{?fedora}
-%patch -P12 -p1 -b .fedora-user-agent
-%endif
-
%if ! %{bundleffmpegfree}
%if 0%{?rhel} == 9 || 0%{?fedora} == 37
%patch -P115 -p1 -b .ffmpeg-5.x-duration
@@ -1092,22 +1083,22 @@ udev.
%if 0%{?rhel} == 7
%patch -P100 -p1 -b .el7-memfd-fcntl-include
%patch -P101 -p1 -b .wayland-strndup-error
-%patch -P102 -p1 -b .default-constructor-involving-anonymous-union
+#patch -P102 -p1 -b .default-constructor-involving-anonymous-union
%patch -P103 -p1 -b .epel7-header-workarounds
%patch -P104 -p1 -b .el7cups
%patch -P105 -p1 -b .el7-old-libdrm
%patch -P106 -p1 -b .el7-erase-fix
-%patch -P107 -p1 -b .el7-extra-operator-equalequal
+#patch -P107 -p1 -b .el7-extra-operator-equalequal
%patch -P108 -p1 -b .el7_v4l2_quantization
%patch -P109 -p1 -b .wireless
%patch -P110 -p1 -b .buildflag-el7
-%patch -P111 -p1 -b .constexpr
+#patch -P111 -p1 -b .constexpr
%patch -P113 -p1 -b .el7-clang-version-warning
%patch -P114 -p1 -R -b .clang-build-failure
-%patch -P300 -p1 -b .no_matching_constructor
+#patch -P300 -p1 -b .no_matching_constructor
%patch -P301 -p1 -b .workaround_clang-SkColor4f
%patch -P302 -p1 -b .workaround_clang_bug-structured_binding
-%patch -P303 -p1 -b .typename
+#patch -P303 -p1 -b .typename
%patch -P304 -p1 -b .string-convert
%patch -P306 -p1 -b .assert
%endif
@@ -1120,14 +1111,9 @@ udev.
%patch -P130 -p1 -b .revert-av1enc
%endif
-%ifarch aarch64
-%if 0%{?rhel} <= 8
-%patch -P307 -p1 -b .memory_tagging
-%endif
-%endif
-
-%if 0%{?rhel} || 0%{?fedora} < 39
-%patch -P308 -p1 -R -b .v8-c++20
+%if 0%{?rhel} || 0%{?fedora} && 0%{?fedora} < 39
+%patch -P307 -p1 -b .clang16-buildflag
+%patch -P308 -p1 -b .v8-c++20
%patch -P309 -p1 -b .constexpr
%endif
@@ -1148,7 +1134,6 @@ udev.
%patch -P356 -p1 -b .disable-FFmpegAllowLists
%patch -P357 -p1 -b .clang16-disable-auto-upgrade-debug-info
%patch -P358 -p1 -b .rust-clang_lib
-%patch -P359 -p1 -b .python3-invalid-escape-sequence
%%ifarch aarch64
%if 0%{?rhel} == 8
@@ -1240,6 +1225,7 @@ CXXFLAGS="$CFLAGS"
CFLAGS="$FLAGS"
CXXFLAGS="$FLAGS"
%endif
+
# reduce the size of relocations
%if 0%{?fedora} || 0%{?rhel} > 9
LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"
@@ -1932,6 +1918,20 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Wed Feb 21 2024 Than Ngo <than@redhat.com> - 122.0.6261.57-1
+- update to 122.0.6261.57
+ * High CVE-2024-1669: Out of bounds memory access in Blink
+ * High CVE-2024-1670: Use after free in Mojo
+ * Medium CVE-2024-1671: Inappropriate implementation in Site Isolation
+ * Medium CVE-2024-1672: Inappropriate implementation in Content Security Policy
+ * Medium CVE-2024-1673: Use after free in Accessibility
+ * Medium CVE-2024-1674: Inappropriate implementation in Navigation
+ * Medium CVE-2024-1675: Insufficient policy enforcement in Download
+ * Low CVE-2024-1676: Inappropriate implementation in Navigation.
+
+* Sun Feb 18 2024 Than Ngo <than@redhat.com> - 122.0.6261.39-1
+- update to 122.0.6261.39
+
* Wed Feb 14 2024 Than Ngo <than@redhat.com> - 121.0.6167.184-1
- update to 121.0.6167.184
diff --git a/sources b/sources
index 7904737..9dc9d59 100644
--- a/sources
+++ b/sources
@@ -2,4 +2,4 @@ SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea
SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd
SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
-SHA512 (chromium-121.0.6167.184-clean.tar.xz) = bbcb0aae2093313ace416f814a3e664a79ebe6b668a1cbcd47fa8285c4fef0a3106c4d15a164c2ea46630ac2e3f80a02b4d8d925c9512b48b411dd00849a1c20
+SHA512 (chromium-122.0.6261.57-clean.tar.xz) = 343ae0250614fcf744fef05ea6f7c7b9d06637bf56eb86acc04672da1206f38c88805bf696b793176cdd751ccdcea959d30e517550bcce806026c90c90573c6b
reply other threads:[~2026-08-07 16:06 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178611876219.1.11762354378346084145.rpms-chromium-09195bfaaa32@fedoraproject.org \
--to=than@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox