public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: update to 121.0.6167.71
@ 2026-08-07 16:05 Than Ngo
0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:05 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 1bc897ee194d34f1e4d645bc8c3f321b8ea7da10
Author : Than Ngo <than@redhat.com>
Date : 2024-01-23T14:43:22+01:00
Stats : +2878/-1715 in 27 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/1bc897ee194d34f1e4d645bc8c3f321b8ea7da10?branch=epel9-next
Log:
update to 121.0.6167.71
---
diff --git a/chromium-117-el7-default_constructor.patch b/chromium-117-el7-default_constructor.patch
deleted file mode 100644
index 1b386b6..0000000
--- a/chromium-117-el7-default_constructor.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc.me chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc
---- chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc.me 2023-09-16 09:43:41.717545215 +0200
-+++ chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc 2023-09-16 09:48:07.319539585 +0200
-@@ -187,7 +187,8 @@ void OnJsonDecoded(std::unique_ptr<const
-
- } // namespace
-
--HeaderDirectFromSellerSignals::HeaderDirectFromSellerSignals() = default;
-+HeaderDirectFromSellerSignals::HeaderDirectFromSellerSignals() :
-+ seller_signals_(absl::nullopt), auction_signals_(absl::nullopt) { }
-
- HeaderDirectFromSellerSignals::~HeaderDirectFromSellerSignals() = default;
-
diff --git a/chromium-117-mnemonic-error.patch b/chromium-117-mnemonic-error.patch
deleted file mode 100644
index 455b3e5..0000000
--- a/chromium-117-mnemonic-error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn
---- chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me 2023-09-10 16:54:00.804385139 +0200
-+++ chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn 2023-09-10 16:54:13.540625077 +0200
-@@ -1694,8 +1694,6 @@ action_foreach("element_locator_test_pro
- python_path_root = "${root_out_dir}/pyproto"
- python_path_proto = "${python_path_root}/third_party/blink/renderer/core/lcp_critical_path_predictor"
-
-- mnemonic = "ELOC_PROTO"
--
- source_dir = "lcp_critical_path_predictor/test_proto"
- sources = rebase_path([ "lcp_image_id.asciipb" ], "", source_dir)
-
diff --git a/chromium-119-revert-av1enc-el9.patch b/chromium-119-revert-av1enc-el9.patch
deleted file mode 100644
index b533ab9..0000000
--- a/chromium-119-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/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/BUILD.gn
---- chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
-+++ chromium-114.0.5735.35/media/gpu/BUILD.gn 2023-05-20 13:14:10.755183630 +0200
-@@ -373,10 +373,7 @@ source_set("common") {
- "vp9_svc_layers.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 -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 --git a/chromium-120-arm64-memory_tagging.patch b/chromium-120-arm64-memory_tagging.patch
deleted file mode 100644
index bb461ef..0000000
--- a/chromium-120-arm64-memory_tagging.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.than 2023-11-26 13:50:07.005519877 +0100
-+++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h 2023-11-26 13:50:49.727267240 +0100
-@@ -152,10 +152,7 @@
- (!BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && \
- defined(ARCH_CPU_LITTLE_ENDIAN))
-
--#define PA_CONFIG_HAS_MEMORY_TAGGING() \
-- (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
-- !defined(ADDRESS_SANITIZER) && \
-- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
-+#define PA_CONFIG_HAS_MEMORY_TAGGING() 0
-
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
- static_assert(sizeof(void*) == 8);
diff --git a/chromium-120-el7-clang-version-warning.patch b/chromium-120-el7-clang-version-warning.patch
deleted file mode 100644
index 112da65..0000000
--- a/chromium-120-el7-clang-version-warning.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up chromium-120.0.6099.56/third_party/libc++/src/include/__config.me chromium-120.0.6099.56/third_party/libc++/src/include/__config
---- chromium-120.0.6099.56/third_party/libc++/src/include/__config.me 2023-12-03 00:05:51.254483474 +0100
-+++ chromium-120.0.6099.56/third_party/libc++/src/include/__config 2023-12-03 00:06:05.872863168 +0100
-@@ -32,11 +32,7 @@
-
- // Warn if a compiler version is used that is not supported anymore
- // LLVM RELEASE Update the minimum compiler versions
--# if defined(_LIBCPP_CLANG_VER)
--# if _LIBCPP_CLANG_VER < 1500
--# warning "Libc++ only supports Clang 15 and later"
--# endif
--# elif defined(_LIBCPP_APPLE_CLANG_VER)
-+# if defined(_LIBCPP_APPLE_CLANG_VER)
- # if _LIBCPP_APPLE_CLANG_VER < 1500
- # warning "Libc++ only supports AppleClang 15 and later"
- # endif
diff --git a/chromium-120-gn-workaround-atspi.patch b/chromium-120-gn-workaround-atspi.patch
deleted file mode 100644
index 72c7b7e..0000000
--- a/chromium-120-gn-workaround-atspi.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn.me chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn
---- chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn.me 2023-11-26 16:14:15.364064126 +0100
-+++ chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn 2023-11-26 16:41:16.877321990 +0100
-@@ -21,6 +21,9 @@ if (use_atk) {
- minor = atspi_version[1]
- micro = atspi_version[2]
-
-+ # gn workaround for the error: Assignment had no effect
-+ print("ATSPI Version: $major.$minor.$micro")
-+
- # ATSPI 2.49.90 now defines these for us and it's an error for us to
- # redefine them on the compiler command line.
- # See ATSPI 927344a34cd5bf81fc64da4968241735ecb4f03b
diff --git a/chromium-120-missing-header-files.patch b/chromium-120-missing-header-files.patch
deleted file mode 100644
index 4d3f3ef..0000000
--- a/chromium-120-missing-header-files.patch
+++ /dev/null
@@ -1,470 +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-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h.than chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h
---- chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h.than 2023-12-20 23:09:10.395334723 +0100
-+++ chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h 2023-12-20 23:09:35.436910261 +0100
-@@ -6,6 +6,7 @@
- #define CHROME_TEST_CHROMEDRIVER_CHROME_CHROME_FINDER_H_
-
- #include <vector>
-+#include <string>
-
- #include "base/functional/callback_forward.h"
-
diff --git a/chromium-120-no_matching_constructor.patch b/chromium-120-no_matching_constructor.patch
deleted file mode 100644
index b1d987a..0000000
--- a/chromium-120-no_matching_constructor.patch
+++ /dev/null
@@ -1,742 +0,0 @@
-diff -up chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc
---- chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100
-+++ chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc 2023-12-03 17:31:25.748420189 +0100
-@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo
- // The sample-record could be for any sparse histogram. Add the reference
- // to the appropriate collection for later use.
- if (found_id == match_id) {
-- found_records.emplace_back(ref, value);
-+ found_records.emplace_back() = {ref, value};
- found = true;
- } else {
- std::vector<ReferenceAndSample>* samples =
- GetSampleMapRecordsWhileLocked(found_id);
- CHECK(samples);
-- samples->emplace_back(ref, value);
-+ samples->emplace_back() = {ref, value};
- }
- }
-
-diff -up chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor chromium-120.0.6099.56/base/trace_event/trace_log.cc
---- chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100
-+++ chromium-120.0.6099.56/base/trace_event/trace_log.cc 2023-12-03 17:31:25.749420208 +0100
-@@ -2191,8 +2191,8 @@ void TraceLog::SetTraceBufferForTesting(
- #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
- void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
- AutoLock lock(track_event_lock_);
-- track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
-- args.backend_type);
-+ track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
-+ args.backend_type};
- }
-
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor 2023-11-29 22:39:47.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc 2023-12-03 17:31:25.749420208 +0100
-@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
-
- while (rule_iterator && rule_iterator->HasNext()) {
- auto rule = rule_iterator->Next();
-- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
-- rule->secondary_pattern);
-+ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
-+ rule->secondary_pattern};
- permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
- setting_type,
- permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
-@@ -329,8 +329,8 @@ void OneTimePermissionProvider::DeleteEn
- auto rule = rule_iterator->Next();
- if (rule->primary_pattern.Matches(origin_gurl) &&
- rule->secondary_pattern.Matches(origin_gurl)) {
-- patterns_to_delete.emplace_back(
-- content_setting_type, rule->primary_pattern, rule->secondary_pattern);
-+ patterns_to_delete.emplace_back() = {
-+ content_setting_type, rule->primary_pattern, rule->secondary_pattern};
- permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
- content_setting_type, trigger_event);
- }
-diff -up chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor 2023-11-29 22:39:48.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2023-12-03 17:31:25.749420208 +0100
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
- // TODO(crbug.com/1445072): Add actual domains with attribute names.
- profile_attributes->insert(std::make_pair(
- "supported.test",
-- SAMLProfileAttributes("placeholderName", "placeholderDomain",
-- "placeholderToken")));
-+ SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+ "placeholderToken"}));
-
- // Extract domains and attributes from the command line switch.
- const base::CommandLine& command_line =
-diff -up chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2023-12-03 17:31:25.749420208 +0100
-@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
- alternative_nav_match);
-
- // Store the details necessary to open the omnibox match via browser commands.
-- location_bar_->set_navigation_params(LocationBar::NavigationParams(
-+ location_bar_->set_navigation_params(LocationBar::NavigationParams{
- destination_url, disposition, transition, match_selection_timestamp,
- destination_url_entered_without_scheme,
-- destination_url_entered_with_http_scheme));
-+ destination_url_entered_with_http_scheme});
-
- if (browser_) {
- auto navigation = chrome::OpenCurrentURL(browser_);
-diff -up chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc
---- chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc 2023-12-03 17:31:25.756420342 +0100
-@@ -148,8 +148,8 @@ SafetyHubMenuNotificationService::GetNot
- // The information related to showing the notification needs to be persisted
- // as well.
- SaveNotificationsToPrefs();
-- return MenuNotificationEntry(notification_to_show->GetNotificationCommandId(),
-- notification_to_show->GetNotificationString());
-+ return MenuNotificationEntry{notification_to_show->GetNotificationCommandId(),
-+ notification_to_show->GetNotificationString()};
- }
-
- absl::optional<ResultMap>
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2023-12-03 17:31:25.749420208 +0100
-@@ -55,12 +55,12 @@ std::vector<EmbeddedPermissionPromptAskV
- EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
- std::vector<ButtonConfiguration> buttons;
- if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
-- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
-+ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
- }
-- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-- ButtonType::kAllow, ui::ButtonStyle::kTonal);
-+ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-+ ButtonType::kAllow, ui::ButtonStyle::kTonal};
- return buttons;
- }
-
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2023-12-03 17:31:25.750420227 +0100
-@@ -86,6 +86,7 @@ class EmbeddedPermissionPromptBaseView :
- struct RequestLineConfiguration {
- const raw_ptr<const gfx::VectorIcon> icon;
- std::u16string message;
-+ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
- };
-
- struct ButtonConfiguration {
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2023-12-03 17:31:25.750420227 +0100
-@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
- std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
- EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
- std::vector<ButtonConfiguration> buttons;
-- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
-- ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
-+ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
-+ ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
- return buttons;
- }
-
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2023-12-03 17:31:25.756420342 +0100
-@@ -63,18 +63,18 @@ EmbeddedPermissionPromptPreviouslyDenied
- std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
- std::vector<ButtonConfiguration> buttons;
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
-- ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
-+ ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
-
- if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
-- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
-+ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
- } else {
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
-- ButtonType::kAllow, ui::ButtonStyle::kTonal);
-+ ButtonType::kAllow, ui::ButtonStyle::kTonal};
- }
- return buttons;
- }
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2023-12-03 17:31:25.750420227 +0100
-@@ -57,13 +57,13 @@ EmbeddedPermissionPromptPreviouslyGrante
- std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
- std::vector<ButtonConfiguration> buttons;
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
-- ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
-+ ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
-
-- buttons.emplace_back(
-+ buttons.emplace_back() = {
- l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
-- ButtonType::kStopAllowing, ui::ButtonStyle::kTonal);
-+ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal};
- return buttons;
- }
-
-diff -up chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc
---- chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor 2023-11-29 22:39:54.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc 2023-12-03 17:31:25.750420227 +0100
-@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
- "'version' field of type string");
- }
-
-- brands.emplace_back(*brand, *version);
-+ brands.emplace_back() = {*brand, *version};
- }
-
- client_hints.brands = std::move(brands);
-@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
- "a 'version' field of type string");
- }
-
-- full_version_list.emplace_back(*brand, *version);
-+ full_version_list.emplace_back() = {*brand, *version};
- }
-
- client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc
---- chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100
-+++ chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc 2023-12-03 17:31:25.750420227 +0100
-@@ -197,9 +197,9 @@ class ContactInfoProfileSetter {
- CHECK(observations.empty());
- for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
- metadata.observations()) {
-- observations.emplace_back(proto_observation.type(),
-+ observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
- ProfileTokenQuality::FormSignatureHash(
-- proto_observation.form_hash()));
-+ proto_observation.form_hash())};
- }
- }
- }
-diff -up chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc
---- chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100
-+++ chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc 2023-12-03 17:31:25.751420246 +0100
-@@ -1763,10 +1763,10 @@ std::unique_ptr<AutofillProfile> Autofil
- }
-
- base::span<const uint8_t> observations_data = s.ColumnBlob(3);
-- field_type_values.emplace_back(
-+ field_type_values.emplace_back() = {
- type, s.ColumnString16(1), s.ColumnInt(2),
- std::vector<uint8_t>(observations_data.begin(),
-- observations_data.end()));
-+ observations_data.end())};
-
- if (type == ADDRESS_HOME_COUNTRY) {
- country_code = base::UTF16ToUTF8(s.ColumnString16(1));
-diff -up chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc.no_matching_constructor chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc
---- chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc.no_matching_constructor 2023-11-29 22:39:58.000000000 +0100
-+++ chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc 2023-12-03 17:31:25.751420246 +0100
-@@ -630,7 +630,7 @@ void PasswordManager::OnUserModifiedNonP
- // |driver| might be empty on iOS or in tests.
- int driver_id = driver ? driver->GetId() : 0;
- possible_usernames_.Put(
-- PossibleUsernameFieldIdentifier(driver_id, renderer_id),
-+ PossibleUsernameFieldIdentifier{driver_id, renderer_id},
- PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
- renderer_id, value, base::Time::Now(), driver_id,
- autocomplete_attribute_has_username, is_likely_otp));
-diff -up chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2023-12-03 17:31:25.751420246 +0100
-@@ -1567,7 +1567,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
-
- // Issue readbacks from the surfaces:
- for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
-- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
-+ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
- SkImageInfo dst_info = SkImageInfo::Make(
- size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
- kUnpremul_SkAlphaType);
-diff -up chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/download/save_package.cc
---- chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/content/browser/download/save_package.cc 2023-12-03 17:31:25.752420265 +0100
-@@ -767,8 +767,8 @@ void SavePackage::Finish() {
- if (download_) {
- std::vector<download::DownloadSaveItemData::ItemInfo> files;
- for (auto& item : saved_success_items_) {
-- files.emplace_back(item.second->full_path(), item.second->url(),
-- item.second->referrer().url);
-+ files.emplace_back() = {item.second->full_path(), item.second->url(),
-+ item.second->referrer().url};
- }
- download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
- }
-diff -up chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc
---- chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc 2023-12-03 17:31:25.752420265 +0100
-@@ -3002,10 +3002,10 @@ DoGetKAnonymityData(sql::Database& db,
-
- std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
- while (interest_group_kanon_query.Step()) {
-- k_anon_data.emplace_back(
-+ k_anon_data.emplace_back() = {
- /*key=*/interest_group_kanon_query.ColumnString(0),
- /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
-- /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
-+ /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
- }
- if (!interest_group_kanon_query.Succeeded()) {
- return absl::nullopt;
-diff -up chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc 2023-12-03 20:49:28.059042672 +0100
-@@ -8685,7 +8685,7 @@ void RenderFrameHostImpl::SendFencedFram
- for (const blink::FencedFrame::ReportingDestination& destination :
- destinations) {
- SendFencedFrameReportingBeaconInternal(
-- DestinationEnumEvent(event_type, event_data), destination,
-+ DestinationEnumEvent{event_type, event_data}, destination,
- /*from_renderer=*/true, attribution_reporting_runtime_features);
- }
- }
-@@ -8720,7 +8720,7 @@ void RenderFrameHostImpl::SendFencedFram
- }
-
- SendFencedFrameReportingBeaconInternal(
-- DestinationURLEvent(destination_url),
-+ DestinationURLEvent{destination_url},
- blink::FencedFrame::ReportingDestination::kBuyer,
- /*from_renderer=*/true, attribution_reporting_runtime_features);
- }
-@@ -8820,7 +8820,7 @@ void RenderFrameHostImpl::MaybeSendFence
- data = info->data;
- }
- initiator_rfh->SendFencedFrameReportingBeaconInternal(
-- AutomaticBeaconEvent(event_type, data), destination,
-+ AutomaticBeaconEvent{event_type, data}, destination,
- /*from_renderer=*/false, attribution_reporting_features,
- navigation_request.GetNavigationId());
- }
-@@ -8832,7 +8832,7 @@ void RenderFrameHostImpl::MaybeSendFence
- for (blink::FencedFrame::ReportingDestination destination :
- info->destinations) {
- initiator_rfh->SendFencedFrameReportingBeaconInternal(
-- AutomaticBeaconEvent(event_type, info->data), destination,
-+ AutomaticBeaconEvent{event_type, info->data}, destination,
- /*from_renderer=*/false, info->attribution_reporting_runtime_features,
- navigation_request.GetNavigationId());
- }
-diff -up chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-120.0.6099.56/net/dns/host_resolver_cache.cc
---- chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor 2023-11-29 22:40:07.000000000 +0100
-+++ chromium-120.0.6099.56/net/dns/host_resolver_cache.cc 2023-12-03 17:31:25.754420303 +0100
-@@ -368,7 +368,7 @@ void HostResolverCache::Set(
-
- std::string domain_name = result->domain_name();
- entries_.emplace(
-- Key(std::move(domain_name), network_anonymization_key),
-+ Key{std::move(domain_name), network_anonymization_key},
- Entry(std::move(result), source, secure, staleness_generation));
-
- if (entries_.size() > max_entries_) {
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h 2023-12-03 17:31:25.754420303 +0100
-@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
- Color::ColorSpace color_interpolation_space,
- absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
- return base::AdoptRef(new FontPalette(
-- start, end, NonNormalizedPercentages(start_percentage, end_percentage),
-+ start, end, NonNormalizedPercentages{start_percentage, end_percentage},
- normalized_percentage, alpha_multiplier, color_interpolation_space,
- hue_interpolation_method));
- }
-@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
- double normalized_percentage) {
- double end_percentage = normalized_percentage * 100.0;
- double start_percentage = 100.0 - end_percentage;
-- return NonNormalizedPercentages(start_percentage, end_percentage);
-+ return NonNormalizedPercentages{start_percentage, end_percentage};
- }
-
- double GetAlphaMultiplier() const {
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2023-12-03 17:31:25.755420323 +0100
-@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
- color_interpolation_space, hue_interpolation_method, start_color,
- end_color, percentage, alpha_multiplier);
-
-- FontPalette::FontPaletteOverride result_color_record(i, result_color);
-+ FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
- result_color_records.push_back(result_color_record);
- }
- return result_color_records;
-diff -up chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
---- chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor 2023-11-29 22:41:46.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2023-12-03 17:31:25.756420342 +0100
-@@ -491,7 +491,7 @@ void CPDF_RenderStatus::ProcessClipPath(
- } else {
- m_pDevice->SetClip_PathFill(
- *pPath, &mtObj2Device,
-- CFX_FillRenderOptions(ClipPath.GetClipType(i)));
-+ CFX_FillRenderOptions{ClipPath.GetClipType(i)});
- }
- }
-
-diff -up chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h
---- chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100
-+++ chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h 2023-12-03 17:31:25.755420323 +0100
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
- zcr_color_manager_v1_chromaticity_names,
- PrimaryVersion>(
- {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
-- kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
-- kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
-- kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
-- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
-- kDefaultSinceVersion)},
-+ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::BT470M,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::SMPTE240M,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::XYZ_D50,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::SMPTEST428_1,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::SMPTEST431_2,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
-- PrimaryVersion(
-+ PrimaryVersion{
- gfx::ColorSpace::PrimaryID::FILM,
-- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
-+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
-
- // A map from the zcr_color_manager_v1 eotf_names enum values
- // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
- zcr_color_manager_v1_eotf_names,
- TransferVersion>({
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
-- TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
-- kDefaultSinceVersion)},
-+ TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
-- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
-+ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
-- TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
-- TransferVersion(gfx::ColorSpace::TransferID::BT709,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::BT709,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
-- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
-- kDefaultSinceVersion)},
-+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
- // This is ever so slightly inaccurate. The number ought to be
- // 2.19921875f, not 2.2
-- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
-- kDefaultSinceVersion)},
-+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
-- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
-+ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
-- TransferVersion(gfx::ColorSpace::TransferID::HLG,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::HLG,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
-- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
-- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
-- TransferVersion(
-+ TransferVersion{
- gfx::ColorSpace::TransferID::SMPTEST428_1,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
-- TransferVersion(gfx::ColorSpace::TransferID::LOG,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::LOG,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
-- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
-- TransferVersion(
-+ TransferVersion{
- gfx::ColorSpace::TransferID::IEC61966_2_4,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
-- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
-- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
-- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
-- TransferVersion(
-+ TransferVersion{
- gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
-- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
-- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
-+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
- });
-
- // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
- constexpr auto kTransferMap =
- base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
-- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
-- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
-- TransferFnVersion(
-+ TransferFnVersion{
- SkNamedTransferFnExt::kRec709,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
-- TransferFnVersion(gamma24, kDefaultSinceVersion)},
-+ TransferFnVersion{gamma24, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
-- TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
-- kDefaultSinceVersion)},
-+ TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
-+ kDefaultSinceVersion}},
- });
-
- // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
- constexpr auto kHDRTransferMap =
- base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
- {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
-- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
-- TransferFnVersion(
-+ TransferFnVersion{
- SkNamedTransferFnExt::kSRGB,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
-- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
-+ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
-- TransferFnVersion(SkNamedTransferFn::kHLG,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+ TransferFnVersion{SkNamedTransferFn::kHLG,
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
-- TransferFnVersion(
-+ TransferFnVersion{
- SkNamedTransferFnExt::kSRGBExtended1023Over510,
-- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
-+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
-
- // A map from zcr_color_manager_v1 matrix_names enum values to
- // gfx::ColorSpace::MatrixIDs.
- constexpr auto kMatrixMap =
- base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
- {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
-- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
-- MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
-- kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
-- MatrixVersion(
-+ MatrixVersion{
- gfx::ColorSpace::MatrixID::BT470BG,
-- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
-+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
-- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
-- kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
-- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
-- kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
-- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
-- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
-- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
-+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
-- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
-- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
-+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
-- MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
-- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
-+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
-- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
-- kDefaultSinceVersion)},
-+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
-- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
-- kDefaultSinceVersion)}});
-+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
-+ kDefaultSinceVersion}}});
-
- // A map from zcr_color_manager_v1 range_names enum values to
- // gfx::ColorSpace::RangeIDs.
- constexpr auto kRangeMap =
- base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
- {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
-- RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
-- kDefaultSinceVersion)},
-+ RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
-+ kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
-- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
-+ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
- {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
-- RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
-- kDefaultSinceVersion)}});
-+ RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
-+ kDefaultSinceVersion}}});
-
- zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
- gfx::ColorSpace::PrimaryID primaryID,
-@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM
-
- } // namespace ui::wayland
-
--#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-\ Kein Zeilenumbruch am Dateiende.
-+#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-diff -up chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-120.0.6099.56/ui/gtk/gtk_ui.cc
---- chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100
-+++ chromium-120.0.6099.56/ui/gtk/gtk_ui.cc 2023-12-03 17:31:25.756420342 +0100
-@@ -1013,11 +1013,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
- GdkRectangle geometry;
- gdk_monitor_get_geometry(monitor, &geometry);
- int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
-- config.display_geometries.emplace_back(
-+ config.display_geometries.emplace_back() = {
- gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
- monitor_scale * geometry.width,
- monitor_scale * geometry.height),
-- monitor_scale * font_scale);
-+ static_cast<float>(monitor_scale * font_scale)};
- }
- return config;
- }
diff --git a/chromium-120-nullptr_t-without-namespace-std.patch b/chromium-120-nullptr_t-without-namespace-std.patch
deleted file mode 100644
index 4043d6f..0000000
--- a/chromium-120-nullptr_t-without-namespace-std.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h.than chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h
---- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h.than 2023-11-26 18:19:11.355117176 +0100
-+++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h 2023-11-26 18:20:21.090366036 +0100
-@@ -184,7 +184,7 @@ struct Arg {
- //
- // Warning: don't just do Arg(NULL) here because in some libcs, NULL is an
- // alias for nullptr!
-- Arg(nullptr_t p) : type(INT) {
-+ Arg(std::nullptr_t p) : type(INT) {
- integer.i = 0;
- // Internally, SafeSprintf expects to represent nulls as integers whose
- // width is equal to sizeof(NULL), which is not necessarily equal to
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h
---- chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than 2023-12-04 10:20:45.350540897 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h 2023-12-04 10:23:17.335339670 +0100
-@@ -21,7 +21,7 @@ class FragmentDataIteratorBase {
-
- public:
- explicit FragmentDataIteratorBase(Head& head) : fragment_head_(head) {}
-- explicit FragmentDataIteratorBase(nullptr_t) {}
-+ explicit FragmentDataIteratorBase(std::nullptr_t) {}
-
- Data* GetFragmentData() const {
- return !IsDone() ? &fragment_head_.at(idx_) : nullptr;
diff --git a/chromium-120-typename.patch b/chromium-120-typename.patch
deleted file mode 100644
index 9a2d878..0000000
--- a/chromium-120-typename.patch
+++ /dev/null
@@ -1,205 +0,0 @@
---- chromium-120.0.6099.56/base/containers/map_util.h.me 2023-12-02 19:00:19.696801563 +0100
-+++ chromium-120.0.6099.56/base/containers/map_util.h 2023-12-02 19:00:47.049337547 +0100
-@@ -42,7 +42,7 @@
- template <typename Map,
- typename Key,
- typename MappedElementType =
-- std::pointer_traits<internal::MappedType<Map>>::element_type>
-+ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
- constexpr const MappedElementType* FindPtrOrNull(const Map& map,
- const Key& key) {
- auto it = map.find(key);
-@@ -58,7 +58,7 @@
- template <typename Map,
- typename Key,
- typename MappedElementType =
-- std::pointer_traits<internal::MappedType<Map>>::element_type>
-+ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
- constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) {
- auto it = map.find(key);
- return it != map.end() ? std::to_address(it->second) : nullptr;
-diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc
---- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-06-17 14:50:56.342591702 +0200
-+++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-06-17 14:57:48.024377375 +0200
-@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item)
- // Helper to get an iterator to the last element in the cache. The cache
- // must not be empty.
- template <typename Item>
--SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
-+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
- CHECK(!cache.empty());
- auto it = cache.end();
- return std::prev(it);
-@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM
- }
-
- template <typename Id, typename Item>
--SortedItems<Item>::iterator
-+typename SortedItems<Item>::iterator
- DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
-- SortedItems<Item>::iterator iter,
-+ typename SortedItems<Item>::iterator iter,
- SortedItems<Item>& cache,
- IterMap<Id, Item>& iter_map) {
- CHECK(iter != cache.end());
-diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h
---- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me 2023-06-18 21:52:53.515625237 +0200
-+++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h 2023-06-18 21:53:06.881881293 +0200
-@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model
- void SendForBatchExecution(
- BatchExecutionCallback callback_on_complete,
- base::TimeTicks start_time,
-- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
- override {
- DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
---- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me 2023-06-19 10:03:32.319218678 +0200
-+++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2023-06-19 10:04:12.023942232 +0200
-@@ -169,7 +169,7 @@ class HTMLFastPathParser {
- using Span = base::span<const Char>;
- using USpan = base::span<const UChar>;
- // 32 matches that used by HTMLToken::Attribute.
-- typedef std::conditional<std::is_same_v<Char, UChar>,
-+ typedef typename std::conditional<std::is_same_v<Char, UChar>,
- UCharLiteralBuffer<32>,
- LCharLiteralBuffer<32>>::type LiteralBufferType;
- typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
-diff -up chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h
---- chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me 2023-08-02 16:18:30.380108125 +0200
-+++ chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h 2023-08-02 16:20:59.660024578 +0200
-@@ -127,10 +127,10 @@ class CONTENT_EXPORT WebUIBrowserInterfa
- //
- // TODO(crbug.com/1407936): Point to WebUIJsBridge documentation.
- template <typename ControllerType>
-- JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
-+ typename JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
- using Traits = JsBridgeTraits<ControllerType>;
-- using Interface = Traits::Interface;
-- using JsBridgeBinderInitializer = Traits::BinderInitializer;
-+ using Interface = typename Traits::Interface;
-+ using JsBridgeBinderInitializer = typename Traits::BinderInitializer;
-
- // WebUIController::GetType() requires an instantiated WebUIController
- // (because it's a virtual method and can't be static). Here we only have
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
---- chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me 2023-08-02 20:41:23.984729462 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2023-08-02 20:41:53.737583093 +0200
-@@ -270,8 +270,8 @@ class CORE_EXPORT ObjectPaintPropertiesS
- NodeList& nodes,
- NodeId node_id,
- const ParentType& parent,
-- NodeType::State&& state,
-- const NodeType::AnimationState& animation_state =
-+ typename NodeType::State&& state,
-+ const typename NodeType::AnimationState& animation_state =
- NodeType::AnimationState()) {
- // First, check if we need to add a new node.
- if (!nodes.HasField(node_id)) {
-diff -up chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h
---- chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me 2023-09-15 10:22:51.889698402 +0200
-+++ chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h 2023-09-15 10:28:26.702716224 +0200
-@@ -234,7 +234,7 @@ class TFLiteModelExecutor : public Model
- // Starts the synchronous execution of the model. Returns model outputs.
- // Model needs to be loaded. Synchronous calls do not load or unload model.
- std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
-- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
- override {
- DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -389,7 +389,7 @@ class TFLiteModelExecutor : public Model
- // executes it on the model execution thread.
- void LoadModelFileAndBatchExecute(
- BatchExecutionCallback callback_on_complete,
-- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
-+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
- DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-@@ -406,7 +406,7 @@ class TFLiteModelExecutor : public Model
-
- // Batch executes the loaded model for inputs.
- void BatchExecuteLoadedModel(
-- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
- std::vector<absl::optional<OutputType>>* outputs) {
- DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -466,7 +466,7 @@ class TFLiteModelExecutor : public Model
- // Unloads the model if needed.
- void BatchExecuteLoadedModelAndRunCallback(
- BatchExecutionCallback callback_on_complete,
-- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
- ExecutionStatus execution_status) {
- DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc
---- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me 2023-09-15 17:20:22.550657586 +0200
-+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc 2023-09-15 17:24:11.396716734 +0200
-@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
- RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
- RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
-
-- void Start(ProtoFetcher<Response>::Callback callback) override {
-+ void Start(typename ProtoFetcher<Response>::Callback callback) override {
- callback_ = std::move(callback);
- Retry();
- }
-@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
- }
-
- // Client callback.
-- ProtoFetcher<Response>::Callback callback_;
-+ typename ProtoFetcher<Response>::Callback callback_;
-
- // Retry controls.
- base::OneShotTimer timer_;
-@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
- template <typename Request, typename Response>
- void ParallelFetchManager<Request, Response>::Fetch(
- const Request& request,
-- Fetcher::Callback callback) {
-+ typename Fetcher::Callback callback) {
- CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
- KeyType key = requests_in_flight_.Add(MakeFetcher(request));
- requests_in_flight_.Lookup(key)->Start(
-diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h
---- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me 2023-09-15 17:20:56.540460391 +0200
-+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h 2023-09-15 17:22:18.246237817 +0200
-@@ -165,10 +165,10 @@ class ParallelFetchManager {
-
- // Starts the fetch. Underlying fetcher is stored internally, and will be
- // cleaned up after finish or when this manager is destroyed.
-- void Fetch(const Request& request, Fetcher::Callback callback);
-+ void Fetch(const Request& request, typename Fetcher::Callback callback);
-
- private:
-- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
-+ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
-
- // Remove fetcher under key from requests_in_flight_.
- void Remove(KeyType key);
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h
---- chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me 2023-12-04 00:29:35.197209538 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2023-12-04 00:30:24.436233249 +0100
-@@ -220,7 +220,7 @@ class PairAsyncIterable {
- private:
- virtual IterationSource* CreateIterationSource(
- ScriptState* script_state,
-- IterationSource::Kind kind,
-+ typename IterationSource::Kind kind,
- ExceptionState& exception_state) = 0;
- };
-
-@@ -262,7 +262,7 @@ class ValueAsyncIterable {
- private:
- virtual IterationSource* CreateIterationSource(
- ScriptState* script_state,
-- IterationSource::Kind kind,
-+ typename IterationSource::Kind kind,
- ExceptionState& exception_state) = 0;
- };
-
diff --git a/chromium-120-workaround_clang_bug-structured_binding.patch b/chromium-120-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index b06e29f..0000000
--- a/chromium-120-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
---- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200
-+++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200
-@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
- void CdmPromiseAdapter::Clear(ClearReason reason) {
- // Reject all outstanding promises.
- DCHECK(thread_checker_.CalledOnValidThread());
-- for (auto& [promise_id, promise] : promises_) {
-+ for (auto& [p_i, p_e] : promises_) {
-+ auto& promise_id = p_i;
-+ auto& promise = p_e;
- TRACE_EVENT_NESTABLE_ASYNC_END1(
- "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
- "status", "cleared");
-diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
---- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200
-+++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200
-@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
- return;
- }
-
-- auto [document_url, key, callback] = std::move(*request);
-+ auto [d_u, key, callback] = std::move(*request);
-+ auto document_url = d_u;
-
- DCHECK(document_url.is_valid());
- TRACE_EVENT1("ServiceWorker",
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.me chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
---- chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.me 2023-12-03 22:17:50.922083200 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc 2023-12-03 22:22:55.437484343 +0100
-@@ -3447,7 +3447,8 @@ void GridLayoutAlgorithm::PlaceGridItems
- DCHECK(out_row_break_between);
-
- const auto& container_space = ConstraintSpace();
-- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
-+ const auto& [grid_items, l_d, tree_size] = sizing_tree.TreeRootData();
-+ const auto& layout_data = l_d;
-
- const auto* cached_layout_subtree = container_space.GetGridLayoutSubtree();
- const auto container_writing_direction =
-@@ -3611,7 +3612,9 @@ void GridLayoutAlgorithm::PlaceGridItems
-
- // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true.
- const auto& constraint_space = ConstraintSpace();
-- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
-+ const auto& [g_i, l_d, tree_size] = sizing_tree.TreeRootData();
-+ const auto& grid_items = g_i;
-+ const auto& layout_data = l_d;
-
- const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree();
- const auto container_writing_direction =
diff --git a/chromium-121-arm64-memory_tagging.patch b/chromium-121-arm64-memory_tagging.patch
new file mode 100644
index 0000000..cf807dd
--- /dev/null
+++ b/chromium-121-arm64-memory_tagging.patch
@@ -0,0 +1,13 @@
+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
new file mode 100644
index 0000000..a0b7166
--- /dev/null
+++ b/chromium-121-constexpr.patch
@@ -0,0 +1,12 @@
+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-el7-clang-version-warning.patch b/chromium-121-el7-clang-version-warning.patch
new file mode 100644
index 0000000..bc86eb2
--- /dev/null
+++ b/chromium-121-el7-clang-version-warning.patch
@@ -0,0 +1,15 @@
+--- chromium-121.0.6167.57/third_party/libc++/src/include/__config.orig 2024-01-16 18:38:00.995930774 +0100
++++ chromium-121.0.6167.57/third_party/libc++/src/include/__config 2024-01-16 18:43:47.056517289 +0100
+@@ -32,11 +32,7 @@
+
+ // Warn if a compiler version is used that is not supported anymore
+ // LLVM RELEASE Update the minimum compiler versions
+-# if defined(_LIBCPP_CLANG_VER)
+-# if _LIBCPP_CLANG_VER < 1600
+-# warning "Libc++ only supports Clang 16 and later"
+-# endif
+-# elif defined(_LIBCPP_APPLE_CLANG_VER)
++# if defined(_LIBCPP_APPLE_CLANG_VER)
+ # if _LIBCPP_APPLE_CLANG_VER < 1500
+ # warning "Libc++ only supports AppleClang 15 and later"
+ # endif
diff --git a/chromium-121-missing-header-files.patch b/chromium-121-missing-header-files.patch
new file mode 100644
index 0000000..377de0d
--- /dev/null
+++ b/chromium-121-missing-header-files.patch
@@ -0,0 +1,459 @@
+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 --git a/chromium-121-mnemonic-error.patch b/chromium-121-mnemonic-error.patch
new file mode 100644
index 0000000..61239e7
--- /dev/null
+++ b/chromium-121-mnemonic-error.patch
@@ -0,0 +1,12 @@
+diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn.mnemonic-error chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn
+--- chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn.mnemonic-error 2023-12-19 18:14:43.027723832 +0100
++++ chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn 2023-12-19 18:39:47.492384620 +0100
+@@ -1731,8 +1731,6 @@ action_foreach("element_locator_test_pro
+ python_path_root = "${root_out_dir}/pyproto"
+ python_path_proto = "${python_path_root}/third_party/blink/renderer/core/lcp_critical_path_predictor"
+
+- mnemonic = "ELOC_PROTO"
+-
+ source_dir = "lcp_critical_path_predictor/test_proto"
+ sources = rebase_path([ "lcp_image_id.asciipb" ], "", source_dir)
+ sources += rebase_path([ "lcp_image_id_b.asciipb" ], "", source_dir)
diff --git a/chromium-121-no_matching_constructor.patch b/chromium-121-no_matching_constructor.patch
new file mode 100644
index 0000000..332a91a
--- /dev/null
+++ b/chromium-121-no_matching_constructor.patch
@@ -0,0 +1,945 @@
+diff -up chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc
+--- chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100
++++ chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc 2023-12-03 17:31:25.748420189 +0100
+@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo
+ // The sample-record could be for any sparse histogram. Add the reference
+ // to the appropriate collection for later use.
+ if (found_id == match_id) {
+- found_records.emplace_back(ref, value);
++ found_records.emplace_back() = {ref, value};
+ found = true;
+ } else {
+ std::vector<ReferenceAndSample>* samples =
+ GetSampleMapRecordsWhileLocked(found_id);
+ CHECK(samples);
+- samples->emplace_back(ref, value);
++ samples->emplace_back() = {ref, value};
+ }
+ }
+
+diff -up chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor chromium-120.0.6099.56/base/trace_event/trace_log.cc
+--- chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100
++++ chromium-120.0.6099.56/base/trace_event/trace_log.cc 2023-12-03 17:31:25.749420208 +0100
+@@ -2191,8 +2191,8 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+ AutoLock lock(track_event_lock_);
+- track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+- args.backend_type);
++ track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++ args.backend_type};
+ }
+
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor 2023-11-29 22:39:47.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc 2023-12-03 17:31:25.749420208 +0100
+@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
+
+ while (rule_iterator && rule_iterator->HasNext()) {
+ auto rule = rule_iterator->Next();
+- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
+- rule->secondary_pattern);
++ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
++ rule->secondary_pattern};
+ permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
+ setting_type,
+ permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
+@@ -329,8 +329,8 @@ void OneTimePermissionProvider::DeleteEn
+ auto rule = rule_iterator->Next();
+ if (rule->primary_pattern.Matches(origin_gurl) &&
+ rule->secondary_pattern.Matches(origin_gurl)) {
+- patterns_to_delete.emplace_back(
+- content_setting_type, rule->primary_pattern, rule->secondary_pattern);
++ patterns_to_delete.emplace_back() = {
++ content_setting_type, rule->primary_pattern, rule->secondary_pattern};
+ permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
+ content_setting_type, trigger_event);
+ }
+diff -up chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor 2023-11-29 22:39:48.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2023-12-03 17:31:25.749420208 +0100
+@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
+ // TODO(crbug.com/1445072): Add actual domains with attribute names.
+ profile_attributes->insert(std::make_pair(
+ "supported.test",
+- SAMLProfileAttributes("placeholderName", "placeholderDomain",
+- "placeholderToken")));
++ SAMLProfileAttributes{"placeholderName", "placeholderDomain",
++ "placeholderToken"}));
+
+ // Extract domains and attributes from the command line switch.
+ const base::CommandLine& command_line =
+diff -up chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2023-12-03 17:31:25.749420208 +0100
+@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
+ alternative_nav_match);
+
+ // Store the details necessary to open the omnibox match via browser commands.
+- location_bar_->set_navigation_params(LocationBar::NavigationParams(
++ location_bar_->set_navigation_params(LocationBar::NavigationParams{
+ destination_url, disposition, transition, match_selection_timestamp,
+ destination_url_entered_without_scheme,
+- destination_url_entered_with_http_scheme));
++ destination_url_entered_with_http_scheme});
+
+ if (browser_) {
+ auto navigation = chrome::OpenCurrentURL(browser_);
+diff -up chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc
+--- chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc 2023-12-03 17:31:25.756420342 +0100
+@@ -148,8 +148,8 @@ SafetyHubMenuNotificationService::GetNot
+ // The information related to showing the notification needs to be persisted
+ // as well.
+ SaveNotificationsToPrefs();
+- return MenuNotificationEntry(notification_to_show->GetNotificationCommandId(),
+- notification_to_show->GetNotificationString());
++ return MenuNotificationEntry{notification_to_show->GetNotificationCommandId(),
++ notification_to_show->GetNotificationString()};
+ }
+
+ absl::optional<ResultMap>
+diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2023-12-03 17:31:25.749420208 +0100
+@@ -55,12 +55,12 @@ std::vector<EmbeddedPermissionPromptAskV
+ EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
+ std::vector<ButtonConfiguration> buttons;
+ if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
+- buttons.emplace_back(
++ buttons.emplace_back() = {
+ l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
+- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
+ }
+- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+- ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId);
++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
++ ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId};
+ return buttons;
+ }
+
+diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2023-12-03 17:31:25.750420227 +0100
+@@ -86,6 +86,7 @@ class EmbeddedPermissionPromptBaseView :
+ struct RequestLineConfiguration {
+ const raw_ptr<const gfx::VectorIcon> icon;
+ std::u16string message;
++ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+ };
+
+ struct ButtonConfiguration {
+diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100
++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2023-12-03 17:31:25.750420227 +0100
+@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
+ std::vector<ButtonConfiguration> buttons;
+- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
+- ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
++ ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
+ return buttons;
+ }
+
+diff -up chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc
+--- chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor 2023-11-29 22:39:54.000000000 +0100
++++ chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc 2023-12-03 17:31:25.750420227 +0100
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+ "'version' field of type string");
+ }
+
+- brands.emplace_back(*brand, *version);
++ brands.emplace_back() = {*brand, *version};
+ }
+
+ client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+ "a 'version' field of type string");
+ }
+
+- full_version_list.emplace_back(*brand, *version);
++ full_version_list.emplace_back() = {*brand, *version};
+ }
+
+ client_hints.full_version_list = std::move(full_version_list);
+diff -up chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100
++++ chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc 2023-12-03 17:31:25.750420227 +0100
+@@ -197,9 +197,9 @@ class ContactInfoProfileSetter {
+ CHECK(observations.empty());
+ for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+ metadata.observations()) {
+- observations.emplace_back(proto_observation.type(),
++ observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+ ProfileTokenQuality::FormSignatureHash(
+- proto_observation.form_hash()));
++ proto_observation.form_hash())};
+ }
+ }
+ }
+diff -up chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc
+--- chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100
++++ chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc 2023-12-03 17:31:25.751420246 +0100
+@@ -1763,10 +1763,10 @@ std::unique_ptr<AutofillProfile> Autofil
+ }
+
+ base::span<const uint8_t> observations_data = s.ColumnBlob(3);
+- field_type_values.emplace_back(
++ field_type_values.emplace_back() = {
+ type, s.ColumnString16(1), s.ColumnInt(2),
+ std::vector<uint8_t>(observations_data.begin(),
+- observations_data.end()));
++ observations_data.end())};
+
+ if (type == ADDRESS_HOME_COUNTRY) {
+ country_code = base::UTF16ToUTF8(s.ColumnString16(1));
+diff -up chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
++++ chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2023-12-03 17:31:25.751420246 +0100
+@@ -1567,7 +1567,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+
+ // Issue readbacks from the surfaces:
+ for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
+- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
++ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
+ SkImageInfo dst_info = SkImageInfo::Make(
+ size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
+ kUnpremul_SkAlphaType);
+diff -up chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/download/save_package.cc
+--- chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
++++ chromium-120.0.6099.56/content/browser/download/save_package.cc 2023-12-03 17:31:25.752420265 +0100
+@@ -767,8 +767,8 @@ void SavePackage::Finish() {
+ if (download_) {
+ std::vector<download::DownloadSaveItemData::ItemInfo> files;
+ for (auto& item : saved_success_items_) {
+- files.emplace_back(item.second->full_path(), item.second->url(),
+- item.second->referrer().url);
++ files.emplace_back() = {item.second->full_path(), item.second->url(),
++ item.second->referrer().url};
+ }
+ download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
+ }
+diff -up chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc
+--- chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100
++++ chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc 2023-12-03 17:31:25.752420265 +0100
+@@ -3002,10 +3002,10 @@ DoGetKAnonymityData(sql::Database& db,
+
+ std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
+ while (interest_group_kanon_query.Step()) {
+- k_anon_data.emplace_back(
++ k_anon_data.emplace_back() = {
+ /*key=*/interest_group_kanon_query.ColumnString(0),
+ /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
+- /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
++ /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
+ }
+ if (!interest_group_kanon_query.Succeeded()) {
+ return absl::nullopt;
+diff -up chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-120.0.6099.56/net/dns/host_resolver_cache.cc
+--- chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor 2023-11-29 22:40:07.000000000 +0100
++++ chromium-120.0.6099.56/net/dns/host_resolver_cache.cc 2023-12-03 17:31:25.754420303 +0100
+@@ -368,7 +368,7 @@ void HostResolverCache::Set(
+
+ std::string domain_name = result->domain_name();
+ entries_.emplace(
+- Key(std::move(domain_name), network_anonymization_key),
++ Key{std::move(domain_name), network_anonymization_key},
+ Entry(std::move(result), source, secure, staleness_generation));
+
+ if (entries_.size() > max_entries_) {
+diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100
++++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h 2023-12-03 17:31:25.754420303 +0100
+@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
+ Color::ColorSpace color_interpolation_space,
+ absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
+ return base::AdoptRef(new FontPalette(
+- start, end, NonNormalizedPercentages(start_percentage, end_percentage),
++ start, end, NonNormalizedPercentages{start_percentage, end_percentage},
+ normalized_percentage, alpha_multiplier, color_interpolation_space,
+ hue_interpolation_method));
+ }
+@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
+ double normalized_percentage) {
+ double end_percentage = normalized_percentage * 100.0;
+ double start_percentage = 100.0 - end_percentage;
+- return NonNormalizedPercentages(start_percentage, end_percentage);
++ return NonNormalizedPercentages{start_percentage, end_percentage};
+ }
+
+ double GetAlphaMultiplier() const {
+diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100
++++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2023-12-03 17:31:25.755420323 +0100
+@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
+ color_interpolation_space, hue_interpolation_method, start_color,
+ end_color, percentage, alpha_multiplier);
+
+- FontPalette::FontPaletteOverride result_color_record(i, result_color);
++ FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
+ result_color_records.push_back(result_color_record);
+ }
+ return result_color_records;
+diff -up chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
+--- chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor 2023-11-29 22:41:46.000000000 +0100
++++ chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2023-12-03 17:31:25.756420342 +0100
+@@ -491,7 +491,7 @@ void CPDF_RenderStatus::ProcessClipPath(
+ } else {
+ m_pDevice->SetClip_PathFill(
+ *pPath, &mtObj2Device,
+- CFX_FillRenderOptions(ClipPath.GetClipType(i)));
++ CFX_FillRenderOptions{ClipPath.GetClipType(i)});
+ }
+ }
+
+diff -up chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h
+--- chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100
++++ chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h 2023-12-03 17:31:25.755420323 +0100
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+ zcr_color_manager_v1_chromaticity_names,
+ PrimaryVersion>(
+ {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+- kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+- kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+- kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+- kDefaultSinceVersion)},
++ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::BT470M,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::SMPTE240M,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::XYZ_D50,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+- PrimaryVersion(
++ PrimaryVersion{
+ gfx::ColorSpace::PrimaryID::FILM,
+- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
+ zcr_color_manager_v1_eotf_names,
+ TransferVersion>({
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+- TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+- kDefaultSinceVersion)},
++ TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+- TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+- TransferVersion(gfx::ColorSpace::TransferID::BT709,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::BT709,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+- kDefaultSinceVersion)},
++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+ // This is ever so slightly inaccurate. The number ought to be
+ // 2.19921875f, not 2.2
+- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+- kDefaultSinceVersion)},
++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+- TransferVersion(gfx::ColorSpace::TransferID::HLG,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::HLG,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+- TransferVersion(
++ TransferVersion{
+ gfx::ColorSpace::TransferID::SMPTEST428_1,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+- TransferVersion(gfx::ColorSpace::TransferID::LOG,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::LOG,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+- TransferVersion(
++ TransferVersion{
+ gfx::ColorSpace::TransferID::IEC61966_2_4,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+- TransferVersion(
++ TransferVersion{
+ gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+ base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+- TransferFnVersion(
++ TransferFnVersion{
+ SkNamedTransferFnExt::kRec709,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+- TransferFnVersion(gamma24, kDefaultSinceVersion)},
++ TransferFnVersion{gamma24, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+- TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+- kDefaultSinceVersion)},
++ TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++ kDefaultSinceVersion}},
+ });
+
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+ base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+ {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+- TransferFnVersion(
++ TransferFnVersion{
+ SkNamedTransferFnExt::kSRGB,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+- TransferFnVersion(SkNamedTransferFn::kHLG,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++ TransferFnVersion{SkNamedTransferFn::kHLG,
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+- TransferFnVersion(
++ TransferFnVersion{
+ SkNamedTransferFnExt::kSRGBExtended1023Over510,
+- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+ base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+ {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+- MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+- kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+- MatrixVersion(
++ MatrixVersion{
+ gfx::ColorSpace::MatrixID::BT470BG,
+- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+- kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
+- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
+- kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+- MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+- kDefaultSinceVersion)},
++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+- kDefaultSinceVersion)}});
++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++ kDefaultSinceVersion}}});
+
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+ base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+ {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+- RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+- kDefaultSinceVersion)},
++ RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++ kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+ {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+- RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+- kDefaultSinceVersion)}});
++ RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++ kDefaultSinceVersion}}});
+
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+ gfx::ColorSpace::PrimaryID primaryID,
+@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM
+
+ } // namespace ui::wayland
+
+-#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-120.0.6099.56/ui/gtk/gtk_ui.cc
+--- chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100
++++ chromium-120.0.6099.56/ui/gtk/gtk_ui.cc 2023-12-03 17:31:25.756420342 +0100
+@@ -1013,11 +1013,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+ GdkRectangle geometry;
+ gdk_monitor_get_geometry(monitor, &geometry);
+ int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+- config.display_geometries.emplace_back(
++ config.display_geometries.emplace_back() = {
+ gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+ monitor_scale * geometry.width,
+ monitor_scale * geometry.height),
+- monitor_scale * font_scale);
++ static_cast<float>(monitor_scale * font_scale)};
+ }
+ return config;
+ }
+diff -up chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
+--- chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than 2023-12-19 17:13:15.116949814 +0100
++++ chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2023-12-19 17:27:18.807102716 +0100
+@@ -66,17 +66,17 @@ EmbeddedPermissionPromptPreviouslyDenied
+ std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
+ std::vector<ButtonConfiguration> buttons;
+- buttons.emplace_back(
++ buttons.emplace_back() = {
+ l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
+- ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
++ ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
+
+ if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
+- buttons.emplace_back(
++ buttons.emplace_back() = {
+ l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
+- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId);
++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId};
+ } else {
+- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+- ButtonType::kAllow, ui::ButtonStyle::kTonal);
++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
++ ButtonType::kAllow, ui::ButtonStyle::kTonal};
+ }
+ return buttons;
+ }
+diff -up chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than 2023-12-19 17:39:17.818834020 +0100
++++ chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2023-12-19 17:44:15.346337876 +0100
+@@ -61,13 +61,13 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
+ std::vector<ButtonConfiguration> buttons;
+- buttons.emplace_back(
++ buttons.emplace_back() = {
+ l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
+- ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
++ ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
+
+- buttons.emplace_back(
++ buttons.emplace_back() = {
+ l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+- ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId);
++ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
+ return buttons;
+ }
+
+diff -up chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc.than chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc
+--- chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc.than 2023-12-19 17:39:17.819834039 +0100
++++ chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc 2023-12-19 17:48:33.144389081 +0100
+@@ -666,7 +666,7 @@ void PasswordManager::OnUserModifiedNonP
+ it->second.last_change = base::Time::Now();
+ } else {
+ possible_usernames_.Put(
+- PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++ PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+ PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+ renderer_id, value, base::Time::Now(), driver_id,
+ autocomplete_attribute_has_username,
+diff -up chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc.than 2023-12-19 17:39:17.825834156 +0100
++++ chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc 2023-12-19 17:53:43.153283847 +0100
+@@ -8561,7 +8561,7 @@ void RenderFrameHostImpl::SendFencedFram
+ for (const blink::FencedFrame::ReportingDestination& destination :
+ destinations) {
+ SendFencedFrameReportingBeaconInternal(
+- DestinationEnumEvent(event_type, event_data), destination,
++ DestinationEnumEvent{event_type, event_data}, destination,
+ attribution_reporting_runtime_features);
+ }
+ }
+@@ -8593,7 +8593,7 @@ void RenderFrameHostImpl::SendFencedFram
+ }
+
+ SendFencedFrameReportingBeaconInternal(
+- DestinationURLEvent(destination_url),
++ DestinationURLEvent{destination_url},
+ blink::FencedFrame::ReportingDestination::kBuyer,
+ attribution_reporting_runtime_features);
+ }
+@@ -8730,7 +8730,7 @@ void RenderFrameHostImpl::MaybeSendFence
+ data = info->data;
+ }
+ initiator_rfh->SendFencedFrameReportingBeaconInternal(
+- AutomaticBeaconEvent(event_type, data), destination,
++ AutomaticBeaconEvent{event_type, data}, destination,
+ attribution_reporting_features, navigation_request.GetNavigationId());
+ }
+ } else {
+@@ -8741,7 +8741,7 @@ void RenderFrameHostImpl::MaybeSendFence
+ for (blink::FencedFrame::ReportingDestination destination :
+ info->destinations) {
+ initiator_rfh->SendFencedFrameReportingBeaconInternal(
+- AutomaticBeaconEvent(event_type, info->data), destination,
++ AutomaticBeaconEvent{event_type, info->data}, destination,
+ info->attribution_reporting_runtime_features,
+ navigation_request.GetNavigationId());
+ }
+diff -up chromium-121.0.6167.57/base/nix/mime_util_xdg.cc.me chromium-121.0.6167.57/base/nix/mime_util_xdg.cc
+--- chromium-121.0.6167.57/base/nix/mime_util_xdg.cc.me 2024-01-21 16:54:15.261844448 +0100
++++ chromium-121.0.6167.57/base/nix/mime_util_xdg.cc 2024-01-21 16:55:48.705577424 +0100
+@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap&
+ for (const auto& path : GetXDGDataSearchLocations(env.get())) {
+ FilePath mime_cache = path.Append("mime/mime.cache");
+ if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) {
+- files.emplace_back(mime_cache, info.last_modified);
++ files.emplace_back() = {mime_cache, info.last_modified};
+ }
+ }
+ }
+diff -up chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc.me chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc
+--- chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc.me 2024-01-21 18:11:31.397859608 +0100
++++ chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc 2024-01-21 18:20:07.715415037 +0100
+@@ -239,7 +239,7 @@ void WorkerWatcher::OnWorkerCreated(
+ DCHECK(insertion_result.second);
+
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&,
+ this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+ AddFrameClientConnection(insertion_result.first->second.get(),
+@@ -248,7 +248,7 @@ void WorkerWatcher::OnWorkerCreated(
+ [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+ ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
+ dedicated_worker_token);
+- }),
++ }},
+ creator);
+ }
+
+@@ -265,7 +265,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+ // First disconnect the creator's node from this worker node.
+
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&,
+ this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+ RemoveFrameClientConnection(worker_node.get(),
+@@ -274,7 +274,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+ [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+ DisconnectDedicatedWorkerClient(worker_node.get(),
+ dedicated_worker_token);
+- }),
++ }},
+ creator);
+
+ // Disconnect all child workers before destroying the node.
+@@ -446,7 +446,7 @@ void WorkerWatcher::OnControlleeAdded(
+ const std::string& client_uuid,
+ const content::ServiceWorkerClientInfo& client_info) {
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+ // For window clients, it is necessary to wait until the navigation
+ // has committed to a RenderFrameHost.
+@@ -484,7 +484,7 @@ void WorkerWatcher::OnControlleeAdded(
+ ConnectSharedWorkerClient(service_worker_node,
+ shared_worker_token);
+ }
+- }),
++ }},
+ client_info);
+ }
+
+@@ -524,7 +524,7 @@ void WorkerWatcher::OnControlleeRemoved(
+ return;
+
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+ RemoveFrameClientConnection(worker_node, render_frame_host_id);
+ },
+@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved(
+ },
+ [&, this](blink::SharedWorkerToken shared_worker_token) {
+ DisconnectSharedWorkerClient(worker_node, shared_worker_token);
+- }),
++ }},
+ client);
+ }
+
+@@ -810,7 +810,7 @@ void WorkerWatcher::ConnectAllServiceWor
+
+ for (const auto& kv : it->second) {
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+ AddFrameClientConnection(service_worker_node,
+ render_frame_host_id);
+@@ -822,7 +822,7 @@ void WorkerWatcher::ConnectAllServiceWor
+ [&, this](blink::SharedWorkerToken shared_worker_token) {
+ ConnectSharedWorkerClient(service_worker_node,
+ shared_worker_token);
+- }),
++ }},
+ kv.second);
+ }
+ }
+@@ -837,7 +837,7 @@ void WorkerWatcher::DisconnectAllService
+
+ for (const auto& kv : it->second) {
+ absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [&, this](
+ const content::GlobalRenderFrameHostId& render_frame_host_id) {
+ RemoveFrameClientConnection(service_worker_node,
+@@ -851,7 +851,7 @@ void WorkerWatcher::DisconnectAllService
+ [&, this](const blink::SharedWorkerToken& shared_worker_token) {
+ DisconnectSharedWorkerClient(service_worker_node,
+ shared_worker_token);
+- }),
++ }},
+ kv.second);
+ }
+ }
+diff -up chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc.me chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc
+--- chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc.me 2024-01-21 18:40:52.284389286 +0100
++++ chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc 2024-01-21 18:41:17.276840222 +0100
+@@ -764,7 +764,7 @@ FirstPartySetParser::ParseSetsFromEnterp
+ context.GetPolicySetsFromList(
+ policy.FindList(kFirstPartySetPolicyAdditionsField),
+ PolicySetType::kAddition));
+- return ParsedPolicySetLists(std::move(replacements), std::move(additions));
++ return ParsedPolicySetLists{std::move(replacements), std::move(additions)};
+ }();
+
+ context.PostProcessSetLists(set_lists);
+diff -up chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h.me chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h
+--- chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h.me 2024-01-21 19:30:00.536387844 +0100
++++ chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h 2024-01-21 20:29:50.236287514 +0100
+@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel
+
+ // The Ad-Auction-Signals response served by `origin`.
+ std::string response_json;
++ UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { }
+ };
+
+ // Information from ParseAndFind() calls used by ParseAndFindCompleted.
+diff -up chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.me chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
+--- chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.me 2024-01-21 21:58:48.773366301 +0100
++++ chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc 2024-01-21 22:02:17.956086167 +0100
+@@ -360,10 +360,10 @@ ServiceWorkerMainResourceLoaderIntercept
+ }
+ auto* storage_partition = process->GetStoragePartition();
+
+- return absl::visit(base::Overloaded([&, this](auto token) {
++ return absl::visit(base::Overloaded{[&, this](auto token) {
+ return GetStorageKeyFromWorkerHost(storage_partition,
+ token, origin);
+- }),
++ }},
+ *worker_token_);
+ }
+
+diff -up chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc.me chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc
+--- chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc.me 2024-01-21 22:04:30.446454697 +0100
++++ chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc 2024-01-21 22:05:22.847391481 +0100
+@@ -870,7 +870,7 @@ ServiceWorkerContainerHost::GetClientTyp
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(client_info_);
+ return absl::visit(
+- base::Overloaded(
++ base::Overloaded{
+ [](GlobalRenderFrameHostId render_frame_host_id) {
+ return blink::mojom::ServiceWorkerClientType::kWindow;
+ },
+@@ -879,7 +879,7 @@ ServiceWorkerContainerHost::GetClientTyp
+ },
+ [](blink::SharedWorkerToken shared_worker_token) {
+ return blink::mojom::ServiceWorkerClientType::kSharedWorker;
+- }),
++ }},
+ *client_info_);
+ }
+
+diff -up chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc.me chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc
+--- chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc.me 2024-01-21 22:37:00.969416148 +0100
++++ chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc 2024-01-21 22:38:07.754528335 +0100
+@@ -251,7 +251,7 @@ void DedicatedWorkerHost::StartScriptLoa
+ RenderFrameHostImpl* creator_render_frame_host = nullptr;
+ DedicatedWorkerHost* creator_worker = nullptr;
+
+- absl::visit(base::Overloaded(
++ absl::visit(base::Overloaded{
+ [&](const GlobalRenderFrameHostId& render_frame_host_id) {
+ creator_render_frame_host =
+ RenderFrameHostImpl::FromID(render_frame_host_id);
+@@ -259,7 +259,7 @@ void DedicatedWorkerHost::StartScriptLoa
+ [&](blink::DedicatedWorkerToken dedicated_worker_token) {
+ creator_worker = service_->GetDedicatedWorkerHostFromToken(
+ dedicated_worker_token);
+- }),
++ }},
+ creator_);
+
+ if (!creator_render_frame_host && !creator_worker) {
diff --git a/chromium-121-nullptr_t-without-namespace-std.patch b/chromium-121-nullptr_t-without-namespace-std.patch
new file mode 100644
index 0000000..3defc39
--- /dev/null
+++ b/chromium-121-nullptr_t-without-namespace-std.patch
@@ -0,0 +1,12 @@
+diff -up chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than 2023-12-04 10:20:45.350540897 +0100
++++ chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h 2023-12-04 10:23:17.335339670 +0100
+@@ -21,7 +21,7 @@ class FragmentDataIteratorBase {
+
+ public:
+ explicit FragmentDataIteratorBase(Head& head) : fragment_head_(head) {}
+- explicit FragmentDataIteratorBase(nullptr_t) {}
++ explicit FragmentDataIteratorBase(std::nullptr_t) {}
+
+ Data* GetFragmentData() const {
+ return !IsDone() ? &fragment_head_.at(idx_) : nullptr;
diff --git a/chromium-121-python3-invalid-escape-sequence.patch b/chromium-121-python3-invalid-escape-sequence.patch
new file mode 100644
index 0000000..c2bf5b4
--- /dev/null
+++ b/chromium-121-python3-invalid-escape-sequence.patch
@@ -0,0 +1,77 @@
+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
new file mode 100644
index 0000000..3debbe6
--- /dev/null
+++ b/chromium-121-revert-av1enc-el9.patch
@@ -0,0 +1,121 @@
+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-rust-clang_lib.patch b/chromium-121-rust-clang_lib.patch
new file mode 100644
index 0000000..70327ef
--- /dev/null
+++ b/chromium-121-rust-clang_lib.patch
@@ -0,0 +1,55 @@
+diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn
+--- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib 2024-01-10 16:43:01.000000000 +0100
++++ chromium-121.0.6167.57/build/config/clang/BUILD.gn 2024-01-20 19:51:38.481992799 +0100
+@@ -112,6 +112,7 @@ template("clang_lib") {
+ _prefix = "lib"
+ _suffix = ""
+ _ext = "a"
++ _libprefix = ""
+ if (is_win) {
+ _dir = "windows"
+ _prefix = ""
+@@ -127,7 +128,33 @@ template("clang_lib") {
+ }
+ } else if (is_apple) {
+ _dir = "darwin"
+- } else if (is_linux || is_chromeos) {
++ } else if (is_linux) {
++ if (current_cpu == "x64") {
++ _dir = "x86_64-redhat-linux-gnu"
++ _suffix ="-x86_64"
++ } else if (current_cpu == "x86") {
++ _dir = "i386-redhat-linux-gnu"
++ _suffix = "-i386"
++ } else if (current_cpu == "arm64") {
++ _dir = "aarch64-redhat-linux-gnu"
++ _suffix = "-aarch64"
++ } else if (current_cpu == "arm") {
++ _dir = "armhf-redhat-linux-gnu"
++ _suffix = "-armhf"
++ } else if (current_cpu == "ppc64") {
++ _dir = "powerpc64le-redhat-linux-gnu"
++ _suffix = "-powerpc64le"
++ } else {
++ assert(false) # Unhandled cpu type
++ }
++ # different clang lib dir in fedora/epel
++ if (clang_version == "17") {
++ _suffix = ""
++ } else if (clang_version == "16" || clang_version == "14") {
++ _libprefix = "64"
++ _dir = ""
++ }
++ } else if (is_chromeos) {
+ if (current_cpu == "x64") {
+ _dir = "x86_64-unknown-linux-gnu"
+ } else if (current_cpu == "x86") {
+@@ -166,7 +193,7 @@ template("clang_lib") {
+ assert(false) # Unhandled target platform
+ }
+
+- _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
++ _clang_lib_dir = "$clang_base_path/lib${_libprefix}/clang/$clang_version/lib"
+ _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
+ libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]
+ }
diff --git a/chromium-121-system-old-ffmpeg.patch b/chromium-121-system-old-ffmpeg.patch
new file mode 100644
index 0000000..0398e5b
--- /dev/null
+++ b/chromium-121-system-old-ffmpeg.patch
@@ -0,0 +1,34 @@
+diff -up chromium-121.0.6167.57/media/ffmpeg/ffmpeg_common.cc.me chromium-121.0.6167.57/media/ffmpeg/ffmpeg_common.cc
+--- chromium-121.0.6167.57/media/ffmpeg/ffmpeg_common.cc.me 2024-01-16 10:54:38.994173911 +0100
++++ chromium-121.0.6167.57/media/ffmpeg/ffmpeg_common.cc 2024-01-16 11:06:20.974160612 +0100
+@@ -710,8 +710,13 @@ bool AVStreamToVideoDecoderConfig(const
+ }
+
+ VideoTransformation video_transformation = VideoTransformation();
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
++ for (int i = 0; i < stream->nb_side_data; i++) {
++ const auto& side_data = stream->side_data[i];
++#else
+ for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
+ const auto& side_data = stream->codecpar->coded_side_data[i];
++#endif
+ switch (side_data.type) {
+ case AV_PKT_DATA_DISPLAYMATRIX: {
+ CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
+diff -up chromium-121.0.6167.57/media/filters/audio_video_metadata_extractor.cc.me chromium-121.0.6167.57/media/filters/audio_video_metadata_extractor.cc
+--- chromium-121.0.6167.57/media/filters/audio_video_metadata_extractor.cc.me 2024-01-16 11:12:27.521534151 +0100
++++ chromium-121.0.6167.57/media/filters/audio_video_metadata_extractor.cc 2024-01-16 11:15:08.717337026 +0100
+@@ -113,8 +113,13 @@ bool AudioVideoMetadataExtractor::Extrac
+ if (!stream)
+ continue;
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
++ for (int j = 0; j < stream->nb_side_data; j++) {
++ const AVPacketSideData& sd = stream->side_data[j];
++#else
+ for (int j = 0; j < stream->codecpar->nb_coded_side_data; j++) {
+ const AVPacketSideData& sd = stream->codecpar->coded_side_data[j];
++#endif
+ if (sd.type == AV_PKT_DATA_DISPLAYMATRIX) {
+ CHECK_EQ(sd.size, sizeof(int32_t) * 3 * 3);
+ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
diff --git a/chromium-121-typename.patch b/chromium-121-typename.patch
new file mode 100644
index 0000000..e83e62c
--- /dev/null
+++ b/chromium-121-typename.patch
@@ -0,0 +1,259 @@
+--- chromium-120.0.6099.56/base/containers/map_util.h.me 2023-12-02 19:00:19.696801563 +0100
++++ chromium-120.0.6099.56/base/containers/map_util.h 2023-12-02 19:00:47.049337547 +0100
+@@ -42,7 +42,7 @@
+ template <typename Map,
+ typename Key,
+ typename MappedElementType =
+- std::pointer_traits<internal::MappedType<Map>>::element_type>
++ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
+ constexpr const MappedElementType* FindPtrOrNull(const Map& map,
+ const Key& key) {
+ auto it = map.find(key);
+@@ -58,7 +58,7 @@
+ template <typename Map,
+ typename Key,
+ typename MappedElementType =
+- std::pointer_traits<internal::MappedType<Map>>::element_type>
++ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
+ constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) {
+ auto it = map.find(key);
+ return it != map.end() ? std::to_address(it->second) : nullptr;
+diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc
+--- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-06-17 14:50:56.342591702 +0200
++++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-06-17 14:57:48.024377375 +0200
+@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item)
+ // Helper to get an iterator to the last element in the cache. The cache
+ // must not be empty.
+ template <typename Item>
+-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
++typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
+ CHECK(!cache.empty());
+ auto it = cache.end();
+ return std::prev(it);
+@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM
+ }
+
+ template <typename Id, typename Item>
+-SortedItems<Item>::iterator
++typename SortedItems<Item>::iterator
+ DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
+- SortedItems<Item>::iterator iter,
++ typename SortedItems<Item>::iterator iter,
+ SortedItems<Item>& cache,
+ IterMap<Id, Item>& iter_map) {
+ CHECK(iter != cache.end());
+diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h
+--- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me 2023-06-18 21:52:53.515625237 +0200
++++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h 2023-06-18 21:53:06.881881293 +0200
+@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model
+ void SendForBatchExecution(
+ BatchExecutionCallback callback_on_complete,
+ base::TimeTicks start_time,
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ override {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+--- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me 2023-06-19 10:03:32.319218678 +0200
++++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2023-06-19 10:04:12.023942232 +0200
+@@ -169,7 +169,7 @@ class HTMLFastPathParser {
+ using Span = base::span<const Char>;
+ using USpan = base::span<const UChar>;
+ // 32 matches that used by HTMLToken::Attribute.
+- typedef std::conditional<std::is_same_v<Char, UChar>,
++ typedef typename std::conditional<std::is_same_v<Char, UChar>,
+ UCharLiteralBuffer<32>,
+ LCharLiteralBuffer<32>>::type LiteralBufferType;
+ typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
+diff -up chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h
+--- chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me 2023-08-02 16:18:30.380108125 +0200
++++ chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h 2023-08-02 16:20:59.660024578 +0200
+@@ -127,10 +127,10 @@ class CONTENT_EXPORT WebUIBrowserInterfa
+ //
+ // TODO(crbug.com/1407936): Point to WebUIJsBridge documentation.
+ template <typename ControllerType>
+- JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
++ typename JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
+ using Traits = JsBridgeTraits<ControllerType>;
+- using Interface = Traits::Interface;
+- using JsBridgeBinderInitializer = Traits::BinderInitializer;
++ using Interface = typename Traits::Interface;
++ using JsBridgeBinderInitializer = typename Traits::BinderInitializer;
+
+ // WebUIController::GetType() requires an instantiated WebUIController
+ // (because it's a virtual method and can't be static). Here we only have
+diff -up chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
+--- chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me 2023-08-02 20:41:23.984729462 +0200
++++ chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2023-08-02 20:41:53.737583093 +0200
+@@ -270,8 +270,8 @@ class CORE_EXPORT ObjectPaintPropertiesS
+ NodeList& nodes,
+ NodeId node_id,
+ const ParentType& parent,
+- NodeType::State&& state,
+- const NodeType::AnimationState& animation_state =
++ typename NodeType::State&& state,
++ const typename NodeType::AnimationState& animation_state =
+ NodeType::AnimationState()) {
+ // First, check if we need to add a new node.
+ if (!nodes.HasField(node_id)) {
+diff -up chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h
+--- chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me 2023-09-15 10:22:51.889698402 +0200
++++ chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h 2023-09-15 10:28:26.702716224 +0200
+@@ -234,7 +234,7 @@ class TFLiteModelExecutor : public Model
+ // Starts the synchronous execution of the model. Returns model outputs.
+ // Model needs to be loaded. Synchronous calls do not load or unload model.
+ std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ override {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -389,7 +389,7 @@ class TFLiteModelExecutor : public Model
+ // executes it on the model execution thread.
+ void LoadModelFileAndBatchExecute(
+ BatchExecutionCallback callback_on_complete,
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+@@ -406,7 +406,7 @@ class TFLiteModelExecutor : public Model
+
+ // Batch executes the loaded model for inputs.
+ void BatchExecuteLoadedModel(
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ std::vector<absl::optional<OutputType>>* outputs) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -466,7 +466,7 @@ class TFLiteModelExecutor : public Model
+ // Unloads the model if needed.
+ void BatchExecuteLoadedModelAndRunCallback(
+ BatchExecutionCallback callback_on_complete,
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ ExecutionStatus execution_status) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc
+--- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me 2023-09-15 17:20:22.550657586 +0200
++++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc 2023-09-15 17:24:11.396716734 +0200
+@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
+ RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+ RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+
+- void Start(ProtoFetcher<Response>::Callback callback) override {
++ void Start(typename ProtoFetcher<Response>::Callback callback) override {
+ callback_ = std::move(callback);
+ Retry();
+ }
+@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
+ }
+
+ // Client callback.
+- ProtoFetcher<Response>::Callback callback_;
++ typename ProtoFetcher<Response>::Callback callback_;
+
+ // Retry controls.
+ base::OneShotTimer timer_;
+@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
+ template <typename Request, typename Response>
+ void ParallelFetchManager<Request, Response>::Fetch(
+ const Request& request,
+- Fetcher::Callback callback) {
++ typename Fetcher::Callback callback) {
+ CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+ KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+ requests_in_flight_.Lookup(key)->Start(
+diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h
+--- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me 2023-09-15 17:20:56.540460391 +0200
++++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h 2023-09-15 17:22:18.246237817 +0200
+@@ -165,10 +165,10 @@ class ParallelFetchManager {
+
+ // Starts the fetch. Underlying fetcher is stored internally, and will be
+ // cleaned up after finish or when this manager is destroyed.
+- void Fetch(const Request& request, Fetcher::Callback callback);
++ void Fetch(const Request& request, typename Fetcher::Callback callback);
+
+ private:
+- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+
+ // Remove fetcher under key from requests_in_flight_.
+ void Remove(KeyType key);
+diff -up chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h
+--- chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me 2023-12-04 00:29:35.197209538 +0100
++++ chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2023-12-04 00:30:24.436233249 +0100
+@@ -220,7 +220,7 @@ class PairAsyncIterable {
+ private:
+ virtual IterationSource* CreateIterationSource(
+ ScriptState* script_state,
+- IterationSource::Kind kind,
++ typename IterationSource::Kind kind,
+ ExceptionState& exception_state) = 0;
+ };
+
+@@ -262,7 +262,7 @@ class ValueAsyncIterable {
+ private:
+ virtual IterationSource* CreateIterationSource(
+ ScriptState* script_state,
+- IterationSource::Kind kind,
++ typename IterationSource::Kind kind,
+ ExceptionState& exception_state) = 0;
+ };
+
+diff -up chromium-121.0.6167.57/base/functional/bind_internal.h.me chromium-121.0.6167.57/base/functional/bind_internal.h
+--- chromium-121.0.6167.57/base/functional/bind_internal.h.me 2024-01-21 16:10:09.809037581 +0100
++++ chromium-121.0.6167.57/base/functional/bind_internal.h 2024-01-21 16:46:33.759397303 +0100
+@@ -1533,11 +1533,11 @@ template <int i,
+ typename Param>
+ struct ParamCanBeBound {
+ private:
+- using UnwrappedParam = BindArgument<i>::template ForwardedAs<
++ using UnwrappedParam = typename BindArgument<i>::template ForwardedAs<
+ Unwrapped>::template ToParamWithType<Param>;
+- using ParamStorage = BindArgument<i>::template ToParamWithType<
++ using ParamStorage = typename BindArgument<i>::template ToParamWithType<
+ Param>::template StoredAs<Storage>;
+- using BoundStorage =
++ using BoundStorage = typename
+ BindArgument<i>::template BoundAs<Arg>::template StoredAs<Storage>;
+
+ // We forbid callbacks from using raw_ptr as a parameter. However, we allow
+diff -up chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h.me chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h
+--- chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h.me 2024-01-21 17:23:37.786606428 +0100
++++ chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h 2024-01-21 17:23:58.582127103 +0100
+@@ -90,7 +90,7 @@ template <typename Container>
+ { c[i] } -> std::same_as<typename Container::reference>;
+ }
+ struct ArrayTraits<Container> {
+- using Element = Container::value_type;
++ using Element = typename Container::value_type;
+
+ // vector-like containers have no built-in null.
+ static bool IsNull(const Container& c) { return false; }
+diff -up chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h.me chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h
+--- chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h.me 2024-01-21 17:33:40.030897838 +0100
++++ chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h 2024-01-21 17:34:11.518705266 +0100
+@@ -25,7 +25,7 @@ void SetExecutionRequestTemplate(
+
+ // Request is set by the feature and should always be typed.
+ auto typed_request =
+- static_cast<const FeatureType::Request&>(request_metadata);
++ static_cast<const typename FeatureType::Request&>(request_metadata);
+ *(logging_data->mutable_request_data()) = typed_request;
+ }
+
+diff -up chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h.me chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h
+--- chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h.me 2024-01-21 17:32:42.367417619 +0100
++++ chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h 2024-01-21 17:33:25.732531198 +0100
+@@ -29,7 +29,7 @@ class ModelQualityLogEntry {
+ }
+
+ template <typename FeatureType>
+- FeatureType::Quality* quality_data() {
++ typename FeatureType::Quality* quality_data() {
+ return FeatureType::GetLoggingData(*log_ai_data_request_)
+ ->mutable_quality_data();
+ }
diff --git a/chromium-121-v8-c++20.patch b/chromium-121-v8-c++20.patch
new file mode 100644
index 0000000..3b3bb50
--- /dev/null
+++ b/chromium-121-v8-c++20.patch
@@ -0,0 +1,743 @@
+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-121-workaround_clang_bug-structured_binding.patch b/chromium-121-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..192b069
--- /dev/null
+++ b/chromium-121-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,53 @@
+diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
+--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200
++++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+ // Reject all outstanding promises.
+ DCHECK(thread_checker_.CalledOnValidThread());
+- for (auto& [promise_id, promise] : promises_) {
++ for (auto& [p_i, p_e] : promises_) {
++ auto& promise_id = p_i;
++ auto& promise = p_e;
+ TRACE_EVENT_NESTABLE_ASYNC_END1(
+ "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+ "status", "cleared");
+diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
+--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200
++++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200
+@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
+ return;
+ }
+
+- auto [document_url, key, callback] = std::move(*request);
++ auto [d_u, key, callback] = std::move(*request);
++ auto document_url = d_u;
+
+ DCHECK(document_url.is_valid());
+ TRACE_EVENT1("ServiceWorker",
+diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
+--- chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than 2023-12-19 17:57:56.205197246 +0100
++++ chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc 2023-12-19 18:10:13.778634531 +0100
+@@ -3527,8 +3527,8 @@ void GridLayoutAlgorithm::PlaceGridItems
+ DCHECK(out_row_break_between);
+
+ const auto& container_space = GetConstraintSpace();
+- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
+-
++ const auto& [grid_items, l_d, tree_size] = sizing_tree.TreeRootData();
++ const auto& layout_data = l_d;
+ const auto* cached_layout_subtree = container_space.GetGridLayoutSubtree();
+ const auto container_writing_direction =
+ container_space.GetWritingDirection();
+@@ -3691,8 +3691,9 @@ void GridLayoutAlgorithm::PlaceGridItems
+
+ // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true.
+ const auto& constraint_space = GetConstraintSpace();
+- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
+-
++ const auto& [g_i, l_d, tree_size] = sizing_tree.TreeRootData();
++ const auto& grid_items = g_i;
++ const auto& layout_data = l_d;
+ const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree();
+ const auto container_writing_direction =
+ constraint_space.GetWritingDirection();
diff --git a/chromium.spec b/chromium.spec
index e5b689c..c0309aa 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -186,6 +186,12 @@
%global use_qt6 0
%endif
+# disable due to gcc-14 bug
+%if 0%{?fedora} > 39
+%global use_qt6 0
+%global use_qt 0
+%endif
+
# enable gtk3 by default
%global gtk3 1
@@ -285,8 +291,8 @@
%endif
Name: chromium%{chromium_channel}
-Version: 120.0.6099.224
-Release: 2%{?dist}
+Version: 121.0.6167.71
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@@ -378,36 +384,37 @@ Patch108: chromium-118-el7_v4l2_quantization.patch
Patch109: chromium-114-wireless-el7.patch
Patch110: chromium-115-buildflag-el7.patch
Patch111: chromium-116-constexpr.patch
-Patch112: chromium-117-el7-default_constructor.patch
# old clang on el7
-Patch113: chromium-120-el7-clang-version-warning.patch
+Patch113: chromium-121-el7-clang-version-warning.patch
Patch114: chromium-120-el7-clang-build-failure.patch
# system ffmpeg
-# need for old ffmpeg 5.x on epel9 and fedora 37
+# need for old ffmpeg 5.x on epel9
Patch115: chromium-107-ffmpeg-5.x-duration.patch
# disable the check
Patch116: chromium-107-proprietary-codecs.patch
# fix tab crash with SIGTRAP error when using system ffmpeg
Patch117: chromium-118-sigtrap_system_ffmpeg.patch
+# need for old ffmpeg 6.0/5.x on epel9 and fedora < 40
+Patch118: chromium-121-system-old-ffmpeg.patch
# revert AV1 VAAPI video encode due to old libva on el9
-Patch130: chromium-119-revert-av1enc-el9.patch
+Patch130: chromium-121-revert-av1enc-el9.patch
# file conflict with old kernel on el8/el9
Patch140: chromium-118-dma_buf_export_sync_file-conflict.patch
# fixes for old clang version in fedora < 38 end epel < 8 (old clang <= 15)
# compiler build errors, no matching constructor for initialization
-Patch300: chromium-120-no_matching_constructor.patch
+Patch300: chromium-121-no_matching_constructor.patch
Patch301: chromium-115-compiler-SkColor4f.patch
# workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch302: chromium-120-workaround_clang_bug-structured_binding.patch
+Patch302: chromium-121-workaround_clang_bug-structured_binding.patch
# missing typename
-Patch303: chromium-120-typename.patch
+Patch303: chromium-121-typename.patch
# error: invalid operands to binary expression
Patch304: chromium-117-string-convert.patch
@@ -416,10 +423,14 @@ 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-120-arm64-memory_tagging.patch
+Patch307: chromium-121-arm64-memory_tagging.patch
+
+# compiler errors on epel
+Patch308: chromium-121-v8-c++20.patch
+Patch309: chromium-121-constexpr.patch
# missing include header files
-Patch310: chromium-120-missing-header-files.patch
+Patch310: chromium-121-missing-header-files.patch
# clang warnings
Patch311: chromium-115-clang-warnings.patch
@@ -428,24 +439,31 @@ Patch311: chromium-115-clang-warnings.patch
Patch312: chromium-119-fstack-protector-strong.patch
# build error
-Patch351: chromium-117-mnemonic-error.patch
+Patch351: chromium-121-mnemonic-error.patch
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2239523
# https://bugs.chromium.org/p/chromium/issues/detail?id=1145581#c60
# Disable BTI until this is fixed upstream.
Patch352: chromium-117-workaround_for_crash_on_BTI_capable_system.patch
-# gn workaround for the error: Assignment had no effect
-Patch353: chromium-120-gn-workaround-atspi.patch
# remove flag split-threshold-for-reg-with-hint, it' not supported in clang <= 17
Patch354: chromium-120-split-threshold-for-reg-with-hint.patch
+
# error: unknown type name 'nullptr_t'
-Patch355: chromium-120-nullptr_t-without-namespace-std.patch
+Patch355: chromium-121-nullptr_t-without-namespace-std.patch
+
# disable FFmpegAllowLists by default to allow external ffmpeg
patch356: chromium-120-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
+# 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
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
@@ -510,6 +528,8 @@ BuildRequires: binutils
%endif
%endif
+BuildRequires: rustc
+
# build with system ffmpeg-free
%if ! %{bundleffmpegfree}
BuildRequires: pkgconfig(libavcodec)
@@ -999,6 +1019,7 @@ udev.
%endif
%patch -P116 -p1 -b .prop-codecs
%patch -P117 -p1 -b .sigtrap_system_ffmpeg
+%patch -P118 -p1 -b .system-old-ffmpeg
%endif
# EPEL specific patches
@@ -1014,9 +1035,14 @@ udev.
%patch -P109 -p1 -b .wireless
%patch -P110 -p1 -b .buildflag-el7
%patch -P111 -p1 -b .constexpr
-%patch -P112 -p1 -b .default_constructor
%patch -P113 -p1 -b .el7-clang-version-warning
%patch -P114 -p1 -R -b .clang-build-failure
+%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 -P304 -p1 -b .string-convert
+%patch -P306 -p1 -b .assert
%endif
%if 0%{?rhel} == 8 || 0%{?rhel} == 9
@@ -1027,23 +1053,17 @@ udev.
%patch -P130 -p1 -b .revert-av1enc
%endif
-%if %{clang}
-%if 0%{?rhel} < 8 || 0%{?fedora} < 38
-%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 -P304 -p1 -b .string-convert
-%patch -P306 -p1 -b .assert
-%endif
-%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
+%patch -P309 -p1 -b .constexpr
+%endif
+
%patch -P310 -p1 -b .missing-header-files
%patch -P311 -p1 -b .clang-warnings
%patch -P312 -p1 -b .fstack-protector-strong
@@ -1054,13 +1074,14 @@ udev.
%patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system
%endif
-%patch -P353 -p1 -b .gn-workaround-atspi
%patch -P354 -p1 -b .revert-split-threshold-for-reg-with-hint
%if ! %{use_custom_libcxx}
%patch -P355 -p1 -b .nullptr_t-without-namespace-std
%endif
%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
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
@@ -1177,6 +1198,16 @@ export CXXFLAGS
. /opt/rh/%{toolset}-%{dts_version}/enable
%endif
+# need for error: the option `Z` is only accepted on the nightly compiler
+export RUSTC_BOOTSTRAP=1
+
+# set rustc version
+rustc_version="$(rustc --version)"
+
+# set clang version
+clang_version="$(clang --version | sed -n 's/clang version //p' | cut -d. -f1)"
+clang_base_path="$(clang --version | grep InstalledDir | cut -d' ' -f2 | sed 's#/bin##')"
+
# Core defines are flags that are true for both the browser and headless.
CHROMIUM_CORE_GN_DEFINES=""
# using system toolchain
@@ -1192,9 +1223,7 @@ CHROMIUM_CORE_GN_DEFINES+=' is_official_build=true'
sed -i 's|OFFICIAL_BUILD|GOOGLE_CHROME_BUILD|g' tools/generate_shim_headers/generate_shim_headers.py
%endif
-%if 0%{?rhel} || 0%{?fedora} < 39
CHROMIUM_CORE_GN_DEFINES+=' chrome_pgo_phase=0'
-%endif
%if %{cfi}
CHROMIUM_CORE_GN_DEFINES+=' is_cfi=true'
@@ -1213,7 +1242,8 @@ CHROMIUM_CORE_GN_DEFINES+=' google_default_client_secret="%{default_client_secre
%if %{clang}
CHROMIUM_CORE_GN_DEFINES+=' is_clang=true'
-CHROMIUM_CORE_GN_DEFINES+=' clang_base_path="%{_prefix}"'
+CHROMIUM_CORE_GN_DEFINES+=" clang_base_path=\"$clang_base_path\""
+CHROMIUM_CORE_GN_DEFINES+=" clang_version=\"$clang_version\""
CHROMIUM_CORE_GN_DEFINES+=' clang_use_chrome_plugins=false'
CHROMIUM_CORE_GN_DEFINES+=' use_lld=true'
%else
@@ -1221,8 +1251,9 @@ CHROMIUM_CORE_GN_DEFINES+=' is_clang=false'
CHROMIUM_CORE_GN_DEFINES+=' use_lld=false'
%endif
-# disable rust, it's only using for testing
-CHROMIUM_CORE_GN_DEFINES+=' enable_rust=false'
+# enable system rust
+CHROMIUM_CORE_GN_DEFINES+=' rust_sysroot_absolute="%{_prefix}"'
+CHROMIUM_CORE_GN_DEFINES+=" rustc_version=\"$rustc_version\""
CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false disable_fieldtrial_testing_config=true'
@@ -1766,6 +1797,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Tue Jan 23 2024 Than Ngo <than@redhat.com> - 121.0.6167.71-1
+- update to 121.0.6167.71
+
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 120.0.6099.224-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
diff --git a/sources b/sources
index fd1b23b..0835527 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-120.0.6099.224-clean.tar.xz) = 0140125632c0a629f7aa9217aad078656e4e2e26c1849e9cf287d1fbaecbb1dc2e3baf1cdbdb3a473f8a27339e8e7f853fa1bdb30d4faae8fcfdde8fc2370874
+SHA512 (chromium-121.0.6167.71-clean.tar.xz) = be9ef1298b6f45f0b9d04fa2315b7f2bb0af40708143602da46a898426994e03e32ef52135e7ac1dd234fa13a3976baccdf268fb7d5f8134693922f73e5681aa
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-07 16:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:05 [rpms/chromium] epel9-next: update to 121.0.6167.71 Than Ngo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox