public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: - update to 123.0.6312.58
@ 2026-08-07 16:06 Than Ngo
0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:06 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 1ee06aa55f3afb794c90069e85a8b48427703e7f
Author : Than Ngo <than@redhat.com>
Date : 2024-03-20T09:41:27+01:00
Stats : +3281/-2952 in 26 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/1ee06aa55f3afb794c90069e85a8b48427703e7f?branch=epel9-next
Log:
- update to 123.0.6312.58
* High CVE-2024-2625: Object lifecycle issue in V8
* Medium CVE-2024-2626: Out of bounds read in Swiftshader
* Medium CVE-2024-2627: Use after free in Canvas
* Medium CVE-2024-2628: Inappropriate implementation in Downloads
* Medium CVE-2024-2629: Incorrect security UI in iOS
* Medium CVE-2024-2630: Inappropriate implementation in iOS
* Low CVE-2024-2631: Inappropriate implementation in iOS
---
diff --git a/chromium-119-fstack-protector-strong.patch b/chromium-119-fstack-protector-strong.patch
deleted file mode 100644
index 688938d..0000000
--- a/chromium-119-fstack-protector-strong.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me chromium-119.0.6045.199/build/config/compiler/BUILD.gn
---- chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me 2023-12-02 12:19:01.138079722 +0100
-+++ chromium-119.0.6045.199/build/config/compiler/BUILD.gn 2023-12-02 12:21:05.835322037 +0100
-@@ -379,7 +379,7 @@ config("compiler") {
- cflags += [ "-fno-stack-protector" ]
- } else if (current_os != "aix") {
- # Not available on aix.
-- cflags += [ "-fstack-protector" ]
-+ cflags += [ "-fstack-protector-strong" ]
- }
- }
- }
diff --git a/chromium-120-el7-clang-build-failure.patch b/chromium-120-el7-clang-build-failure.patch
deleted file mode 100644
index 96258e6..0000000
--- a/chromium-120-el7-clang-build-failure.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
-Author: sisidovski <sisidovski@chromium.org>
-Date: Tue Oct 24 09:32:49 2023 +0000
-
- Remove unused items from the RaceNetworkRequest hashmap
-
- When the AutoPreload or the race-network-and-fetch-handler option in the
- static routing API is enabled, network requests are dispatched and
- URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope.
- Those are consumed inside the fetch handler when fetch(e.request) is
- called. But if the fetch handler doesn't call fetch() e.g. fallback,
- those hashmap items does not have a chance to be removed.
-
- This CL changes the hashmap items to be removed when the fetch event
- finishes, and the URLLoaderFactory is still not consumed at that time.
- This may loose the dedupe capability if fetch() is called later e.g.
- setTimeout(() => fetch()), but it makes sense to prioritize keeping the
- hashmap small.
-
- Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848
- Bug: 1492640
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840
- Reviewed-by: Minoru Chikamune <chikamune@chromium.org>
- Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
- Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1214064}
-
-diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
-index 02887edc10883..b3624fc0162df 100644
---- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
-+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
-@@ -46,6 +46,7 @@
- #include "services/network/public/cpp/cross_origin_embedder_policy.h"
- #include "services/network/public/mojom/cookie_manager.mojom-blink.h"
- #include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
-+#include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
- #include "third_party/blink/public/common/features.h"
- #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
- #include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h"
-@@ -1096,6 +1097,10 @@ void ServiceWorkerGlobalScope::DidHandleFetchEvent(
- TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope,
- TRACE_ID_LOCAL(event_id)),
- TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status));
-+
-+ // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used.
-+ RemoveItemFromRaceNetworkRequests(event_id);
-+
- if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id,
- status)) {
- // The event may have been aborted. Its response callback also needs to be
-@@ -1495,6 +1500,7 @@ void ServiceWorkerGlobalScope::AbortCallbackForFetchEvent(
- response_callback_iter->value->TakeValue().reset();
- fetch_response_callbacks_.erase(response_callback_iter);
- }
-+ RemoveItemFromRaceNetworkRequests(event_id);
-
- // Run the event callback with the error code.
- auto event_callback_iter = fetch_event_callbacks_.find(event_id);
-@@ -1551,52 +1557,11 @@ void ServiceWorkerGlobalScope::StartFetchEvent(
-
- if (params->race_network_request_loader_factory &&
- params->request->service_worker_race_network_request_token) {
-- auto insert_result = race_network_request_loader_factories_.insert(
-- String(params->request->service_worker_race_network_request_token
-- ->ToString()),
-- std::move(params->race_network_request_loader_factory));
--
-- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
-- // to |race_network_request_loader_factories_|.
-- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
-- // and identify the cause.
-- static bool has_dumped_without_crashing_for_empty_token = false;
-- static bool has_dumped_without_crashing_for_not_new_entry = false;
-- if (!has_dumped_without_crashing_for_empty_token &&
-- params->request->service_worker_race_network_request_token
-- ->is_empty()) {
-- has_dumped_without_crashing_for_empty_token = true;
-- SCOPED_CRASH_KEY_BOOL(
-- "SWGlobalScope", "empty_race_token",
-- params->request->service_worker_race_network_request_token
-- ->is_empty());
-- SCOPED_CRASH_KEY_STRING64(
-- "SWGlobalScope", "race_token_string",
-- params->request->service_worker_race_network_request_token
-- ->ToString());
-- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
-- insert_result.is_new_entry);
-- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
-- params->request->url.GetString().Utf8());
-- base::debug::DumpWithoutCrashing();
-- }
-- if (!has_dumped_without_crashing_for_not_new_entry &&
-- !insert_result.is_new_entry) {
-- has_dumped_without_crashing_for_not_new_entry = true;
-- SCOPED_CRASH_KEY_BOOL(
-- "SWGlobalScope", "empty_race_token",
-- params->request->service_worker_race_network_request_token
-- ->is_empty());
-- SCOPED_CRASH_KEY_STRING64(
-- "SWGlobalScope", "race_token_string",
-- params->request->service_worker_race_network_request_token
-- ->ToString());
-- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
-- insert_result.is_new_entry);
-- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
-- params->request->url.GetString().Utf8());
-- base::debug::DumpWithoutCrashing();
-- }
-+ InsertNewItemToRaceNetworkRequests(
-+ event_id,
-+ params->request->service_worker_race_network_request_token.value(),
-+ std::move(params->race_network_request_loader_factory),
-+ params->request->url);
- }
-
- Request* request = Request::Create(
-@@ -2808,12 +2773,71 @@ bool ServiceWorkerGlobalScope::SetAttributeEventListener(
- absl::optional<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
- ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
- const base::UnguessableToken& token) {
-- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
-- race_network_request_loader_factories_.Take(String(token.ToString()));
-+ std::unique_ptr<RaceNetworkRequestInfo> result =
-+ race_network_requests_.Take(String(token.ToString()));
- if (result) {
-- return result;
-+ race_network_request_fetch_event_ids_.erase(result->fetch_event_id);
-+ return absl::optional<
-+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>(
-+ std::move(result->url_loader_factory));
- }
- return absl::nullopt;
- }
-
-+void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
-+ int fetch_event_id,
-+ const base::UnguessableToken& token,
-+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
-+ url_loader_factory,
-+ const KURL& request_url) {
-+ auto race_network_request_token = String(token.ToString());
-+ auto info = std::make_unique<RaceNetworkRequestInfo>(
-+ fetch_event_id, race_network_request_token,
-+ std::move(url_loader_factory));
-+ race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get());
-+ auto insert_result = race_network_requests_.insert(race_network_request_token,
-+ std::move(info));
-+
-+ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
-+ // to |race_network_request_loader_factories_|.
-+ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
-+ // and identify the cause.
-+ static bool has_dumped_without_crashing_for_empty_token = false;
-+ static bool has_dumped_without_crashing_for_not_new_entry = false;
-+ if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) {
-+ has_dumped_without_crashing_for_empty_token = true;
-+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
-+ token.is_empty());
-+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
-+ token.ToString());
-+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
-+ insert_result.is_new_entry);
-+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
-+ request_url.GetString().Utf8());
-+ base::debug::DumpWithoutCrashing();
-+ }
-+ if (!has_dumped_without_crashing_for_not_new_entry &&
-+ !insert_result.is_new_entry) {
-+ has_dumped_without_crashing_for_not_new_entry = true;
-+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
-+ token.is_empty());
-+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
-+ token.ToString());
-+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
-+ insert_result.is_new_entry);
-+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
-+ request_url.GetString().Utf8());
-+ base::debug::DumpWithoutCrashing();
-+ }
-+}
-+
-+void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests(
-+ int fetch_event_id) {
-+ RaceNetworkRequestInfo* info =
-+ race_network_request_fetch_event_ids_.Take(fetch_event_id);
-+ if (info) {
-+ race_network_requests_.erase(info->token);
-+ }
-+}
-+
- } // namespace blink
-diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
-index 46c431b395825..ac4cac0b1d8fb 100644
---- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
-+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
-@@ -623,6 +623,14 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
- // ServiceWorker.FetchEvent.QueuingTime histogram.
- void RecordQueuingTime(base::TimeTicks created_time);
-
-+ void InsertNewItemToRaceNetworkRequests(
-+ int fetch_event_id,
-+ const base::UnguessableToken& token,
-+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
-+ url_loader_factory,
-+ const KURL& request_url);
-+ void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
-+
- Member<ServiceWorkerClients> clients_;
- Member<ServiceWorkerRegistration> registration_;
- Member<::blink::ServiceWorker> service_worker_;
-@@ -768,10 +776,17 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
-
- blink::BlinkStorageKey storage_key_;
-
-+ struct RaceNetworkRequestInfo {
-+ int fetch_event_id;
-+ String token;
-+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
-+ url_loader_factory;
-+ };
- // TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a
- // key. As a workaround uses WTF::String as a key instead.
-- HashMap<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
-- race_network_request_loader_factories_;
-+ HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
-+ race_network_requests_;
-+ HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
-
- HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
- remote_associated_interfaces_{this};
diff --git a/chromium-121-mnemonic-error.patch b/chromium-121-mnemonic-error.patch
deleted file mode 100644
index 61239e7..0000000
--- a/chromium-121-mnemonic-error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-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-v8-c++20.patch b/chromium-121-v8-c++20.patch
deleted file mode 100644
index 3b3bb50..0000000
--- a/chromium-121-v8-c++20.patch
+++ /dev/null
@@ -1,743 +0,0 @@
-commit 940af9f2c87b436559b97c53763aa9eaaf1254eb
-Author: Jeremy Roman <jbroman@chromium.org>
-Date: Wed Nov 15 16:24:54 2023 +0000
-
- Use C++20 features to simplify blink::NativeValueTraitsBase.
-
- These allow some of the metaprogramming bits to be simplified a little.
-
- Change-Id: I052b4397586d21348401616e1792afdb9662f975
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5030335
- Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
- Commit-Queue: Jeremy Roman <jbroman@chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1224978}
-
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-index 7fc91d14acc71..1e5a0790df6da 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
-@@ -5,6 +5,7 @@
- #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
- #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_
-
-+#include <concepts>
- #include <type_traits>
-
- #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h"
-@@ -30,7 +31,7 @@ class ExceptionState;
- // return toInt32(isolate, value, exceptionState, NormalConversion);
- // }
- // }
--template <typename T, typename SFINAEHelper = void>
-+template <typename T>
- struct NativeValueTraits;
-
- // This declaration serves only as a blueprint for specializations: the
-@@ -45,22 +46,15 @@ struct NativeValueTraits;
-
- namespace bindings {
-
--template <typename T, typename = void>
--struct NativeValueTraitsHasIsNull : std::false_type {};
--
- template <typename T>
--struct NativeValueTraitsHasIsNull<
-- T,
-- std::void_t<decltype(std::declval<T>().IsNull())>> : std::true_type {};
-+struct ImplTypeFor {
-+ using type = T;
-+};
-
- template <typename T>
--struct NativeValueTraitsHasNullValue {
-- // true if |T| supports IDL null value.
-- static constexpr bool value =
-- // ScriptValue, String, and union types have IsNull member function.
-- bindings::NativeValueTraitsHasIsNull<T>::value ||
-- // Pointer types have nullptr as IDL null value.
-- std::is_pointer<T>::value;
-+ requires std::derived_from<T, IDLBase>
-+struct ImplTypeFor<T> {
-+ using type = typename T::ImplType;
- };
-
- } // namespace bindings
-@@ -78,37 +72,17 @@ struct NativeValueTraitsHasNullValue {
- // If present, |NullValue()| will be used when converting from the nullable type
- // T?, and should be used if the impl type has an existing "null" state. If not
- // present, WTF::Optional will be used to wrap the type.
--template <typename T, typename SFINAEHelper = void>
--struct NativeValueTraitsBase {
-- STATIC_ONLY(NativeValueTraitsBase);
--
-- using ImplType = T;
--
-- static constexpr bool has_null_value =
-- bindings::NativeValueTraitsHasNullValue<ImplType>::value;
--
-- template <typename... ExtraArgs>
-- static decltype(auto) ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state,
-- ExtraArgs... extra_args) {
-- return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue(
-- isolate, value, exception_state,
-- std::forward<ExtraArgs>(extra_args)...);
-- }
--};
--
- template <typename T>
--struct NativeValueTraitsBase<
-- T,
-- std::enable_if_t<std::is_base_of<IDLBase, T>::value>> {
-+struct NativeValueTraitsBase {
- STATIC_ONLY(NativeValueTraitsBase);
-
-- using ImplType = typename T::ImplType;
-+ using ImplType = bindings::ImplTypeFor<T>::type;
-
-+ // Pointer types have nullptr as IDL null value.
-+ // ScriptValue, String, and union types have IsNull member function.
- static constexpr bool has_null_value =
-- bindings::NativeValueTraitsHasNullValue<ImplType>::value;
-+ std::is_pointer_v<ImplType> ||
-+ requires(ImplType value) { value.IsNull(); };
-
- template <typename... ExtraArgs>
- static decltype(auto) ArgumentValue(v8::Isolate* isolate,
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-index 508ea6d8eea48..18de71d84023f 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc
-@@ -7,6 +7,7 @@
- #include "third_party/blink/renderer/core/core_export.h"
- #include "third_party/blink/renderer/core/execution_context/execution_context.h"
- #include "third_party/blink/renderer/core/frame/web_feature.h"
-+#include "third_party/blink/renderer/core/typed_arrays/flexible_array_buffer_view.h"
- #include "third_party/blink/renderer/core/typed_arrays/typed_flexible_array_buffer_view.h"
-
- namespace blink {
-@@ -698,12 +699,11 @@ DOMArrayBufferBase* NativeValueTraits<
- // ArrayBufferView
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<NotShared<T>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -712,13 +712,12 @@ NotShared<T> NativeValueTraits<
- }
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<NotShared<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -729,12 +728,11 @@ NotShared<T> NativeValueTraits<
- // [AllowShared] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<MaybeShared<T>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -743,13 +741,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<MaybeShared<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
-@@ -760,12 +757,12 @@ MaybeShared<T> NativeValueTraits<
- // [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T>
-+NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
-@@ -774,13 +771,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<
-+ MaybeShared<T>>>::ArgumentValue(v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck,
-@@ -791,12 +787,11 @@ MaybeShared<T> NativeValueTraits<
- // Nullable ArrayBufferView
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -805,13 +800,12 @@ NotShared<T> NativeValueTraits<
- }
-
- template <typename T>
--NotShared<T> NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -822,12 +816,11 @@ NotShared<T> NativeValueTraits<
- // Nullable [AllowShared] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- NativeValue(v8::Isolate* isolate,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::NativeValue(
-+ v8::Isolate* isolate,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return NativeValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -836,13 +829,12 @@ MaybeShared<T> NativeValueTraits<
- }
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>,
- ToDOMViewType<T, kMaybeShared>,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
-@@ -853,9 +845,9 @@ MaybeShared<T> NativeValueTraits<
- // Nullable [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView
-
- template <typename T>
--MaybeShared<T> NativeValueTraits<
-- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>::
-+ requires std::derived_from<T, DOMArrayBufferView>
-+MaybeShared<T>
-+NativeValueTraits<IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>::
- ArgumentValue(v8::Isolate* isolate,
- int argument_index,
- v8::Local<v8::Value> value,
-@@ -870,13 +862,11 @@ MaybeShared<T> NativeValueTraits<
- // [AllowShared, FlexibleArrayBufferView] ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<T,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<T>::ArgumentValue(v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
- Nullablity::kIsNotNullable, BufferSizeCheck::kCheck,
- ResizableAllowance::kDisallowResizable,
-@@ -888,13 +878,12 @@ T NativeValueTraits<T,
- // ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<
- RecipeTrait<T>, ToFlexibleArrayBufferView, Nullablity::kIsNotNullable,
- BufferSizeCheck::kDoNotCheck, ResizableAllowance::kDisallowResizable,
-@@ -905,13 +894,12 @@ T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>,
- // Nullable [AllowShared, FlexibleArrayBufferView] ArrayBufferView
-
- template <typename T>
--T NativeValueTraits<IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>::
-- ArgumentValue(v8::Isolate* isolate,
-- int argument_index,
-- v8::Local<v8::Value> value,
-- ExceptionState& exception_state) {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+T NativeValueTraits<IDLNullable<T>>::ArgumentValue(
-+ v8::Isolate* isolate,
-+ int argument_index,
-+ v8::Local<v8::Value> value,
-+ ExceptionState& exception_state) {
- return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView,
- Nullablity::kIsNullable, BufferSizeCheck::kCheck,
- ResizableAllowance::kDisallowResizable,
-diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-index 899929dcf49f9..5011503dcf1c0 100644
---- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
-@@ -5,6 +5,9 @@
- #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
- #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
-
-+#include <concepts>
-+#include <type_traits>
-+
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
- #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h"
-@@ -715,9 +718,8 @@ struct CORE_EXPORT NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<T> {
- // NotShared<T> or MaybeShared<T> should be used instead.
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -729,9 +731,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> {
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<T>> {
- // NotShared<T> or MaybeShared<T> should be used instead.
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -743,9 +744,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- NotShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<NotShared<T>>
- : public NativeValueTraitsBase<NotShared<T>> {
- static NotShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -758,9 +758,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<NotShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<NotShared<T>>>
- : public NativeValueTraitsBase<NotShared<T>> {
- static NotShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -773,9 +772,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- MaybeShared<T>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<MaybeShared<T>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -788,9 +786,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- // FlexibleArrayBufferView uses this in its implementation, so we cannot
- // delete it.
-@@ -805,9 +802,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<MaybeShared<T>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ requires std::derived_from<T, DOMArrayBufferView>
-+struct NativeValueTraits<IDLNullable<MaybeShared<T>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -820,9 +816,9 @@ struct NativeValueTraits<
- };
-
- template <typename T>
-+ requires std::derived_from<T, DOMArrayBufferView>
- struct NativeValueTraits<
-- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>,
-- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>
-+ IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>
- : public NativeValueTraitsBase<MaybeShared<T>> {
- // BufferSourceTypeNoSizeLimit must be used only as arguments.
- static MaybeShared<T> NativeValue(v8::Isolate* isolate,
-@@ -836,11 +832,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
- // FlexibleArrayBufferView must be used only as arguments.
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -853,10 +846,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLBufferSourceTypeNoSizeLimit<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>
- : public NativeValueTraitsBase<T> {
- // BufferSourceTypeNoSizeLimit and FlexibleArrayBufferView must be used only
- // as arguments.
-@@ -871,11 +862,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<FlexibleArrayBufferView, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, FlexibleArrayBufferView>
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T> {
- // FlexibleArrayBufferView must be used only as arguments.
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1134,9 +1122,8 @@ NativeValueTraits<IDLSequence<T>>::NativeValue(
- }
-
- template <typename T>
--struct NativeValueTraits<IDLNullable<IDLSequence<T>>,
-- typename std::enable_if_t<
-- NativeValueTraits<IDLSequence<T>>::has_null_value>>
-+ requires NativeValueTraits<IDLSequence<T>>::has_null_value
-+struct NativeValueTraits<IDLNullable<IDLSequence<T>>>
- : public NativeValueTraitsBase<HeapVector<AddMemberIfNeeded<T>>*> {
- using ImplType = typename NativeValueTraits<IDLSequence<T>>::ImplType*;
-
-@@ -1203,9 +1190,8 @@ struct NativeValueTraits<IDLArray<T>>
- : public NativeValueTraits<IDLSequence<T>> {};
-
- template <typename T>
--struct NativeValueTraits<IDLNullable<IDLArray<T>>,
-- typename std::enable_if_t<
-- NativeValueTraits<IDLSequence<T>>::has_null_value>>
-+ requires NativeValueTraits<IDLSequence<T>>::has_null_value
-+struct NativeValueTraits<IDLNullable<IDLArray<T>>>
- : public NativeValueTraits<IDLNullable<IDLSequence<T>>> {};
-
- // Record types
-@@ -1335,10 +1321,8 @@ struct NativeValueTraits<IDLRecord<K, V>>
-
- // Callback function types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, CallbackFunctionBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1361,9 +1345,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>>
-+ requires std::derived_from<T, CallbackFunctionBase>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1392,10 +1375,8 @@ struct NativeValueTraits<
-
- // Callback interface types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, CallbackInterfaceBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1418,9 +1399,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>>
-+ requires std::derived_from<T, CallbackInterfaceBase>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1449,11 +1429,8 @@ struct NativeValueTraits<
-
- // Dictionary types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::DictionaryBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::DictionaryBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1464,14 +1441,11 @@ struct NativeValueTraits<
- // We don't support nullable dictionary types in general since it's quite
- // confusing and often misused.
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::DictionaryBase, T>::value &&
-- (std::is_same<T, GPUColorTargetState>::value ||
-- std::is_same<T, GPURenderPassColorAttachment>::value ||
-- std::is_same<T, GPUVertexBufferLayout>::value)>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::DictionaryBase> &&
-+ (std::same_as<T, GPUColorTargetState> ||
-+ std::same_as<T, GPURenderPassColorAttachment> ||
-+ std::same_as<T, GPUVertexBufferLayout>)
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1483,11 +1457,8 @@ struct NativeValueTraits<
-
- // Enumeration types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<
-- std::is_base_of<bindings::EnumerationBase, T>::value>>
-- : public NativeValueTraitsBase<T> {
-+ requires std::derived_from<T, bindings::EnumerationBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T> {
- static T NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1497,10 +1468,8 @@ struct NativeValueTraits<
-
- // Interface types
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, ScriptWrappable>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static inline T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1528,9 +1497,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>>
-+ requires std::derived_from<T, ScriptWrappable>
-+struct NativeValueTraits<IDLNullable<T>>
- : public NativeValueTraitsBase<IDLNullable<T>> {
- static inline T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
-@@ -1565,10 +1533,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- T,
-- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::UnionBase>
-+struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1584,10 +1550,8 @@ struct NativeValueTraits<
- };
-
- template <typename T>
--struct NativeValueTraits<
-- IDLNullable<T>,
-- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>>
-- : public NativeValueTraitsBase<T*> {
-+ requires std::derived_from<T, bindings::UnionBase>
-+struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> {
- static T* NativeValue(v8::Isolate* isolate,
- v8::Local<v8::Value> value,
- ExceptionState& exception_state) {
-@@ -1608,9 +1572,8 @@ struct NativeValueTraits<
-
- // Nullable types
- template <typename InnerType>
--struct NativeValueTraits<
-- IDLNullable<InnerType>,
-- typename std::enable_if_t<!NativeValueTraits<InnerType>::has_null_value>>
-+ requires(!NativeValueTraits<InnerType>::has_null_value)
-+struct NativeValueTraits<IDLNullable<InnerType>>
- : public NativeValueTraitsBase<IDLNullable<InnerType>> {
- // https://webidl.spec.whatwg.org/#es-nullable-type
- using ImplType =
-@@ -1642,9 +1605,8 @@ struct NativeValueTraits<IDLNullable<IDLNullable<T>>>;
-
- // Optional types
- template <typename T>
--struct NativeValueTraits<IDLOptional<T>,
-- typename std::enable_if_t<std::is_arithmetic<
-- typename NativeValueTraits<T>::ImplType>::value>>
-+ requires std::is_arithmetic_v<typename NativeValueTraits<T>::ImplType>
-+struct NativeValueTraits<IDLOptional<T>>
- : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
- using ImplType = typename NativeValueTraits<T>::ImplType;
-
-@@ -1666,9 +1628,8 @@ struct NativeValueTraits<IDLOptional<T>,
- };
-
- template <typename T>
--struct NativeValueTraits<IDLOptional<T>,
-- typename std::enable_if_t<std::is_pointer<
-- typename NativeValueTraits<T>::ImplType>::value>>
-+ requires std::is_pointer_v<typename NativeValueTraits<T>::ImplType>
-+struct NativeValueTraits<IDLOptional<T>>
- : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> {
- using ImplType = typename NativeValueTraits<T>::ImplType;
-
diff --git a/chromium-122-constexpr.patch b/chromium-122-constexpr.patch
deleted file mode 100644
index 282066c..0000000
--- a/chromium-122-constexpr.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h
---- chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me 2024-02-13 13:07:24.982184485 +0100
-+++ chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h 2024-02-13 13:07:45.510551589 +0100
-@@ -137,7 +137,7 @@ struct GlobalId {
-
- friend constexpr auto operator<=>(const GlobalId<RendererId>& lhs,
- const GlobalId<RendererId>& rhs) = default;
-- friend constexpr bool operator==(const GlobalId<RendererId>& lhs,
-+ friend bool operator==(const GlobalId<RendererId>& lhs,
- const GlobalId<RendererId>& rhs) = default;
- };
-
-diff -up chromium-122.0.6261.29/base/types/strong_alias.h.me chromium-122.0.6261.29/base/types/strong_alias.h
---- chromium-122.0.6261.29/base/types/strong_alias.h.me 2024-02-13 14:13:20.311374288 +0100
-+++ chromium-122.0.6261.29/base/types/strong_alias.h 2024-02-13 12:30:38.596913951 +0100
-@@ -110,7 +110,7 @@ class StrongAlias {
- // a `StrongAlias<W>`.
- friend constexpr auto operator<=>(const StrongAlias& lhs,
- const StrongAlias& rhs) = default;
-- friend constexpr bool operator==(const StrongAlias& lhs,
-+ friend bool operator==(const StrongAlias& lhs,
- const StrongAlias& rhs) = default;
-
- // Hasher to use in std::unordered_map, std::unordered_set, etc.
-diff -up chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h
---- chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr 2024-02-07 19:49:31.000000000 +0100
-+++ chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h 2024-02-13 11:12:52.913338699 +0100
-@@ -29,7 +29,7 @@ class ContextCollection {
- ContextCollection(const ContextCollection& other);
- ContextCollection& operator=(const ContextCollection& other);
-
-- friend constexpr bool operator==(const ContextCollection&,
-+ friend bool operator==(const ContextCollection&,
- const ContextCollection&) = default;
-
- // Adds `context` to the collection.
-@@ -67,7 +67,7 @@ struct QueryParams {
- QueryParams(const QueryParams& other);
- QueryParams& operator=(const QueryParams& other);
-
-- friend constexpr bool operator==(const QueryParams&,
-+ friend bool operator==(const QueryParams&,
- const QueryParams&) = default;
-
- // Resource types to measure.
diff --git a/chromium-122-el7-default-constructor-involving-anonymous-union.patch b/chromium-122-el7-default-constructor-involving-anonymous-union.patch
deleted file mode 100644
index 6e3cdf8..0000000
--- a/chromium-122-el7-default-constructor-involving-anonymous-union.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc
---- chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc 2024-02-25 10:52:16.071602503 +0100
-@@ -12,7 +12,7 @@
-
- namespace variations {
-
--UIStringOverrider::UIStringOverrider() = default;
-+UIStringOverrider::UIStringOverrider() {}
-
- UIStringOverrider::UIStringOverrider(base::span<const uint32_t> resource_hashes,
- base::span<const int> resource_indices)
-diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc
---- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union 2024-02-25 10:52:16.070602478 +0100
-+++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc 2024-02-25 11:20:36.583148226 +0100
-@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi
-
- } // namespace
-
--HeaderDirectFromSellerSignals::Result::Result() = default;
-+HeaderDirectFromSellerSignals::Result::Result() {}
-
- HeaderDirectFromSellerSignals::Result::Result(
- std::optional<std::string> seller_signals,
diff --git a/chromium-122-missing-header-files.patch b/chromium-122-missing-header-files.patch
deleted file mode 100644
index aa6bd70..0000000
--- a/chromium-122-missing-header-files.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-diff -up chromium-122.0.6261.29/base/check_op.h.missing-header-files chromium-122.0.6261.29/base/check_op.h
---- chromium-122.0.6261.29/base/check_op.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
-+++ chromium-122.0.6261.29/base/check_op.h 2024-02-12 14:59:48.136415060 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CHECK_OP_H_
- #define BASE_CHECK_OP_H_
-
-+#include <cstdint>
- #include <cstddef>
- #include <string>
- #include <string_view>
-diff -up chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files chromium-122.0.6261.29/base/containers/flat_map.h
---- chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
-+++ chromium-122.0.6261.29/base/containers/flat_map.h 2024-02-12 14:59:48.136415060 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CONTAINERS_FLAT_MAP_H_
- #define BASE_CONTAINERS_FLAT_MAP_H_
-
-+#include <cstdint>
- #include <functional>
- #include <tuple>
- #include <type_traits>
-diff -up chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h
---- chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2024-02-12 14:59:48.137415079 +0100
-+++ chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h 2024-02-12 15:28:17.168395787 +0100
-@@ -9,6 +9,7 @@
- #include <optional>
- #include <string>
- #include <vector>
-+#include <variant>
-
- #include "base/containers/span.h"
- #include "base/functional/callback_forward.h"
-diff -up chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc
---- chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2024-02-07 19:49:27.000000000 +0100
-+++ chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc 2024-02-12 14:59:48.137415079 +0100
-@@ -11,6 +11,7 @@
- #include <queue>
- #include <utility>
- #include <vector>
-+#include <cstring>
-
- #include "base/check.h"
- #include "base/files/file_path.h"
-diff -up chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h
---- chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2024-02-07 19:49:30.000000000 +0100
-+++ chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h 2024-02-12 14:59:48.138415097 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
- #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
-
-+#include <cstdint>
- #include <string>
-
- #include "components/feature_engagement/internal/event_storage_validator.h"
-diff -up chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files chromium-122.0.6261.29/gin/time_clamper.h
---- chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files 2024-02-07 19:49:35.000000000 +0100
-+++ chromium-122.0.6261.29/gin/time_clamper.h 2024-02-12 14:59:48.138415097 +0100
-@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
- const int64_t micros = now_micros % 1000;
- // abs() is necessary for devices with times before unix-epoch (most likely
- // configured incorrectly).
-- if (abs(micros) + kResolutionMicros < 1000) {
-+ if (std::abs(micros) + kResolutionMicros < 1000) {
- return now_micros / 1000;
- }
- return ClampTimeResolution(now_micros) / 1000;
-diff -up chromium-122.0.6261.29/net/base/net_export.h.missing-header-files chromium-122.0.6261.29/net/base/net_export.h
---- chromium-122.0.6261.29/net/base/net_export.h.missing-header-files 2024-02-07 19:49:38.000000000 +0100
-+++ chromium-122.0.6261.29/net/base/net_export.h 2024-02-12 14:59:48.139415116 +0100
-@@ -5,6 +5,8 @@
- #ifndef NET_BASE_NET_EXPORT_H_
- #define NET_BASE_NET_EXPORT_H_
-
-+#include <cstdint>
-+
- // Defines NET_EXPORT so that functionality implemented by the net module can
- // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
- // access features not intended to be used directly by real consumers.
-diff -up chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h
---- chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2024-02-07 19:49:40.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h 2024-02-12 14:59:48.142415172 +0100
-@@ -27,6 +27,7 @@
- #ifndef ABSL_STRINGS_STRING_VIEW_H_
- #define ABSL_STRINGS_STRING_VIEW_H_
-
-+#include <cstdint>
- #include <algorithm>
- #include <cassert>
- #include <cstddef>
-diff -up chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
---- chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2024-02-07 19:50:44.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2024-02-12 14:59:48.142415172 +0100
-@@ -28,6 +28,7 @@
- #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
- #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
-
-+#include <cstdint>
- #include <string>
- #include <unordered_map>
- #include <vector>
-diff -up chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc
---- chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files 2024-02-07 19:52:34.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2024-02-12 14:59:48.143415190 +0100
-@@ -14,6 +14,7 @@
- * limitations under the License.
- */
-
-+#include <cmath>
- #include "cpp/palettes/tones.h"
-
- #include "cpp/cam/cam.h"
-diff -up chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h
---- chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files 2024-02-07 19:52:59.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h 2024-02-12 14:59:48.143415190 +0100
-@@ -17,6 +17,7 @@ limitations under the License.
- #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
-
- #ifdef RUY_PROFILER
-+#include <string>
- #include <cstdio>
- #include <mutex>
- #include <vector>
-diff -up chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
---- chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2024-02-07 19:54:45.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2024-02-12 14:59:48.143415190 +0100
-@@ -45,6 +45,7 @@
- #include "llvm/Support/SaveAndRestore.h"
- #include "llvm/Support/raw_ostream.h"
- #include <algorithm>
-+#include <cstdint>
- #include <string>
- #include <sysexits.h>
- #ifdef HAVE_BACKTRACE
-diff -up chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
---- chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2024-02-12 14:59:48.143415190 +0100
-@@ -31,6 +31,7 @@ limitations under the License.
- #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
- #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
-
-+#include <cstdint>
- #include <complex>
- #include <deque>
- #include <vector>
-diff -up chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
---- chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2024-02-07 19:54:20.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2024-02-12 14:59:48.145415228 +0100
-@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
-
- // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
- #if VMA_STATS_STRING_ENABLED
-+#include <stdio.h>
- static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
- {
- snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
-diff -up chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc
---- chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2024-02-07 19:53:17.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc 2024-02-12 14:59:48.145415228 +0100
-@@ -8,6 +8,8 @@
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-+#include <cstring>
-+
- #include "audio/utility/channel_mixer.h"
-
- #include "audio/utility/channel_mixing_matrix.h"
-diff -up chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h
---- chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
-+++ chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h 2024-02-12 14:59:48.145415228 +0100
-@@ -11,6 +11,7 @@
- #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
- #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
-
-+#include <cstdint>
- #include <limits>
-
- #include "absl/types/optional.h"
-diff -up chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h
---- chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files 2024-02-07 19:50:05.000000000 +0100
-+++ chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h 2024-02-12 14:59:48.147415265 +0100
-@@ -9,6 +9,8 @@
-
- #include "ui/gfx/buffer_types.h"
-
-+#include <cstdint>
-+
- namespace ui {
-
- int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
diff --git a/chromium-122-no_matching_constructor.patch b/chromium-122-no_matching_constructor.patch
deleted file mode 100644
index 58efe90..0000000
--- a/chromium-122-no_matching_constructor.patch
+++ /dev/null
@@ -1,1116 +0,0 @@
-diff -up chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc
---- chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than 2024-02-22 22:42:43.000000000 +0100
-+++ chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc 2024-02-24 13:13:32.484503735 +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-122.0.6261.69/base/nix/mime_util_xdg.cc.than chromium-122.0.6261.69/base/nix/mime_util_xdg.cc
---- chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than 2024-02-22 22:42:43.000000000 +0100
-+++ chromium-122.0.6261.69/base/nix/mime_util_xdg.cc 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/base/trace_event/trace_log.cc.than chromium-122.0.6261.69/base/trace_event/trace_log.cc
---- chromium-122.0.6261.69/base/trace_event/trace_log.cc.than 2024-02-22 22:42:43.000000000 +0100
-+++ chromium-122.0.6261.69/base/trace_event/trace_log.cc 2024-02-24 13:13:32.484503735 +0100
-@@ -2198,8 +2198,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-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than 2024-02-22 22:42:50.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc 2024-02-24 13:13:32.485503752 +0100
-@@ -252,8 +252,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);
-@@ -355,8 +355,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-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than 2024-02-22 22:42:50.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2024-02-24 13:13:32.485503752 +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-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
---- chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than 2024-02-22 22:42:54.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc 2024-02-24 13:13:44.159712774 +0100
-@@ -283,8 +283,8 @@ void AutofillContextMenuManager::Execute
- AutofillManager& manager) {
- auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
- driver.browser_events().RendererShouldTriggerSuggestions(
-- FieldGlobalId(driver.GetFrameToken(),
-- FieldRendererId(params_.field_renderer_id)),
-+ FieldGlobalId{driver.GetFrameToken(),
-+ FieldRendererId(params_.field_renderer_id)},
- AutofillSuggestionTriggerSource::kManualFallbackPayments);
- }
-
-diff -up chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2024-02-24 13:13:32.485503752 +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-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc.than chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc
-diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
---- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2024-02-24 13:13:32.486503770 +0100
-@@ -60,12 +60,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
---- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2024-02-24 13:13:32.486503770 +0100
-@@ -87,6 +87,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
---- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2024-02-24 13:13:32.486503770 +0100
-@@ -64,8 +64,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
---- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2024-02-24 13:13:44.153712667 +0100
-@@ -79,17 +79,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
---- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2024-02-24 13:13:44.153712667 +0100
-@@ -74,12 +74,12 @@ 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-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
---- chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than 2024-02-22 22:42:55.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc 2024-02-24 13:13:44.159712774 +0100
-@@ -102,7 +102,7 @@ AddOptionsFromMojo(
- ConvertPathToUrl(sub_app->manifest_id_path, origin));
- ASSIGN_OR_RETURN(GURL install_url,
- ConvertPathToUrl(sub_app->install_url_path, origin));
-- sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
-+ sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
- }
- return sub_apps;
- }
-@@ -391,7 +391,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
- base::BindOnce(
- [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
- webapps::InstallResultCode result_code) {
-- return SubAppInstallResult(manifest_id, app_id, result_code);
-+ return SubAppInstallResult{manifest_id, app_id, result_code};
- },
- manifest_id)
- .Then(install_results_collector));
-diff -up chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc
---- chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than 2024-02-22 22:42:56.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc 2024-02-24 13:13:32.486503770 +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-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc
---- chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than 2024-02-22 22:43:02.000000000 +0100
-+++ chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc 2024-02-24 13:13:44.154712685 +0100
-@@ -673,7 +673,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-122.0.6261.69/components/performance_manager/worker_watcher.cc.than chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc
---- chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than 2024-02-22 22:43:02.000000000 +0100
-+++ chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2024-02-24 13:13:44.151712632 +0100
-@@ -1573,7 +1573,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-122.0.6261.69/content/browser/download/save_package.cc.than chromium-122.0.6261.69/content/browser/download/save_package.cc
---- chromium-122.0.6261.69/content/browser/download/save_package.cc.than 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/download/save_package.cc 2024-02-24 13:13:44.151712632 +0100
-@@ -801,8 +801,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-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc
---- chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc 2024-02-24 13:13:44.158712756 +0100
-@@ -773,7 +773,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-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h
---- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
---- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than 2024-02-22 22:43:05.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-24 13:13:44.152712649 +0100
-@@ -3461,10 +3461,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 std::nullopt;
-diff -up chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than 2024-02-24 13:13:44.157712739 +0100
-+++ chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc 2024-02-24 13:18:39.480119447 +0100
-@@ -8632,7 +8632,7 @@ void RenderFrameHostImpl::SendFencedFram
- for (const blink::FencedFrame::ReportingDestination& destination :
- destinations) {
- SendFencedFrameReportingBeaconInternal(
-- DestinationEnumEvent(event_type, event_data), destination);
-+ DestinationEnumEvent{event_type, event_data}, destination);
- }
- }
-
-@@ -8661,7 +8661,7 @@ void RenderFrameHostImpl::SendFencedFram
- }
-
- SendFencedFrameReportingBeaconInternal(
-- DestinationURLEvent(destination_url),
-+ DestinationURLEvent{destination_url},
- blink::FencedFrame::ReportingDestination::kBuyer);
- }
-
-@@ -8792,7 +8792,7 @@ void RenderFrameHostImpl::MaybeSendFence
- data = info->data;
- }
- initiator_rfh->SendFencedFrameReportingBeaconInternal(
-- AutomaticBeaconEvent(event_type, data), destination,
-+ AutomaticBeaconEvent{event_type, data}, destination,
- navigation_request.GetNavigationId());
- }
- } else {
-@@ -8803,7 +8803,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,
- navigation_request.GetNavigationId());
- }
- }
-diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc
---- chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than 2024-02-22 22:43:06.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc 2024-02-24 13:13:44.159712774 +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-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
---- chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than 2024-02-22 22:43:06.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc 2024-02-24 13:13:44.159712774 +0100
-@@ -363,10 +363,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-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc
---- chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than 2024-02-22 22:43:06.000000000 +0100
-+++ chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc 2024-02-24 13:13:44.159712774 +0100
-@@ -252,7 +252,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);
-@@ -260,7 +260,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 -up chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than chromium-122.0.6261.69/net/dns/host_resolver_cache.cc
---- chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than 2024-02-22 22:43:17.000000000 +0100
-+++ chromium-122.0.6261.69/net/dns/host_resolver_cache.cc 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h.than 2024-02-22 22:43:25.000000000 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than 2024-02-22 22:43:25.000000000 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
---- chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than 2024-02-22 22:45:02.000000000 +0100
-+++ chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2024-02-24 13:13:44.153712667 +0100
-@@ -507,7 +507,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-122.0.6261.69/ui/base/wayland/color_manager_util.h.than chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h
---- chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than 2024-02-22 22:44:12.000000000 +0100
-+++ chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h 2024-02-24 13:13:44.153712667 +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-122.0.6261.69/ui/gtk/gtk_ui.cc.than chromium-122.0.6261.69/ui/gtk/gtk_ui.cc
---- chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than 2024-02-22 22:44:13.000000000 +0100
-+++ chromium-122.0.6261.69/ui/gtk/gtk_ui.cc 2024-02-24 13:13:44.153712667 +0100
-@@ -1007,11 +1007,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-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc
---- chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me 2024-02-24 18:06:46.509393032 +0100
-+++ chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc 2024-02-24 18:07:11.258948241 +0100
-@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- if (current_reclaim_event_) {
- // Cache this kill event along with the time it took place.
-- current_reclaim_event_kills_.emplace_back(memory_freed_kb,
-- discard_complete_time);
-+ current_reclaim_event_kills_.emplace_back() = {memory_freed_kb,
-+ discard_complete_time};
- }
- }
-
-diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
---- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me 2024-02-24 19:58:09.929371791 +0100
-+++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc 2024-02-24 19:59:07.149524862 +0100
-@@ -631,10 +631,10 @@ std::unique_ptr<AutofillProfile> Address
- }
-
- 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-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
---- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me 2024-02-24 19:52:02.173682060 +0100
-+++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc 2024-02-24 19:52:25.247216329 +0100
-@@ -192,9 +192,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() = {proto_observation.type(),
- ProfileTokenQuality::FormSignatureHash(
-- proto_observation.form_hash()));
-+ proto_observation.form_hash())};
- }
- }
- }
-diff -up chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc
---- chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me 2024-02-25 00:14:26.830323365 +0100
-+++ chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc 2024-02-25 00:15:17.939241091 +0100
-@@ -402,7 +402,7 @@ void FencedFrameProperties::UpdateParent
- feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(),
- allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc());
- }
-- parent_permissions_info_.emplace(parsed_policies, parent_origin);
-+ parent_permissions_info_.emplace() = {parsed_policies, parent_origin};
- }
-
- } // namespace content
-diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
---- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me 2024-02-25 00:17:31.799644691 +0100
-+++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-25 00:18:54.157123519 +0100
-@@ -3332,9 +3332,9 @@ std::optional<DebugReportCooldown> DoGet
- return std::nullopt;
- }
-
-- return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0),
-+ return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0),
- static_cast<DebugReportCooldownType>(
-- cooldown_debugging_only_report.ColumnInt(1)));
-+ cooldown_debugging_only_report.ColumnInt(1))};
- }
-
- void DoGetDebugReportCooldowns(
-diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc
---- chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me 2024-02-25 00:20:33.535907981 +0100
-+++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc 2024-02-25 00:21:01.082402610 +0100
-@@ -501,7 +501,7 @@ bool SampleDebugReport(
- ? DebugReportCooldownType::kShortCooldown
- : DebugReportCooldownType::kRestrictedCooldown;
- new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
-- DebugReportCooldown(now, cooldown_type);
-+ DebugReportCooldown{now, cooldown_type};
- base::UmaHistogramEnumeration(
- "Ads.InterestGroup.Auction.ForDebuggingOnlyCooldownType", cooldown_type);
-
-diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h
---- chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me 2024-02-25 15:34:16.140768445 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h 2024-02-25 15:37:47.789665835 +0100
-@@ -24,6 +24,7 @@ struct MenuNotificationEntry {
- int command = 0;
- std::u16string label;
- safety_hub::SafetyHubModuleType module;
-+ MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { }
- };
-
- namespace {
-diff -up chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc
---- chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me 2024-02-25 16:22:46.601209269 +0100
-+++ chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc 2024-02-25 16:24:48.110618475 +0100
-@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G
-
- // Radii are clockwise from top left.
- const SkVector radii[4] = {
-- SkVector(top_content_corner_radius, top_content_corner_radius),
-- SkVector(top_content_corner_radius, top_content_corner_radius),
-- SkVector(bottom_content_corner_radius, bottom_content_corner_radius),
-- SkVector(bottom_content_corner_radius, bottom_content_corner_radius)};
-+ SkVector{top_content_corner_radius, top_content_corner_radius},
-+ SkVector{top_content_corner_radius, top_content_corner_radius},
-+ SkVector{bottom_content_corner_radius, bottom_content_corner_radius},
-+ SkVector{bottom_content_corner_radius, bottom_content_corner_radius}};
- SkRRect rrect;
- rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii);
- SkPath path;
-diff -up chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
---- chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me 2024-02-25 18:49:32.512080085 +0100
-+++ chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc 2024-02-25 19:07:36.518711693 +0100
-@@ -386,7 +386,7 @@ bool ShouldBlockAccessToPath(const base:
- DCHECK(block.path);
- blocked_path = base::FilePath(block.path);
- }
-- rules.emplace_back(blocked_path, block.type);
-+ rules.emplace_back() = {blocked_path, block.type};
- }
-
- base::FilePath nearest_ancestor;
-@@ -1575,11 +1575,11 @@ void ChromeFileSystemAccessPermissionCon
- // profile's directory, assuming the profile dir is a child of the user data
- // dir.
- std::vector<BlockPathRule> extra_rules;
-- extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren);
-+ extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren};
- if (g_browser_process->profile_manager()) {
-- extra_rules.emplace_back(
-+ extra_rules.emplace_back() = {
- g_browser_process->profile_manager()->user_data_dir(),
-- kBlockAllChildren);
-+ kBlockAllChildren};
- }
-
- base::ThreadPool::PostTaskAndReplyWithResult(
-diff -up chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc
---- chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me 2024-02-25 19:14:16.227843148 +0100
-+++ chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc 2024-02-25 19:15:04.589307468 +0100
-@@ -53,7 +53,7 @@ std::vector<PageDiscarder::DiscardEvent>
- if (lifecycle_unit->DiscardTab(
- discard_reason,
- /*memory_footprint_estimate=*/proxy.second)) {
-- discard_events.emplace_back(base::TimeTicks::Now(), proxy.second);
-+ discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second};
- }
- }
- return discard_events;
-diff -up chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h
---- chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me 2024-02-25 17:26:25.623572458 +0100
-+++ chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h 2024-02-25 17:29:52.983345280 +0100
-@@ -204,6 +204,7 @@ class ServiceWorkerTaskQueue : public Ke
- raw_ptr<content::BrowserContext> browser_context;
- base::UnguessableToken token;
-
-+ SequencedContextId(auto e, auto b, auto t) : extension_id(e), browser_context(b), token(t) { }
- bool operator<(const SequencedContextId& rhs) const {
- return std::tie(extension_id, browser_context, token) <
- std::tie(rhs.extension_id, rhs.browser_context, rhs.token);
-diff -up chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc
---- chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me 2024-02-25 20:05:40.567891077 +0100
-+++ chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc 2024-02-25 20:05:46.407001997 +0100
-@@ -3993,10 +3993,10 @@ void RenderViewContextMenu::ExecOpenComp
- autofill::LocalFrameToken frame_token = driver->GetFrameToken();
- client->GetManager().OpenCompose(
- *driver,
-- autofill::FormGlobalId(
-- frame_token, autofill::FormRendererId(params_.form_renderer_id)),
-- autofill::FieldGlobalId(
-- frame_token, autofill::FieldRendererId(params_.field_renderer_id)),
-+ autofill::FormGlobalId{
-+ frame_token, autofill::FormRendererId(params_.form_renderer_id)},
-+ autofill::FieldGlobalId{
-+ frame_token, autofill::FieldRendererId(params_.field_renderer_id)},
- compose::ComposeManagerImpl::UiEntryPoint::kContextMenu);
- new_badge_tracker_.ActionPerformed("compose_menu_item_activated");
- } else {
diff --git a/chromium-122-python3-assignment-expressions.patch b/chromium-122-python3-assignment-expressions.patch
deleted file mode 100644
index 61ce037..0000000
--- a/chromium-122-python3-assignment-expressions.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py
---- chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me 2024-02-23 12:04:45.451423995 +0100
-+++ chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py 2024-02-23 12:18:04.099824392 +0100
-@@ -124,7 +124,8 @@ def _GenerateH(basepath, fileroot, head,
- f.write(u'#include <cstddef>\n')
- f.write(u'\n')
-
-- if system_headers := schema.get(u'system-headers', []):
-+ system_headers = schema.get(u'system-headers', [])
-+ if system_headers:
- for header in system_headers:
- f.write(u'#include <%s>\n' % header)
- f.write(u'\n')
diff --git a/chromium-122-static-assert.patch b/chromium-122-static-assert.patch
deleted file mode 100644
index b24439f..0000000
--- a/chromium-122-static-assert.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit 04866680f4f9a8475ae3795ad6ed59649ba478d7
-Author: Jose Dapena Paz <jdapena@igalia.com>
-Date: Tue Jan 23 12:04:05 2024 +0000
-
- libstdc++: fix static assertion in NodeUuidEquality
-
- libstdc++ equality checks in static assertion that it is possible to
- compare for equality base::Uuid to BookmarkNode*. This was a missing
- operator in NodeUuidEquality that this changeset adds.
-
- Bug: 957519
- Change-Id: Icc9809cb43d321f0b3e3394ef27ab55672aec5e7
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227686
- Reviewed-by: Mikel Astiz <mastiz@chromium.org>
- Commit-Queue: José Dapena Paz <jdapena@igalia.com>
- Cr-Commit-Position: refs/heads/main@{#1250753}
-
-diff --git a/components/bookmarks/browser/uuid_index.h b/components/bookmarks/browser/uuid_index.h
-index 77cb1a1a54dd9..639d6fefcd831 100644
---- a/components/bookmarks/browser/uuid_index.h
-+++ b/components/bookmarks/browser/uuid_index.h
-@@ -23,6 +23,10 @@ class NodeUuidEquality {
- bool operator()(const BookmarkNode* n1, const base::Uuid& uuid2) const {
- return n1->uuid() == uuid2;
- }
-+
-+ bool operator()(const base::Uuid& uuid1, const BookmarkNode* n2) const {
-+ return uuid1 == n2->uuid();
-+ }
- };
-
- // Used to hash BookmarkNode instances by UUID.
diff --git a/chromium-122-typename.patch b/chromium-122-typename.patch
deleted file mode 100644
index 1fc8079..0000000
--- a/chromium-122-typename.patch
+++ /dev/null
@@ -1,385 +0,0 @@
-
-fixed error: missing 'typename' prior to dependent type name
-
-diff -up chromium-122.0.6261.69/base/containers/map_util.h.typename chromium-122.0.6261.69/base/containers/map_util.h
---- chromium-122.0.6261.69/base/containers/map_util.h.typename 2024-02-22 22:42:43.000000000 +0100
-+++ chromium-122.0.6261.69/base/containers/map_util.h 2024-02-24 15:05:00.882592705 +0100
-@@ -42,7 +42,7 @@ constexpr internal::MappedType<Map>* Fin
- 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 @@ constexpr const MappedElementType* FindP
- 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-122.0.6261.69/base/functional/bind_internal.h.typename chromium-122.0.6261.69/base/functional/bind_internal.h
---- chromium-122.0.6261.69/base/functional/bind_internal.h.typename 2024-02-24 15:05:00.883592724 +0100
-+++ chromium-122.0.6261.69/base/functional/bind_internal.h 2024-02-24 15:13:49.755223533 +0100
-@@ -1400,11 +1400,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>;
-
- template <bool v = !UnwrappedParam::kRawPtr ||
-diff -up chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc
---- chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename 2024-02-22 22:42:50.000000000 +0100
-+++ chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc 2024-02-24 15:05:00.882592705 +0100
-@@ -90,7 +90,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);
-@@ -1090,9 +1090,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-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h
---- chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename 2024-02-22 22:43:01.000000000 +0100
-+++ chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h 2024-02-24 15:05:00.884592742 +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-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h
---- chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename 2024-02-22 22:43:01.000000000 +0100
-+++ chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h 2024-02-24 15:05:00.884592742 +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 -up chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h
---- chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename 2024-02-22 22:43:01.000000000 +0100
-+++ chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h 2024-02-24 15:05:00.883592724 +0100
-@@ -241,7 +241,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_);
-@@ -263,7 +263,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_);
-@@ -421,7 +421,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_);
-
-@@ -438,7 +438,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_);
-@@ -498,7 +498,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-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.typename chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
-diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h
---- chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename 2024-02-22 22:43:15.000000000 +0100
-+++ chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h 2024-02-24 15:05:00.884592742 +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-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h
---- chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename 2024-02-22 22:43:20.000000000 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2024-02-24 15:05:00.883592724 +0100
-@@ -218,7 +218,7 @@ class PairAsyncIterable {
- private:
- virtual IterationSource* CreateIterationSource(
- ScriptState* script_state,
-- IterationSource::Kind kind,
-+ typename IterationSource::Kind kind,
- ExceptionState& exception_state) = 0;
- };
-
-@@ -260,7 +260,7 @@ class ValueAsyncIterable {
- private:
- virtual IterationSource* CreateIterationSource(
- ScriptState* script_state,
-- IterationSource::Kind kind,
-+ typename IterationSource::Kind kind,
- ExceptionState& exception_state) = 0;
- };
-
-diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
---- chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename 2024-02-24 15:05:00.882592705 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2024-02-24 15:12:27.742724849 +0100
-@@ -211,7 +211,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;
- static_assert(std::is_same_v<Char, UChar> || std::is_same_v<Char, LChar>);
-diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
---- chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename 2024-02-22 22:43:21.000000000 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2024-02-24 15:05:00.883592724 +0100
-@@ -272,8 +272,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-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h
---- chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me 2024-02-24 16:51:41.292310554 +0100
-+++ chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h 2024-02-24 16:52:10.022896063 +0100
-@@ -26,7 +26,7 @@ PartitionRoot& InternalAllocatorRoot();
-
- // A class that meets C++ named requirements, Allocator.
- template <typename T>
--InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
-+typename InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
- std::size_t count) {
- PA_CHECK(count <=
- std::numeric_limits<std::size_t>::max() / sizeof(value_type));
-diff -up chromium-122.0.6261.69/base/functional/function_ref.h.me chromium-122.0.6261.69/base/functional/function_ref.h
---- chromium-122.0.6261.69/base/functional/function_ref.h.me 2024-02-24 17:59:35.119582549 +0100
-+++ chromium-122.0.6261.69/base/functional/function_ref.h 2024-02-24 18:00:27.107938399 +0100
-@@ -64,7 +64,7 @@ class FunctionRef;
- template <typename R, typename... Args>
- class FunctionRef<R(Args...)> {
- template <typename Functor,
-- typename RunType = internal::MakeFunctorTraits<Functor>::RunType>
-+ typename RunType = typename internal::MakeFunctorTraits<Functor>::RunType>
- static constexpr bool kCompatibleFunctor =
- std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
- std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
-diff -up chromium-122.0.6261.69/base/containers/heap_array.h.me chromium-122.0.6261.69/base/containers/heap_array.h
---- chromium-122.0.6261.69/base/containers/heap_array.h.me 2024-02-24 18:02:34.463921568 +0100
-+++ chromium-122.0.6261.69/base/containers/heap_array.h 2024-02-24 18:04:01.922850571 +0100
-@@ -32,8 +32,8 @@ class TRIVIAL_ABI GSL_OWNER HeapArray {
- static_assert(!std::is_reference_v<T>,
- "HeapArray cannot hold reference types");
-
-- using iterator = base::span<T>::iterator;
-- using const_iterator = base::span<const T>::iterator;
-+ using iterator = typename base::span<T>::iterator;
-+ using const_iterator = typename base::span<const T>::iterator;
-
- // Allocates initialized memory capable of holding `size` elements. No memory
- // is allocated for zero-sized arrays.
-diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h
---- chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me 2024-02-24 18:51:06.957087464 +0100
-+++ chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h 2024-02-24 18:51:27.778488490 +0100
-@@ -125,7 +125,7 @@ using VecValueType = typename Vec::value
-
- template <typename Vec>
- using VecPtrLikeUnderlyingValueType =
-- std::pointer_traits<VecValueType<Vec>>::element_type;
-+ typename std::pointer_traits<VecValueType<Vec>>::element_type;
-
- } // namespace internal
-
-diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h
---- chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me 2024-02-24 19:45:13.620934215 +0100
-+++ chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h 2024-02-24 19:46:08.817940962 +0100
-@@ -2005,7 +2005,7 @@ struct HashTableConstIteratorAdapter {
- static_assert(!IsTraceable<typename Traits::TraitType>::value);
-
- using iterator_category = std::bidirectional_iterator_tag;
-- using value_type = HashTableType::ValueType;
-+ using value_type = typename HashTableType::ValueType;
- using difference_type = ptrdiff_t;
- using pointer = value_type*;
- using reference = value_type&;
-@@ -2057,7 +2057,7 @@ struct HashTableConstIteratorAdapter<
-
- public:
- using iterator_category = std::bidirectional_iterator_tag;
-- using value_type = HashTableType::ValueType;
-+ using value_type = typename HashTableType::ValueType;
- using difference_type = ptrdiff_t;
- using pointer = value_type*;
- using reference = value_type&;
-@@ -2111,7 +2111,7 @@ struct HashTableIteratorAdapter {
- static_assert(!IsTraceable<typename Traits::TraitType>::value);
-
- using iterator_category = std::bidirectional_iterator_tag;
-- using value_type = HashTableType::ValueType;
-+ using value_type = typename HashTableType::ValueType;
- using difference_type = ptrdiff_t;
- using pointer = value_type*;
- using reference = value_type&;
-@@ -2159,7 +2159,7 @@ struct HashTableIteratorAdapter<
-
- public:
- using iterator_category = std::bidirectional_iterator_tag;
-- using value_type = HashTableType::ValueType;
-+ using value_type = typename HashTableType::ValueType;
- using difference_type = ptrdiff_t;
- using pointer = value_type*;
- using reference = value_type&;
-diff -up chromium-122.0.6261.69/base/types/fixed_array.h.me chromium-122.0.6261.69/base/types/fixed_array.h
---- chromium-122.0.6261.69/base/types/fixed_array.h.me 2024-02-25 11:22:59.819590529 +0100
-+++ chromium-122.0.6261.69/base/types/fixed_array.h 2024-02-25 11:24:12.424953031 +0100
-@@ -27,8 +27,8 @@ template <typename T,
- class FixedArray : public absl::FixedArray<T, N, A> {
- public:
- using absl::FixedArray<T, N, A>::FixedArray;
-- explicit FixedArray(absl::FixedArray<T, N, A>::size_type n,
-- const absl::FixedArray<T, N, A>::allocator_type& a =
-+ explicit FixedArray(typename absl::FixedArray<T, N, A>::size_type n,
-+ const typename absl::FixedArray<T, N, A>::allocator_type& a =
- typename absl::FixedArray<T, N, A>::allocator_type())
- : FixedArray(n, T(), a) {}
- };
-diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h
---- chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me 2024-02-25 15:04:56.775897713 +0100
-+++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h 2024-02-25 15:05:34.884579279 +0100
-@@ -121,7 +121,7 @@ class CommandBase {
- template <typename LockType>
- class CommandWithLock : public CommandBase {
- public:
-- using LockDescription = LockType::LockDescription;
-+ using LockDescription = typename LockType::LockDescription;
- explicit CommandWithLock(const std::string& name,
- LockDescription initial_lock_request);
-
-diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h
---- chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me 2024-02-25 15:05:46.885793828 +0100
-+++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h 2024-02-25 15:06:12.334248725 +0100
-@@ -106,7 +106,7 @@ class WebAppLockManager;
- template <typename LockType, typename... CallbackArgs>
- class WebAppCommand : public internal::CommandWithLock<LockType> {
- public:
-- using LockDescription = LockType::LockDescription;
-+ using LockDescription = typename LockType::LockDescription;
- using CallbackType = base::OnceCallback<void(CallbackArgs...)>;
- using ShutdownArgumentsTuple = std::tuple<std::decay_t<CallbackArgs>...>;
-
-diff -up chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h
---- chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me 2024-02-25 15:06:17.896348149 +0100
-+++ chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h 2024-02-25 15:06:58.841076746 +0100
-@@ -355,7 +355,7 @@ class WebAppCommandScheduler {
- // command system.
- template <typename LockType>
- void ScheduleCallback(const std::string& operation_name,
-- LockType::LockDescription lock_description,
-+ typename LockType::LockDescription lock_description,
- CallbackCommand<LockType, void> callback,
- base::OnceClosure on_complete,
- const base::Location& location = FROM_HERE) {
-@@ -373,7 +373,7 @@ class WebAppCommandScheduler {
- typename CallbackReturnValue = std::decay_t<CompletionCallbackArg>>
- void ScheduleCallbackWithResult(
- const std::string& operation_name,
-- LockType::LockDescription lock_description,
-+ typename LockType::LockDescription lock_description,
- CallbackCommand<LockType, CallbackReturnValue> callback,
- base::OnceCallback<void(CompletionCallbackArg)> on_complete,
- CallbackReturnValue arg_for_shutdown,
-diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
---- chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me 2024-02-25 15:12:53.835409392 +0100
-+++ chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h 2024-02-25 15:16:03.171931033 +0100
-@@ -424,7 +424,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();
- }
-@@ -469,7 +469,7 @@ class RetryingFetcherImpl final : public
- }
-
- // Client callback.
-- TypedProtoFetcher<Response>::Callback callback_;
-+ typename TypedProtoFetcher<Response>::Callback callback_;
-
- // Retry controls.
- base::OneShotTimer timer_;
-@@ -490,7 +490,7 @@ class ParallelFetchManager {
- // Deferred fetcher is required because it should be started after it is
- // stored internally.
- using Fetcher = ProtoFetcher<Response>;
-- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
-+ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
-
- public:
- // Provides fresh instances of a deferred fetcher for each fetch.
-@@ -506,7 +506,7 @@ 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) {
- CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
- KeyType key = requests_in_flight_.Add(MakeFetcher(request));
- requests_in_flight_.Lookup(key)->Start(
diff --git a/chromium-122-unique_ptr.patch b/chromium-122-unique_ptr.patch
deleted file mode 100644
index 9462ae6..0000000
--- a/chromium-122-unique_ptr.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-commit 5517d167c083885847a08a83b96da03b1eb2bc3e
-Author: Jose Dapena Paz <jdapena@igalia.com>
-Date: Tue Jan 23 15:34:35 2024 +0000
-
- libstdc++: do not require including unique_ptr in header
-
- Including std::unique_ptr declaration initial value requires
- declaration of contained type.
-
- Bug: 957519
- Change-Id: If9b0362b6cea48a395041faa82f83b6f48b98403
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5225137
- Reviewed-by: Caroline Rising <corising@chromium.org>
- Commit-Queue: José Dapena Paz <jdapena@igalia.com>
- Cr-Commit-Position: refs/heads/main@{#1250826}
-
-diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h
-index ec3e34a86f4c5..32ca27b6d126b 100644
---- a/chrome/browser/ui/views/toolbar/toolbar_view.h
-+++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
-@@ -311,8 +311,7 @@ class ToolbarView : public views::AccessiblePaneView,
- AppMenuIconController app_menu_icon_controller_;
-
- std::unique_ptr<ChromeLabsModel> chrome_labs_model_;
-- std::unique_ptr<ExtensionsToolbarCoordinator>
-- extensions_toolbar_coordinator_ = nullptr;
-+ std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
-
- // Controls whether or not a home button should be shown on the toolbar.
- BooleanPrefMember show_home_button_;
-diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
-index 3046c543c7c8e..46ff5d40ffad3 100644
---- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
-+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
-@@ -150,8 +150,7 @@ class WebAppToolbarButtonContainer : public views::View,
- std::unique_ptr<PageActionIconController> page_action_icon_controller_;
- int page_action_insertion_point_ = 0;
-
-- std::unique_ptr<ExtensionsToolbarCoordinator>
-- extensions_toolbar_coordinator_ = nullptr;
-+ std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
-
- // All remaining members are owned by the views hierarchy.
- raw_ptr<WebAppOriginText> web_app_origin_text_ = nullptr;
diff --git a/chromium-122-workaround_clang_bug-structured_binding.patch b/chromium-122-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index 6526e6a..0000000
--- a/chromium-122-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,79 +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-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 -up chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc
---- chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me 2024-02-25 10:07:28.312646853 +0100
-+++ chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc 2024-02-25 10:11:07.018481980 +0100
-@@ -416,7 +416,8 @@ void ServiceWorkerRaceNetworkRequestURLL
- }
-
- uint32_t num_bytes_to_consume = 0;
-- auto [result, read_buffer] = BeginReadData();
-+ auto [r, read_buffer] = BeginReadData();
-+ auto result = r;
- TRACE_EVENT_WITH_FLOW2(
- "ServiceWorker",
- "ServiceWorkerRaceNetworkRequestURLLoaderClient::ReadAndWrite",
-diff -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc
---- chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me 2024-02-25 18:03:51.654579579 +0100
-+++ chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc 2024-02-25 18:12:45.144287750 +0100
-@@ -136,7 +136,8 @@ void PrewarmHttpDiskCacheManager::MaybeP
- std::pair<url::Origin, GURL> origin_and_url;
- std::swap(origin_and_url, queued_jobs_.front());
- queued_jobs_.pop();
-- const auto& [origin, url] = origin_and_url;
-+ const auto& [origin, u] = origin_and_url;
-+ const auto& url = u;
- TRACE_EVENT_WITH_FLOW1(
- "loading", "PrewarmHttpDiskCacheManager::MaybeProcessNextQueuedJob",
- TRACE_ID_LOCAL(this),
diff --git a/chromium-123-constexpr.patch b/chromium-123-constexpr.patch
new file mode 100644
index 0000000..aa59c3e
--- /dev/null
+++ b/chromium-123-constexpr.patch
@@ -0,0 +1,60 @@
+diff -up chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h
+--- chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h.me 2024-02-13 13:07:24.982184485 +0100
++++ chromium-122.0.6261.29/components/autofill/core/common/unique_ids.h 2024-02-13 13:07:45.510551589 +0100
+@@ -137,7 +137,7 @@ struct GlobalId {
+
+ friend constexpr auto operator<=>(const GlobalId<RendererId>& lhs,
+ const GlobalId<RendererId>& rhs) = default;
+- friend constexpr bool operator==(const GlobalId<RendererId>& lhs,
++ friend bool operator==(const GlobalId<RendererId>& lhs,
+ const GlobalId<RendererId>& rhs) = default;
+ };
+
+diff -up chromium-122.0.6261.29/base/types/strong_alias.h.me chromium-122.0.6261.29/base/types/strong_alias.h
+--- chromium-122.0.6261.29/base/types/strong_alias.h.me 2024-02-13 14:13:20.311374288 +0100
++++ chromium-122.0.6261.29/base/types/strong_alias.h 2024-02-13 12:30:38.596913951 +0100
+@@ -110,7 +110,7 @@ class StrongAlias {
+ // a `StrongAlias<W>`.
+ friend constexpr auto operator<=>(const StrongAlias& lhs,
+ const StrongAlias& rhs) = default;
+- friend constexpr bool operator==(const StrongAlias& lhs,
++ friend bool operator==(const StrongAlias& lhs,
+ const StrongAlias& rhs) = default;
+
+ // Hasher to use in std::unordered_map, std::unordered_set, etc.
+diff -up chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h
+--- chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr 2024-02-07 19:49:31.000000000 +0100
++++ chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h 2024-02-13 11:12:52.913338699 +0100
+@@ -67,7 +67,7 @@ struct QueryParams {
+ QueryParams(const QueryParams& other);
+ QueryParams& operator=(const QueryParams& other);
+
+- friend constexpr bool operator==(const QueryParams&,
++ friend bool operator==(const QueryParams&,
+ const QueryParams&) = default;
+
+ // Resource types to measure.
+diff -up chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h.me chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h
+--- chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h.me 2024-03-17 11:57:22.097161565 +0100
++++ chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h 2024-03-17 22:18:25.442101825 +0100
+@@ -28,7 +28,7 @@ class ContextCollection {
+ ContextCollection(const ContextCollection& other);
+ ContextCollection& operator=(const ContextCollection& other);
+
+- friend constexpr bool operator==(const ContextCollection&,
++ friend bool operator==(const ContextCollection&,
+ const ContextCollection&) = default;
+
+ // Adds `context` to the collection.
+diff -up chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h.me chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h
+--- chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h.me 2024-03-16 23:38:10.437128249 +0100
++++ chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h 2024-03-16 23:59:50.868080652 +0100
+@@ -57,7 +57,7 @@ struct IsRequired {
+ // This function is not defined and consteval. Therefore, any evaluation will
+ // fail and fail at compile time.
+ template <typename T>
+- consteval operator T(); // NOLINT
++ operator T(); // NOLINT
+ };
+
+ } // namespace internal
diff --git a/chromium-123-el7-clang-build-failure.patch b/chromium-123-el7-clang-build-failure.patch
new file mode 100644
index 0000000..4b04d7a
--- /dev/null
+++ b/chromium-123-el7-clang-build-failure.patch
@@ -0,0 +1,228 @@
+commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
+Author: sisidovski <sisidovski@chromium.org>
+Date: Tue Oct 24 09:32:49 2023 +0000
+
+ Remove unused items from the RaceNetworkRequest hashmap
+
+ When the AutoPreload or the race-network-and-fetch-handler option in the
+ static routing API is enabled, network requests are dispatched and
+ URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope.
+ Those are consumed inside the fetch handler when fetch(e.request) is
+ called. But if the fetch handler doesn't call fetch() e.g. fallback,
+ those hashmap items does not have a chance to be removed.
+
+ This CL changes the hashmap items to be removed when the fetch event
+ finishes, and the URLLoaderFactory is still not consumed at that time.
+ This may loose the dedupe capability if fetch() is called later e.g.
+ setTimeout(() => fetch()), but it makes sense to prioritize keeping the
+ hashmap small.
+
+ Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848
+ Bug: 1492640
+ Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840
+ Reviewed-by: Minoru Chikamune <chikamune@chromium.org>
+ Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
+ Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
+ Cr-Commit-Position: refs/heads/main@{#1214064}
+
+diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me 2024-03-18 10:34:27.604707632 +0100
++++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc 2024-03-18 11:52:14.309983505 +0100
+@@ -46,7 +46,6 @@
+ #include "services/network/public/cpp/cross_origin_embedder_policy.h"
+ #include "services/network/public/mojom/cookie_manager.mojom-blink.h"
+ #include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
+-#include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
+ #include "third_party/blink/public/common/features.h"
+ #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
+ #include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h"
+@@ -1097,10 +1096,6 @@ void ServiceWorkerGlobalScope::DidHandle
+ TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope,
+ TRACE_ID_LOCAL(event_id)),
+ TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status));
+-
+- // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used.
+- RemoveItemFromRaceNetworkRequests(event_id);
+-
+ if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id,
+ status)) {
+ // The event may have been aborted. Its response callback also needs to be
+@@ -1500,7 +1495,6 @@ void ServiceWorkerGlobalScope::AbortCall
+ response_callback_iter->value->TakeValue().reset();
+ fetch_response_callbacks_.erase(response_callback_iter);
+ }
+- RemoveItemFromRaceNetworkRequests(event_id);
+
+ // Run the event callback with the error code.
+ auto event_callback_iter = fetch_event_callbacks_.find(event_id);
+@@ -1588,11 +1582,52 @@ void ServiceWorkerGlobalScope::StartFetc
+
+ if (params->race_network_request_loader_factory &&
+ params->request->service_worker_race_network_request_token) {
+- InsertNewItemToRaceNetworkRequests(
+- event_id,
+- params->request->service_worker_race_network_request_token.value(),
+- std::move(params->race_network_request_loader_factory),
+- params->request->url);
++ auto insert_result = race_network_request_loader_factories_.insert(
++ String(params->request->service_worker_race_network_request_token
++ ->ToString()),
++ std::move(params->race_network_request_loader_factory));
++
++ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
++ // to |race_network_request_loader_factories_|.
++ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
++ // and identify the cause.
++ static bool has_dumped_without_crashing_for_empty_token = false;
++ static bool has_dumped_without_crashing_for_not_new_entry = false;
++ if (!has_dumped_without_crashing_for_empty_token &&
++ params->request->service_worker_race_network_request_token
++ ->is_empty()) {
++ has_dumped_without_crashing_for_empty_token = true;
++ SCOPED_CRASH_KEY_BOOL(
++ "SWGlobalScope", "empty_race_token",
++ params->request->service_worker_race_network_request_token
++ ->is_empty());
++ SCOPED_CRASH_KEY_STRING64(
++ "SWGlobalScope", "race_token_string",
++ params->request->service_worker_race_network_request_token
++ ->ToString());
++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
++ insert_result.is_new_entry);
++ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
++ params->request->url.GetString().Utf8());
++ base::debug::DumpWithoutCrashing();
++ }
++ if (!has_dumped_without_crashing_for_not_new_entry &&
++ !insert_result.is_new_entry) {
++ has_dumped_without_crashing_for_not_new_entry = true;
++ SCOPED_CRASH_KEY_BOOL(
++ "SWGlobalScope", "empty_race_token",
++ params->request->service_worker_race_network_request_token
++ ->is_empty());
++ SCOPED_CRASH_KEY_STRING64(
++ "SWGlobalScope", "race_token_string",
++ params->request->service_worker_race_network_request_token
++ ->ToString());
++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
++ insert_result.is_new_entry);
++ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
++ params->request->url.GetString().Utf8());
++ base::debug::DumpWithoutCrashing();
++ }
+ }
+
+ Request* request = Request::Create(
+@@ -2805,71 +2840,12 @@ bool ServiceWorkerGlobalScope::SetAttrib
+ std::optional<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
+ ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
+ const base::UnguessableToken& token) {
+- std::unique_ptr<RaceNetworkRequestInfo> result =
+- race_network_requests_.Take(String(token.ToString()));
++ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
++ race_network_request_loader_factories_.Take(String(token.ToString()));
+ if (result) {
+- race_network_request_fetch_event_ids_.erase(result->fetch_event_id);
+- return std::optional<
+- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>(
+- std::move(result->url_loader_factory));
++ return result;
+ }
+ return std::nullopt;
+ }
+
+-void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
+- int fetch_event_id,
+- const base::UnguessableToken& token,
+- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+- url_loader_factory,
+- const KURL& request_url) {
+- auto race_network_request_token = String(token.ToString());
+- auto info = std::make_unique<RaceNetworkRequestInfo>(
+- fetch_event_id, race_network_request_token,
+- std::move(url_loader_factory));
+- race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get());
+- auto insert_result = race_network_requests_.insert(race_network_request_token,
+- std::move(info));
+-
+- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
+- // to |race_network_request_loader_factories_|.
+- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
+- // and identify the cause.
+- static bool has_dumped_without_crashing_for_empty_token = false;
+- static bool has_dumped_without_crashing_for_not_new_entry = false;
+- if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) {
+- has_dumped_without_crashing_for_empty_token = true;
+- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
+- token.is_empty());
+- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
+- token.ToString());
+- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
+- insert_result.is_new_entry);
+- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
+- request_url.GetString().Utf8());
+- base::debug::DumpWithoutCrashing();
+- }
+- if (!has_dumped_without_crashing_for_not_new_entry &&
+- !insert_result.is_new_entry) {
+- has_dumped_without_crashing_for_not_new_entry = true;
+- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
+- token.is_empty());
+- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
+- token.ToString());
+- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
+- insert_result.is_new_entry);
+- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
+- request_url.GetString().Utf8());
+- base::debug::DumpWithoutCrashing();
+- }
+-}
+-
+-void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests(
+- int fetch_event_id) {
+- RaceNetworkRequestInfo* info =
+- race_network_request_fetch_event_ids_.Take(fetch_event_id);
+- if (info) {
+- race_network_requests_.erase(info->token);
+- }
+-}
+-
+ } // namespace blink
+diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
+--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me 2024-03-18 10:26:14.905817501 +0100
++++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h 2024-03-18 11:47:58.202198028 +0100
+@@ -623,14 +623,6 @@ class MODULES_EXPORT ServiceWorkerGlobal
+ // ServiceWorker.FetchEvent.QueuingTime histogram.
+ void RecordQueuingTime(base::TimeTicks created_time);
+
+- void InsertNewItemToRaceNetworkRequests(
+- int fetch_event_id,
+- const base::UnguessableToken& token,
+- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+- url_loader_factory,
+- const KURL& request_url);
+- void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
+-
+ Member<ServiceWorkerClients> clients_;
+ Member<ServiceWorkerRegistration> registration_;
+ Member<::blink::ServiceWorker> service_worker_;
+@@ -776,17 +768,10 @@ class MODULES_EXPORT ServiceWorkerGlobal
+
+ blink::BlinkStorageKey storage_key_;
+
+- struct RaceNetworkRequestInfo {
+- int fetch_event_id;
+- String token;
+- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+- url_loader_factory;
+- };
+ // TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a
+ // key. As a workaround uses WTF::String as a key instead.
+- HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
+- race_network_requests_;
+- HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
++ HashMap<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
++ race_network_request_loader_factories_;
+
+ HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
+ remote_associated_interfaces_{this};
diff --git a/chromium-123-el7-default-constructor-involving-anonymous-union.patch b/chromium-123-el7-default-constructor-involving-anonymous-union.patch
new file mode 100644
index 0000000..9593ea7
--- /dev/null
+++ b/chromium-123-el7-default-constructor-involving-anonymous-union.patch
@@ -0,0 +1,36 @@
+diff -up chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc
+--- chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc 2024-02-25 10:52:16.071602503 +0100
+@@ -12,7 +12,7 @@
+
+ namespace variations {
+
+-UIStringOverrider::UIStringOverrider() = default;
++UIStringOverrider::UIStringOverrider() {}
+
+ UIStringOverrider::UIStringOverrider(base::span<const uint32_t> resource_hashes,
+ base::span<const int> resource_indices)
+diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union 2024-02-25 10:52:16.070602478 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc 2024-02-25 11:20:36.583148226 +0100
+@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi
+
+ } // namespace
+
+-HeaderDirectFromSellerSignals::Result::Result() = default;
++HeaderDirectFromSellerSignals::Result::Result() {}
+
+ HeaderDirectFromSellerSignals::Result::Result(
+ std::optional<std::string> seller_signals,
+diff -up chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp.me chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp
+--- chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp.me 2024-03-18 16:11:19.550329592 +0100
++++ chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp 2024-03-18 16:12:51.124472676 +0100
+@@ -54,7 +54,7 @@ bool FindTagParamFromStart(CPDF_SimplePa
+
+ } // namespace
+
+-CPDF_DefaultAppearance::CPDF_DefaultAppearance() = default;
++CPDF_DefaultAppearance::CPDF_DefaultAppearance() {}
+
+ CPDF_DefaultAppearance::CPDF_DefaultAppearance(const ByteString& csDA)
+ : m_csDA(csDA) {}
diff --git a/chromium-123-fstack-protector-strong.patch b/chromium-123-fstack-protector-strong.patch
new file mode 100644
index 0000000..33a4142
--- /dev/null
+++ b/chromium-123-fstack-protector-strong.patch
@@ -0,0 +1,12 @@
+diff -up chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong chromium-123.0.6312.46/build/config/compiler/BUILD.gn
+--- chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong 2024-03-15 11:46:34.542248116 +0100
++++ chromium-123.0.6312.46/build/config/compiler/BUILD.gn 2024-03-15 11:59:02.970849847 +0100
+@@ -382,7 +382,7 @@ config("compiler") {
+ } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
+ if (current_os != "aix") {
+ # Not available on aix.
+- cflags += [ "-fstack-protector" ]
++ cflags += [ "-fstack-protector-strong" ]
+ }
+ }
+ }
diff --git a/chromium-123-missing-header-files.patch b/chromium-123-missing-header-files.patch
new file mode 100644
index 0000000..f11142e
--- /dev/null
+++ b/chromium-123-missing-header-files.patch
@@ -0,0 +1,169 @@
+diff -up chromium-122.0.6261.29/base/check_op.h.missing-header-files chromium-122.0.6261.29/base/check_op.h
+--- chromium-122.0.6261.29/base/check_op.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
++++ chromium-122.0.6261.29/base/check_op.h 2024-02-12 14:59:48.136415060 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <string_view>
+diff -up chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files chromium-122.0.6261.29/base/containers/flat_map.h
+--- chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100
++++ chromium-122.0.6261.29/base/containers/flat_map.h 2024-02-12 14:59:48.136415060 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <type_traits>
+diff -up chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h
+--- chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2024-02-12 14:59:48.137415079 +0100
++++ chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h 2024-02-12 15:28:17.168395787 +0100
+@@ -9,6 +9,7 @@
+ #include <optional>
+ #include <string>
+ #include <vector>
++#include <variant>
+
+ #include "base/containers/span.h"
+ #include "base/functional/callback_forward.h"
+diff -up chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc
+--- chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2024-02-07 19:49:27.000000000 +0100
++++ chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc 2024-02-12 14:59:48.137415079 +0100
+@@ -11,6 +11,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+diff -up chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h
+--- chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2024-02-07 19:49:30.000000000 +0100
++++ chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h 2024-02-12 14:59:48.138415097 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+
++#include <cstdint>
+ #include <string>
+
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+diff -up chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files chromium-122.0.6261.29/gin/time_clamper.h
+--- chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files 2024-02-07 19:49:35.000000000 +0100
++++ chromium-122.0.6261.29/gin/time_clamper.h 2024-02-12 14:59:48.138415097 +0100
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+ const int64_t micros = now_micros % 1000;
+ // abs() is necessary for devices with times before unix-epoch (most likely
+ // configured incorrectly).
+- if (abs(micros) + kResolutionMicros < 1000) {
++ if (std::abs(micros) + kResolutionMicros < 1000) {
+ return now_micros / 1000;
+ }
+ return ClampTimeResolution(now_micros) / 1000;
+diff -up chromium-122.0.6261.29/net/base/net_export.h.missing-header-files chromium-122.0.6261.29/net/base/net_export.h
+--- chromium-122.0.6261.29/net/base/net_export.h.missing-header-files 2024-02-07 19:49:38.000000000 +0100
++++ chromium-122.0.6261.29/net/base/net_export.h 2024-02-12 14:59:48.139415116 +0100
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+diff -up chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h
+--- chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2024-02-07 19:49:40.000000000 +0100
++++ chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h 2024-02-12 14:59:48.142415172 +0100
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+diff -up chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+--- chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2024-02-07 19:50:44.000000000 +0100
++++ chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2024-02-12 14:59:48.142415172 +0100
+@@ -28,6 +28,7 @@
+ #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+ #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+diff -up chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
+--- chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2024-02-07 19:54:45.000000000 +0100
++++ chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2024-02-12 14:59:48.143415190 +0100
+@@ -45,6 +45,7 @@
+ #include "llvm/Support/SaveAndRestore.h"
+ #include "llvm/Support/raw_ostream.h"
+ #include <algorithm>
++#include <cstdint>
+ #include <string>
+ #include <sysexits.h>
+ #ifdef HAVE_BACKTRACE
+diff -up chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
+--- chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2024-02-12 14:59:48.143415190 +0100
+@@ -31,6 +31,7 @@ limitations under the License.
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+
++#include <cstdint>
+ #include <complex>
+ #include <deque>
+ #include <vector>
+diff -up chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+--- chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2024-02-07 19:54:20.000000000 +0100
++++ chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2024-02-12 14:59:48.145415228 +0100
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
+
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+ static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+ {
+ snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+diff -up chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc
+--- chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc 2024-02-12 14:59:48.145415228 +0100
+@@ -8,6 +8,8 @@
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+
+ #include "audio/utility/channel_mixing_matrix.h"
+diff -up chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h
+--- chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100
++++ chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h 2024-02-12 14:59:48.145415228 +0100
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+
++#include <cstdint>
+ #include <limits>
+
+ #include "absl/types/optional.h"
+diff -up chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h
+--- chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files 2024-02-07 19:50:05.000000000 +0100
++++ chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h 2024-02-12 14:59:48.147415265 +0100
+@@ -9,6 +9,8 @@
+
+ #include "ui/gfx/buffer_types.h"
+
++#include <cstdint>
++
+ namespace ui {
+
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
diff --git a/chromium-123-no_matching_constructor.patch b/chromium-123-no_matching_constructor.patch
new file mode 100644
index 0000000..4b29170
--- /dev/null
+++ b/chromium-123-no_matching_constructor.patch
@@ -0,0 +1,1364 @@
+diff -up chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc
+--- chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than 2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc 2024-02-24 13:13:32.484503735 +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-122.0.6261.69/base/nix/mime_util_xdg.cc.than chromium-122.0.6261.69/base/nix/mime_util_xdg.cc
+--- chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than 2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/nix/mime_util_xdg.cc 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/base/trace_event/trace_log.cc.than chromium-122.0.6261.69/base/trace_event/trace_log.cc
+--- chromium-122.0.6261.69/base/trace_event/trace_log.cc.than 2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/trace_event/trace_log.cc 2024-02-24 13:13:32.484503735 +0100
+@@ -2198,8 +2198,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-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than 2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc 2024-02-24 13:13:32.485503752 +0100
+@@ -252,8 +252,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);
+@@ -355,8 +355,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-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than 2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2024-02-24 13:13:32.485503752 +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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than 2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2024-02-24 13:13:32.486503770 +0100
+@@ -60,12 +60,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than 2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2024-02-24 13:13:32.486503770 +0100
+@@ -87,6 +87,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than 2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2024-02-24 13:13:32.486503770 +0100
+@@ -64,8 +64,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than 2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2024-02-24 13:13:44.153712667 +0100
+@@ -79,17 +79,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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than 2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2024-02-24 13:13:44.153712667 +0100
+@@ -74,12 +74,12 @@ 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-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc
+--- chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than 2024-02-22 22:42:56.000000000 +0100
++++ chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc 2024-02-24 13:13:32.486503770 +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-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc
+--- chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than 2024-02-22 22:43:02.000000000 +0100
++++ chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc 2024-02-24 13:13:44.154712685 +0100
+@@ -673,7 +673,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-122.0.6261.69/components/performance_manager/worker_watcher.cc.than chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc
+--- chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than 2024-02-22 22:43:02.000000000 +0100
++++ chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2024-02-24 13:13:44.151712632 +0100
+@@ -1573,7 +1573,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-122.0.6261.69/content/browser/download/save_package.cc.than chromium-122.0.6261.69/content/browser/download/save_package.cc
+--- chromium-122.0.6261.69/content/browser/download/save_package.cc.than 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/download/save_package.cc 2024-02-24 13:13:44.151712632 +0100
+@@ -801,8 +801,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-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc
+--- chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc 2024-02-24 13:13:44.158712756 +0100
+@@ -773,7 +773,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-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h
+--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h 2024-02-24 13:13:44.158712756 +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-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than 2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-24 13:13:44.152712649 +0100
+@@ -3461,10 +3461,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 std::nullopt;
+diff -up chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than 2024-02-24 13:13:44.157712739 +0100
++++ chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc 2024-02-24 13:18:39.480119447 +0100
+@@ -8632,7 +8632,7 @@ void RenderFrameHostImpl::SendFencedFram
+ for (const blink::FencedFrame::ReportingDestination& destination :
+ destinations) {
+ SendFencedFrameReportingBeaconInternal(
+- DestinationEnumEvent(event_type, event_data), destination);
++ DestinationEnumEvent{event_type, event_data}, destination);
+ }
+ }
+
+@@ -8661,7 +8661,7 @@ void RenderFrameHostImpl::SendFencedFram
+ }
+
+ SendFencedFrameReportingBeaconInternal(
+- DestinationURLEvent(destination_url),
++ DestinationURLEvent{destination_url},
+ blink::FencedFrame::ReportingDestination::kBuyer);
+ }
+
+@@ -8792,7 +8792,7 @@ void RenderFrameHostImpl::MaybeSendFence
+ data = info->data;
+ }
+ initiator_rfh->SendFencedFrameReportingBeaconInternal(
+- AutomaticBeaconEvent(event_type, data), destination,
++ AutomaticBeaconEvent{event_type, data}, destination,
+ navigation_request.GetNavigationId());
+ }
+ } else {
+@@ -8803,7 +8803,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,
+ navigation_request.GetNavigationId());
+ }
+ }
+diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc
+--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than 2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc 2024-02-24 13:13:44.159712774 +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-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
+--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than 2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc 2024-02-24 13:13:44.159712774 +0100
+@@ -363,10 +363,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-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc
+--- chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than 2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc 2024-02-24 13:13:44.159712774 +0100
+@@ -252,7 +252,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);
+@@ -260,7 +260,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 -up chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than chromium-122.0.6261.69/net/dns/host_resolver_cache.cc
+--- chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than 2024-02-22 22:43:17.000000000 +0100
++++ chromium-122.0.6261.69/net/dns/host_resolver_cache.cc 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than 2024-02-22 22:43:25.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
+--- chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than 2024-02-22 22:45:02.000000000 +0100
++++ chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2024-02-24 13:13:44.153712667 +0100
+@@ -507,7 +507,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-122.0.6261.69/ui/base/wayland/color_manager_util.h.than chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h
+--- chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than 2024-02-22 22:44:12.000000000 +0100
++++ chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h 2024-02-24 13:13:44.153712667 +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-122.0.6261.69/ui/gtk/gtk_ui.cc.than chromium-122.0.6261.69/ui/gtk/gtk_ui.cc
+--- chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than 2024-02-22 22:44:13.000000000 +0100
++++ chromium-122.0.6261.69/ui/gtk/gtk_ui.cc 2024-02-24 13:13:44.153712667 +0100
+@@ -1007,11 +1007,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-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc
+--- chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me 2024-02-24 18:06:46.509393032 +0100
++++ chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc 2024-02-24 18:07:11.258948241 +0100
+@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ if (current_reclaim_event_) {
+ // Cache this kill event along with the time it took place.
+- current_reclaim_event_kills_.emplace_back(memory_freed_kb,
+- discard_complete_time);
++ current_reclaim_event_kills_.emplace_back() = {memory_freed_kb,
++ discard_complete_time};
+ }
+ }
+
+diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
+--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me 2024-02-24 19:58:09.929371791 +0100
++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc 2024-02-24 19:59:07.149524862 +0100
+@@ -631,10 +631,10 @@ std::unique_ptr<AutofillProfile> Address
+ }
+
+ 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-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
+--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me 2024-02-24 19:52:02.173682060 +0100
++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc 2024-02-24 19:52:25.247216329 +0100
+@@ -192,9 +192,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() = {proto_observation.type(),
+ ProfileTokenQuality::FormSignatureHash(
+- proto_observation.form_hash()));
++ proto_observation.form_hash())};
+ }
+ }
+ }
+diff -up chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc
+--- chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me 2024-02-25 00:14:26.830323365 +0100
++++ chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc 2024-02-25 00:15:17.939241091 +0100
+@@ -402,7 +402,7 @@ void FencedFrameProperties::UpdateParent
+ feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(),
+ allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc());
+ }
+- parent_permissions_info_.emplace(parsed_policies, parent_origin);
++ parent_permissions_info_.emplace() = {parsed_policies, parent_origin};
+ }
+
+ } // namespace content
+diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me 2024-02-25 00:17:31.799644691 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-25 00:18:54.157123519 +0100
+@@ -3332,9 +3332,9 @@ std::optional<DebugReportCooldown> DoGet
+ return std::nullopt;
+ }
+
+- return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0),
++ return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0),
+ static_cast<DebugReportCooldownType>(
+- cooldown_debugging_only_report.ColumnInt(1)));
++ cooldown_debugging_only_report.ColumnInt(1))};
+ }
+
+ void DoGetDebugReportCooldowns(
+diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h
+--- chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me 2024-02-25 15:34:16.140768445 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h 2024-02-25 15:37:47.789665835 +0100
+@@ -24,6 +24,7 @@ struct MenuNotificationEntry {
+ int command = 0;
+ std::u16string label;
+ safety_hub::SafetyHubModuleType module;
++ MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { }
+ };
+
+ namespace {
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me 2024-02-25 16:22:46.601209269 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc 2024-02-25 16:24:48.110618475 +0100
+@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G
+
+ // Radii are clockwise from top left.
+ const SkVector radii[4] = {
+- SkVector(top_content_corner_radius, top_content_corner_radius),
+- SkVector(top_content_corner_radius, top_content_corner_radius),
+- SkVector(bottom_content_corner_radius, bottom_content_corner_radius),
+- SkVector(bottom_content_corner_radius, bottom_content_corner_radius)};
++ SkVector{top_content_corner_radius, top_content_corner_radius},
++ SkVector{top_content_corner_radius, top_content_corner_radius},
++ SkVector{bottom_content_corner_radius, bottom_content_corner_radius},
++ SkVector{bottom_content_corner_radius, bottom_content_corner_radius}};
+ SkRRect rrect;
+ rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii);
+ SkPath path;
+diff -up chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+--- chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me 2024-02-25 18:49:32.512080085 +0100
++++ chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc 2024-02-25 19:07:36.518711693 +0100
+@@ -386,7 +386,7 @@ bool ShouldBlockAccessToPath(const base:
+ DCHECK(block.path);
+ blocked_path = base::FilePath(block.path);
+ }
+- rules.emplace_back(blocked_path, block.type);
++ rules.emplace_back() = {blocked_path, block.type};
+ }
+
+ base::FilePath nearest_ancestor;
+@@ -1575,11 +1575,11 @@ void ChromeFileSystemAccessPermissionCon
+ // profile's directory, assuming the profile dir is a child of the user data
+ // dir.
+ std::vector<BlockPathRule> extra_rules;
+- extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren);
++ extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren};
+ if (g_browser_process->profile_manager()) {
+- extra_rules.emplace_back(
++ extra_rules.emplace_back() = {
+ g_browser_process->profile_manager()->user_data_dir(),
+- kBlockAllChildren);
++ kBlockAllChildren};
+ }
+
+ base::ThreadPool::PostTaskAndReplyWithResult(
+diff -up chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc
+--- chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me 2024-02-25 19:14:16.227843148 +0100
++++ chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc 2024-02-25 19:15:04.589307468 +0100
+@@ -53,7 +53,7 @@ std::vector<PageDiscarder::DiscardEvent>
+ if (lifecycle_unit->DiscardTab(
+ discard_reason,
+ /*memory_footprint_estimate=*/proxy.second)) {
+- discard_events.emplace_back(base::TimeTicks::Now(), proxy.second);
++ discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second};
+ }
+ }
+ return discard_events;
+diff -up chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h
+--- chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me 2024-02-25 17:26:25.623572458 +0100
++++ chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h 2024-02-25 17:29:52.983345280 +0100
+@@ -204,6 +204,7 @@ class ServiceWorkerTaskQueue : public Ke
+ raw_ptr<content::BrowserContext> browser_context;
+ base::UnguessableToken token;
+
++ SequencedContextId(auto e, auto b, auto t) : extension_id(e), browser_context(b), token(t) { }
+ bool operator<(const SequencedContextId& rhs) const {
+ return std::tie(extension_id, browser_context, token) <
+ std::tie(rhs.extension_id, rhs.browser_context, rhs.token);
+diff -up chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+--- chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me 2024-02-25 20:05:40.567891077 +0100
++++ chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc 2024-02-25 20:05:46.407001997 +0100
+@@ -3993,10 +3993,10 @@ void RenderViewContextMenu::ExecOpenComp
+ autofill::LocalFrameToken frame_token = driver->GetFrameToken();
+ client->GetManager().OpenCompose(
+ *driver,
+- autofill::FormGlobalId(
+- frame_token, autofill::FormRendererId(params_.form_renderer_id)),
+- autofill::FieldGlobalId(
+- frame_token, autofill::FieldRendererId(params_.field_renderer_id)),
++ autofill::FormGlobalId{
++ frame_token, autofill::FormRendererId(params_.form_renderer_id)},
++ autofill::FieldGlobalId{
++ frame_token, autofill::FieldRendererId(params_.field_renderer_id)},
+ compose::ComposeManagerImpl::UiEntryPoint::kContextMenu);
+ new_badge_tracker_.ActionPerformed("compose_menu_item_activated");
+ } else {
+--- chromium-123.0.6312.46/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me 2024-03-15 15:16:46.980123806 +0100
++++ chromium-123.0.6312.46/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2024-03-15 15:18:39.024042560 +0100
+@@ -474,10 +474,10 @@
+ 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, match.extra_headers));
++ destination_url_entered_with_http_scheme, match.extra_headers});
+
+ if (browser_) {
+ auto navigation = chrome::OpenCurrentURL(browser_);
+--- chromium-123.0.6312.46/content/browser/interest_group/interest_group_auction.cc.me 2024-03-15 15:16:47.004124431 +0100
++++ chromium-123.0.6312.46/content/browser/interest_group/interest_group_auction.cc 2024-03-15 15:21:57.794229521 +0100
+@@ -565,7 +565,7 @@
+ blink::features::kFledgeDebugReportRestrictedCooldown.Get() !=
+ base::Milliseconds(0))) {
+ new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
+- DebugReportCooldown(now_nearest_next_hour, cooldown_type);
++ DebugReportCooldown{now_nearest_next_hour, cooldown_type};
+ }
+
+ return can_send_debug_report;
+--- chromium-123.0.6312.46/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor 2024-03-15 15:55:51.351878829 +0100
++++ chromium-123.0.6312.46/chrome/browser/ui/autofill/autofill_context_menu_manager.cc 2024-03-15 16:19:48.862189463 +0100
+@@ -277,8 +277,8 @@
+ AutofillManager& manager) {
+ auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
+ driver.browser_events().RendererShouldTriggerSuggestions(
+- FieldGlobalId(driver.GetFrameToken(),
+- FieldRendererId(params_.field_renderer_id)),
++ FieldGlobalId{driver.GetFrameToken(),
++ FieldRendererId(params_.field_renderer_id)},
+ AutofillSuggestionTriggerSource::kManualFallbackPayments);
+ LogManualFallbackContextMenuEntryAccepted(
+ static_cast<BrowserAutofillManager&>(manager),
+--- chromium-123.0.6312.46/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor 2024-03-13 20:35:40.000000000 +0100
++++ chromium-123.0.6312.46/chrome/browser/ui/web_applications/sub_apps_service_impl.cc 2024-03-15 16:20:45.846919820 +0100
+@@ -107,7 +107,7 @@
+ ConvertPathToUrl(sub_app->manifest_id_path, origin));
+ ASSIGN_OR_RETURN(GURL install_url,
+ ConvertPathToUrl(sub_app->install_url_path, origin));
+- sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
++ sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
+ }
+ return sub_apps;
+ }
+@@ -439,7 +439,7 @@
+ base::BindOnce(
+ [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
+ webapps::InstallResultCode result_code) {
+- return SubAppInstallResult(manifest_id, app_id, result_code);
++ return SubAppInstallResult{manifest_id, app_id, result_code};
+ },
+ manifest_id)
+ .Then(concurrent.CreateCallback()));
+--- chromium-123.0.6312.46/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2024-03-13 20:35:57.000000000 +0100
++++ chromium-123.0.6312.46/third_party/blink/renderer/platform/fonts/font_palette.h 2024-03-15 16:24:57.899540941 +0100
+@@ -96,7 +96,7 @@
+ Color::ColorSpace color_interpolation_space,
+ std::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 @@
+ 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-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.me chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
+--- chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.me 2024-03-15 19:01:07.765832801 +0100
++++ chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc 2024-03-15 19:01:52.918687742 +0100
+@@ -62,7 +62,7 @@ bool LightweightQuarantineBranch::Quaran
+ branch_size_in_bytes_ += usable_size;
+ PA_DCHECK(branch_size_in_bytes_ <= capacity_in_bytes);
+
+- slots_.emplace_back(slot_start, usable_size);
++ slots_.emplace_back() = {slot_start, usable_size};
+
+ // Swap randomly so that the quarantine list remain shuffled.
+ // This is not uniformly random, but sufficiently random.
+diff -up chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc.me chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc
+--- chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc.me 2024-03-16 18:43:17.863328507 +0100
++++ chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc 2024-03-16 18:51:00.449277152 +0100
+@@ -106,8 +106,8 @@ scoped_refptr<ClientSharedImage> ClientS
+ AddMailbox(proxy_->CreateSharedImage(format, size, color_space,
+ surface_origin, alpha_type, usage,
+ debug_label)),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -137,8 +137,8 @@ scoped_refptr<ClientSharedImage> ClientS
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ AddMailbox(mailbox),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -165,8 +165,8 @@ scoped_refptr<ClientSharedImage> ClientS
+ CHECK(!buffer_handle.is_null());
+ return base::MakeRefCounted<ClientSharedImage>(
+ AddMailbox(mailbox),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(),
+ GpuMemoryBufferHandleInfo(std::move(buffer_handle), format, size,
+ buffer_usage),
+@@ -192,8 +192,8 @@ scoped_refptr<ClientSharedImage> ClientS
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(),
+ GpuMemoryBufferHandleInfo(std::move(client_buffer_handle), format, size,
+ buffer_usage),
+@@ -219,8 +219,8 @@ scoped_refptr<ClientSharedImage> ClientS
+ AddMailbox(proxy_->CreateSharedImage(
+ format, size, color_space, surface_origin, alpha_type, usage,
+ debug_label, std::move(buffer_handle))),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -273,8 +273,8 @@ ClientSharedImageInterface::CreateShared
+ AddMailbox(proxy_->CreateSharedImage(format, size, color_space,
+ surface_origin, alpha_type, usage,
+ debug_label, std::move(handle))),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ return shared_image_mapping;
+ }
+@@ -296,10 +296,10 @@ scoped_refptr<ClientSharedImage> ClientS
+ buffer_format, plane, gpu_memory_buffer->GetSize(), color_space,
+ surface_origin, alpha_type, usage, debug_label,
+ gpu_memory_buffer->CloneHandle())),
+- ClientSharedImage::Metadata(
++ ClientSharedImage::Metadata{
+ viz::GetSinglePlaneSharedImageFormat(buffer_format),
+ gpu_memory_buffer->GetSize(), color_space, surface_origin, alpha_type,
+- usage),
++ usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -334,13 +334,13 @@ ClientSharedImageInterface::CreateSwapCh
+ return ClientSharedImageInterface::SwapChainSharedImages(
+ base::MakeRefCounted<ClientSharedImage>(
+ mailboxes.front_buffer,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ sync_token, holder_),
+ base::MakeRefCounted<ClientSharedImage>(
+ mailboxes.back_buffer,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ sync_token, holder_));
+ }
+
+@@ -380,8 +380,8 @@ ClientSharedImageInterface::AddReference
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ sync_token, holder_);
+ }
+
+@@ -402,8 +402,8 @@ scoped_refptr<ClientSharedImage> ClientS
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+diff -up chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc.me chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc
+--- chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc.me 2024-03-16 18:59:20.175882894 +0100
++++ chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc 2024-03-16 19:03:05.001754609 +0100
+@@ -41,8 +41,8 @@ scoped_refptr<ClientSharedImage> SharedI
+ NOTREACHED();
+ return base::MakeRefCounted<ClientSharedImage>(
+ Mailbox(),
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+diff -up chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc.me chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc
+--- chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc.me 2024-03-16 19:06:32.102330155 +0100
++++ chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc 2024-03-16 19:11:59.627008063 +0100
+@@ -238,8 +238,8 @@ SharedImageInterfaceInProcess::CreateSha
+ }
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -301,8 +301,8 @@ SharedImageInterfaceInProcess::CreateSha
+ }
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+@@ -365,8 +365,8 @@ SharedImageInterfaceInProcess::CreateSha
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), GetGpuMemoryBufferHandleInfo(mailbox), holder_);
+ }
+
+@@ -481,8 +481,8 @@ SharedImageInterfaceInProcess::CreateSha
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(),
+ GpuMemoryBufferHandleInfo(std::move(client_buffer_handle), format, size,
+ buffer_usage),
+@@ -524,8 +524,8 @@ SharedImageInterfaceInProcess::CreateSha
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+ SharedImageInterface::SharedImageMapping
+@@ -589,8 +589,8 @@ SharedImageInterfaceInProcess::CreateSha
+ }
+ shared_image_mapping.shared_image = base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(format, size, color_space, surface_origin,
+- alpha_type, usage),
++ ClientSharedImage::Metadata{format, size, color_space, surface_origin,
++ alpha_type, usage},
+ GenUnverifiedSyncToken(), holder_);
+
+ return shared_image_mapping;
+@@ -664,10 +664,10 @@ SharedImageInterfaceInProcess::CreateSha
+
+ return base::MakeRefCounted<ClientSharedImage>(
+ mailbox,
+- ClientSharedImage::Metadata(
++ ClientSharedImage::Metadata{
+ viz::GetSinglePlaneSharedImageFormat(gpu_memory_buffer->GetFormat()),
+ gpu_memory_buffer->GetSize(), color_space, surface_origin, alpha_type,
+- usage),
++ usage},
+ GenUnverifiedSyncToken(), holder_);
+ }
+
+diff -up chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc.me chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc
+--- chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc.me 2024-03-17 00:42:31.183226211 +0100
++++ chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc 2024-03-17 00:55:56.689512430 +0100
+@@ -1507,7 +1507,7 @@ void AttributionManagerImpl::PrepareNext
+ RenderFrameHost::FromID(event.render_frame_id),
+ source_origin, destination_origin, &reporting_origin,
+ &can_bypass_cookie_check)) {
+- need_to_check_cookie.emplace_back(url::Origin::Create(item.url), i);
++ need_to_check_cookie.emplace_back() = {url::Origin::Create(item.url), i};
+ } else {
+ allowed.at(i) = can_bypass_cookie_check;
+ }
+diff -up chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc.me chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc
+--- chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc.me 2024-03-17 00:24:41.420837884 +0100
++++ chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc 2024-03-17 00:26:40.273364638 +0100
+@@ -3993,7 +3993,7 @@ DoGetBiddingAndAuctionServerKeys(sql::Da
+ std::vector<BiddingAndAuctionServerKey> keys;
+ keys.reserve(key_protos.keys_size());
+ for (auto& key_proto : *key_protos.mutable_keys()) {
+- keys.emplace_back(std::move(*key_proto.mutable_key()), key_proto.id());
++ keys.emplace_back() = {std::move(*key_proto.mutable_key()), key_proto.id()};
+ }
+ return {expiration, keys};
+ }
diff --git a/chromium-123-python3-assignment-expressions.patch b/chromium-123-python3-assignment-expressions.patch
new file mode 100644
index 0000000..bb0df8c
--- /dev/null
+++ b/chromium-123-python3-assignment-expressions.patch
@@ -0,0 +1,27 @@
+diff -up chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py
+--- chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me 2024-02-23 12:04:45.451423995 +0100
++++ chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py 2024-02-23 12:18:04.099824392 +0100
+@@ -124,7 +124,8 @@ def _GenerateH(basepath, fileroot, head,
+ f.write(u'#include <cstddef>\n')
+ f.write(u'\n')
+
+- if system_headers := schema.get(u'system-headers', []):
++ system_headers = schema.get(u'system-headers', [])
++ if system_headers:
+ for header in system_headers:
+ f.write(u'#include <%s>\n' % header)
+ f.write(u'\n')
+diff -up chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py.me chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py
+--- chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py.me 2024-03-18 14:40:57.871904209 +0100
++++ chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py 2024-03-18 14:47:12.238907146 +0100
+@@ -209,8 +209,8 @@ def _ComponentFromDirmd(json_data, subpa
+ """
+ dirmd = json_data.get('dirs', {}).get(subpath, {})
+ # If a public Buganizer component is listed, return its component ID.
+- if buganizer_component := dirmd.get('buganizerPublic',
+- {}).get('componentId', ''):
++ buganizer_component = dirmd.get('buganizerPublic',{}).get('componentId', '')
++ if buganizer_component:
+ return buganizer_component
+ # If no component exists for the directory, or if METADATA migration is
+ # incomplete there will be no component information.
diff --git a/chromium-123-rust-clap_lex.patch b/chromium-123-rust-clap_lex.patch
new file mode 100644
index 0000000..61bd194
--- /dev/null
+++ b/chromium-123-rust-clap_lex.patch
@@ -0,0 +1,133 @@
+diff -Nur chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs.me chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs
+--- chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs.me 2024-03-13 20:36:17.000000000 +0100
++++ chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs 2024-03-13 00:38:18.000000000 +0100
+@@ -2,9 +2,6 @@
+
+ pub trait OsStrExt: private::Sealed {
+ /// Converts to a string slice.
+- ///
+- /// The Utf8Error is guaranteed to have a valid UTF8 boundary
+- /// in its `valid_up_to()`
+ fn try_str(&self) -> Result<&str, std::str::Utf8Error>;
+ /// Returns `true` if the given pattern matches a sub-slice of
+ /// this string slice.
+@@ -183,7 +180,7 @@
+
+ impl OsStrExt for OsStr {
+ fn try_str(&self) -> Result<&str, std::str::Utf8Error> {
+- let bytes = self.as_encoded_bytes();
++ let bytes = to_bytes(self);
+ std::str::from_utf8(bytes)
+ }
+
+@@ -192,22 +189,22 @@
+ }
+
+ fn find(&self, needle: &str) -> Option<usize> {
+- let bytes = self.as_encoded_bytes();
++ let bytes = to_bytes(self);
+ (0..=self.len().checked_sub(needle.len())?)
+ .find(|&x| bytes[x..].starts_with(needle.as_bytes()))
+ }
+
+ fn strip_prefix(&self, prefix: &str) -> Option<&OsStr> {
+- let bytes = self.as_encoded_bytes();
++ let bytes = to_bytes(self);
+ bytes.strip_prefix(prefix.as_bytes()).map(|s| {
+ // SAFETY:
+- // - This came from `as_encoded_bytes`
+- // - Since `prefix` is `&str`, any split will be along UTF-8 boundary
+- unsafe { OsStr::from_encoded_bytes_unchecked(s) }
++ // - This came from `to_bytes`
++ // - Since `prefix` is `&str`, any split will be along UTF-8 boundarie
++ unsafe { to_os_str_unchecked(s) }
+ })
+ }
+ fn starts_with(&self, prefix: &str) -> bool {
+- let bytes = self.as_encoded_bytes();
++ let bytes = to_bytes(self);
+ bytes.starts_with(prefix.as_bytes())
+ }
+
+@@ -222,18 +219,13 @@
+ fn split_once(&self, needle: &'_ str) -> Option<(&OsStr, &OsStr)> {
+ let start = self.find(needle)?;
+ let end = start + needle.len();
+- let haystack = self.as_encoded_bytes();
++ let haystack = to_bytes(self);
+ let first = &haystack[0..start];
+ let second = &haystack[end..];
+ // SAFETY:
+- // - This came from `as_encoded_bytes`
+- // - Since `needle` is `&str`, any split will be along UTF-8 boundary
+- unsafe {
+- Some((
+- OsStr::from_encoded_bytes_unchecked(first),
+- OsStr::from_encoded_bytes_unchecked(second),
+- ))
+- }
++ // - This came from `to_bytes`
++ // - Since `needle` is `&str`, any split will be along UTF-8 boundarie
++ unsafe { Some((to_os_str_unchecked(first), to_os_str_unchecked(second))) }
+ }
+ }
+
+@@ -243,6 +235,45 @@
+ impl Sealed for std::ffi::OsStr {}
+ }
+
++/// Allow access to raw bytes
++///
++/// As the non-UTF8 encoding is not defined, the bytes only make sense when compared with
++/// 7-bit ASCII or `&str`
++///
++/// # Compatibility
++///
++/// There is no guarantee how non-UTF8 bytes will be encoded, even within versions of this crate
++/// (since its dependent on rustc)
++fn to_bytes(s: &OsStr) -> &[u8] {
++ // SAFETY:
++ // - Lifetimes are the same
++ // - Types are compatible (`OsStr` is effectively a transparent wrapper for `[u8]`)
++ // - The primary contract is that the encoding for invalid surrogate code points is not
++ // guaranteed which isn't a problem here
++ //
++ // There is a proposal to support this natively (https://github.com/rust-lang/rust/pull/95290)
++ // but its in limbo
++ unsafe { std::mem::transmute(s) }
++}
++
++/// Restore raw bytes as `OsStr`
++///
++/// # Safety
++///
++/// - `&[u8]` must either by a `&str` or originated with `to_bytes` within the same binary
++/// - Any splits of the original `&[u8]` must be done along UTF-8 boundaries
++unsafe fn to_os_str_unchecked(s: &[u8]) -> &OsStr {
++ // SAFETY:
++ // - Lifetimes are the same
++ // - Types are compatible (`OsStr` is effectively a transparent wrapper for `[u8]`)
++ // - The primary contract is that the encoding for invalid surrogate code points is not
++ // guaranteed which isn't a problem here
++ //
++ // There is a proposal to support this natively (https://github.com/rust-lang/rust/pull/95290)
++ // but its in limbo
++ std::mem::transmute(s)
++}
++
+ pub struct Split<'s, 'n> {
+ haystack: Option<&'s OsStr>,
+ needle: &'n str,
+@@ -275,10 +306,7 @@
+ ///
+ /// `index` must be at a valid UTF-8 boundary
+ pub(crate) unsafe fn split_at(os: &OsStr, index: usize) -> (&OsStr, &OsStr) {
+- let bytes = os.as_encoded_bytes();
++ let bytes = to_bytes(os);
+ let (first, second) = bytes.split_at(index);
+- (
+- OsStr::from_encoded_bytes_unchecked(first),
+- OsStr::from_encoded_bytes_unchecked(second),
+- )
++ (to_os_str_unchecked(first), to_os_str_unchecked(second))
+ }
diff --git a/chromium-123-typename.patch b/chromium-123-typename.patch
new file mode 100644
index 0000000..aebbd18
--- /dev/null
+++ b/chromium-123-typename.patch
@@ -0,0 +1,406 @@
+
+fixed error: missing 'typename' prior to dependent type name
+
+diff -up chromium-122.0.6261.69/base/containers/map_util.h.typename chromium-122.0.6261.69/base/containers/map_util.h
+--- chromium-122.0.6261.69/base/containers/map_util.h.typename 2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/containers/map_util.h 2024-02-24 15:05:00.882592705 +0100
+@@ -42,7 +42,7 @@ constexpr internal::MappedType<Map>* Fin
+ 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 @@ constexpr const MappedElementType* FindP
+ 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-122.0.6261.69/base/functional/bind_internal.h.typename chromium-122.0.6261.69/base/functional/bind_internal.h
+--- chromium-122.0.6261.69/base/functional/bind_internal.h.typename 2024-02-24 15:05:00.883592724 +0100
++++ chromium-122.0.6261.69/base/functional/bind_internal.h 2024-02-24 15:13:49.755223533 +0100
+@@ -1400,11 +1400,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>;
+
+ template <bool v = !UnwrappedParam::kRawPtr ||
+diff -up chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc
+--- chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename 2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc 2024-02-24 15:05:00.882592705 +0100
+@@ -90,7 +90,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);
+@@ -1090,9 +1090,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-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h
+--- chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename 2024-02-22 22:43:01.000000000 +0100
++++ chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h 2024-02-24 15:05:00.884592742 +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-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h
+--- chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename 2024-02-22 22:43:01.000000000 +0100
++++ chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h 2024-02-24 15:05:00.884592742 +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 -up chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h
+--- chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename 2024-02-22 22:43:15.000000000 +0100
++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h 2024-02-24 15:05:00.884592742 +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-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename 2024-02-22 22:43:20.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2024-02-24 15:05:00.883592724 +0100
+@@ -218,7 +218,7 @@ class PairAsyncIterable {
+ private:
+ virtual IterationSource* CreateIterationSource(
+ ScriptState* script_state,
+- IterationSource::Kind kind,
++ typename IterationSource::Kind kind,
+ ExceptionState& exception_state) = 0;
+ };
+
+@@ -260,7 +260,7 @@ class ValueAsyncIterable {
+ private:
+ virtual IterationSource* CreateIterationSource(
+ ScriptState* script_state,
+- IterationSource::Kind kind,
++ typename IterationSource::Kind kind,
+ ExceptionState& exception_state) = 0;
+ };
+
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+--- chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename 2024-02-24 15:05:00.882592705 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2024-02-24 15:12:27.742724849 +0100
+@@ -211,7 +211,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;
+ static_assert(std::is_same_v<Char, UChar> || std::is_same_v<Char, LChar>);
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename 2024-02-22 22:43:21.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2024-02-24 15:05:00.883592724 +0100
+@@ -272,8 +272,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-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h
+--- chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me 2024-02-24 16:51:41.292310554 +0100
++++ chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h 2024-02-24 16:52:10.022896063 +0100
+@@ -26,7 +26,7 @@ PartitionRoot& InternalAllocatorRoot();
+
+ // A class that meets C++ named requirements, Allocator.
+ template <typename T>
+-InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
++typename InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
+ std::size_t count) {
+ PA_CHECK(count <=
+ std::numeric_limits<std::size_t>::max() / sizeof(value_type));
+diff -up chromium-122.0.6261.69/base/containers/heap_array.h.me chromium-122.0.6261.69/base/containers/heap_array.h
+--- chromium-122.0.6261.69/base/containers/heap_array.h.me 2024-02-24 18:02:34.463921568 +0100
++++ chromium-122.0.6261.69/base/containers/heap_array.h 2024-02-24 18:04:01.922850571 +0100
+@@ -32,8 +32,8 @@ class TRIVIAL_ABI GSL_OWNER HeapArray {
+ static_assert(!std::is_reference_v<T>,
+ "HeapArray cannot hold reference types");
+
+- using iterator = base::span<T>::iterator;
+- using const_iterator = base::span<const T>::iterator;
++ using iterator = typename base::span<T>::iterator;
++ using const_iterator = typename base::span<const T>::iterator;
+
+ // Allocates initialized memory capable of holding `size` elements. No memory
+ // is allocated for zero-sized arrays.
+diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h
+--- chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me 2024-02-24 18:51:06.957087464 +0100
++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h 2024-02-24 18:51:27.778488490 +0100
+@@ -125,7 +125,7 @@ using VecValueType = typename Vec::value
+
+ template <typename Vec>
+ using VecPtrLikeUnderlyingValueType =
+- std::pointer_traits<VecValueType<Vec>>::element_type;
++ typename std::pointer_traits<VecValueType<Vec>>::element_type;
+
+ } // namespace internal
+
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me 2024-02-24 19:45:13.620934215 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h 2024-02-24 19:46:08.817940962 +0100
+@@ -2005,7 +2005,7 @@ struct HashTableConstIteratorAdapter {
+ static_assert(!IsTraceable<typename Traits::TraitType>::value);
+
+ using iterator_category = std::bidirectional_iterator_tag;
+- using value_type = HashTableType::ValueType;
++ using value_type = typename HashTableType::ValueType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+@@ -2057,7 +2057,7 @@ struct HashTableConstIteratorAdapter<
+
+ public:
+ using iterator_category = std::bidirectional_iterator_tag;
+- using value_type = HashTableType::ValueType;
++ using value_type = typename HashTableType::ValueType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+@@ -2111,7 +2111,7 @@ struct HashTableIteratorAdapter {
+ static_assert(!IsTraceable<typename Traits::TraitType>::value);
+
+ using iterator_category = std::bidirectional_iterator_tag;
+- using value_type = HashTableType::ValueType;
++ using value_type = typename HashTableType::ValueType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+@@ -2159,7 +2159,7 @@ struct HashTableIteratorAdapter<
+
+ public:
+ using iterator_category = std::bidirectional_iterator_tag;
+- using value_type = HashTableType::ValueType;
++ using value_type = typename HashTableType::ValueType;
+ using difference_type = ptrdiff_t;
+ using pointer = value_type*;
+ using reference = value_type&;
+diff -up chromium-122.0.6261.69/base/types/fixed_array.h.me chromium-122.0.6261.69/base/types/fixed_array.h
+--- chromium-122.0.6261.69/base/types/fixed_array.h.me 2024-02-25 11:22:59.819590529 +0100
++++ chromium-122.0.6261.69/base/types/fixed_array.h 2024-02-25 11:24:12.424953031 +0100
+@@ -27,8 +27,8 @@ template <typename T,
+ class FixedArray : public absl::FixedArray<T, N, A> {
+ public:
+ using absl::FixedArray<T, N, A>::FixedArray;
+- explicit FixedArray(absl::FixedArray<T, N, A>::size_type n,
+- const absl::FixedArray<T, N, A>::allocator_type& a =
++ explicit FixedArray(typename absl::FixedArray<T, N, A>::size_type n,
++ const typename absl::FixedArray<T, N, A>::allocator_type& a =
+ typename absl::FixedArray<T, N, A>::allocator_type())
+ : FixedArray(n, T(), a) {}
+ };
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me 2024-02-25 15:04:56.775897713 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h 2024-02-25 15:05:34.884579279 +0100
+@@ -121,7 +121,7 @@ class CommandBase {
+ template <typename LockType>
+ class CommandWithLock : public CommandBase {
+ public:
+- using LockDescription = LockType::LockDescription;
++ using LockDescription = typename LockType::LockDescription;
+ explicit CommandWithLock(const std::string& name,
+ LockDescription initial_lock_request);
+
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me 2024-02-25 15:05:46.885793828 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h 2024-02-25 15:06:12.334248725 +0100
+@@ -106,7 +106,7 @@ class WebAppLockManager;
+ template <typename LockType, typename... CallbackArgs>
+ class WebAppCommand : public internal::CommandWithLock<LockType> {
+ public:
+- using LockDescription = LockType::LockDescription;
++ using LockDescription = typename LockType::LockDescription;
+ using CallbackType = base::OnceCallback<void(CallbackArgs...)>;
+ using ShutdownArgumentsTuple = std::tuple<std::decay_t<CallbackArgs>...>;
+
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me 2024-02-25 15:06:17.896348149 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h 2024-02-25 15:06:58.841076746 +0100
+@@ -355,7 +355,7 @@ class WebAppCommandScheduler {
+ // command system.
+ template <typename LockType>
+ void ScheduleCallback(const std::string& operation_name,
+- LockType::LockDescription lock_description,
++ typename LockType::LockDescription lock_description,
+ CallbackCommand<LockType, void> callback,
+ base::OnceClosure on_complete,
+ const base::Location& location = FROM_HERE) {
+@@ -373,7 +373,7 @@ class WebAppCommandScheduler {
+ typename CallbackReturnValue = std::decay_t<CompletionCallbackArg>>
+ void ScheduleCallbackWithResult(
+ const std::string& operation_name,
+- LockType::LockDescription lock_description,
++ typename LockType::LockDescription lock_description,
+ CallbackCommand<LockType, CallbackReturnValue> callback,
+ base::OnceCallback<void(CompletionCallbackArg)> on_complete,
+ CallbackReturnValue arg_for_shutdown,
+diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
+--- chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me 2024-02-25 15:12:53.835409392 +0100
++++ chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h 2024-02-25 15:16:03.171931033 +0100
+@@ -424,7 +424,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();
+ }
+@@ -469,7 +469,7 @@ class RetryingFetcherImpl final : public
+ }
+
+ // Client callback.
+- TypedProtoFetcher<Response>::Callback callback_;
++ typename TypedProtoFetcher<Response>::Callback callback_;
+
+ // Retry controls.
+ base::OneShotTimer timer_;
+@@ -490,7 +490,7 @@ class ParallelFetchManager {
+ // Deferred fetcher is required because it should be started after it is
+ // stored internally.
+ using Fetcher = ProtoFetcher<Response>;
+- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+
+ public:
+ // Provides fresh instances of a deferred fetcher for each fetch.
+@@ -506,7 +506,7 @@ 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) {
+ CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+ KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+ requests_in_flight_.Lookup(key)->Start(
+--- chromium-123.0.6312.46/components/optimization_guide/core/tflite_model_executor.h.orig 2024-03-13 20:35:44.000000000 +0100
++++ chromium-123.0.6312.46/components/optimization_guide/core/tflite_model_executor.h 2024-03-15 15:45:47.067156826 +0100
+@@ -242,7 +242,7 @@
+ 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_);
+@@ -264,7 +264,7 @@
+ // 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<std::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_);
+@@ -422,7 +422,7 @@
+ // 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_);
+
+@@ -439,7 +439,7 @@
+
+ // Batch executes the loaded model for inputs.
+ void BatchExecuteLoadedModel(
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ std::vector<std::optional<OutputType>>* outputs) {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -499,7 +499,7 @@
+ // 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_);
+--- chromium-123.0.6312.46/base/functional/function_ref.h.orig 2024-03-15 15:43:32.329786974 +0100
++++ chromium-123.0.6312.46/base/functional/function_ref.h 2024-03-15 15:46:57.278813500 +0100
+@@ -64,7 +64,7 @@
+ template <typename R, typename... Args>
+ class FunctionRef<R(Args...)> {
+ template <typename Functor,
+- typename RunType = internal::FunctorTraits<Functor>::RunType>
++ typename RunType = typename internal::FunctorTraits<Functor>::RunType>
+ static constexpr bool kCompatibleFunctor =
+ std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
+ std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
+diff -up chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.me chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h
+--- chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.me 2024-03-16 22:55:01.387265478 +0100
++++ chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h 2024-03-16 22:55:18.752568310 +0100
+@@ -173,7 +173,7 @@ class ScriptPromiseProperty final
+ template <typename T>
+ requires std::derived_from<T, bindings::EnumerationBase>
+ static T DefaultPromiseResultValue() {
+- return T(static_cast<T::Enum>(0));
++ return T(static_cast<typename T::Enum>(0));
+ }
+
+ State state_ = kPending;
+diff -up chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h.me chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
+--- chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h.me 2024-03-16 22:41:50.634510019 +0100
++++ chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h 2024-03-16 22:54:51.215088087 +0100
+@@ -477,7 +477,7 @@ class ScriptPromiseResolverTyped : publi
+
+ private:
+ using TypedResolver =
+- ScriptPromiseTyped<IDLResolvedType>::InternalResolverTyped;
++ typename ScriptPromiseTyped<IDLResolvedType>::InternalResolverTyped;
+ };
+
+ } // namespace blink
diff --git a/chromium-123-v8-c++20.patch b/chromium-123-v8-c++20.patch
new file mode 100644
index 0000000..a4682da
--- /dev/null
+++ b/chromium-123-v8-c++20.patch
@@ -0,0 +1,733 @@
+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
+@@ -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-123-workaround_clang_bug-structured_binding.patch b/chromium-123-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..998fbad
--- /dev/null
+++ b/chromium-123-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,78 @@
+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 -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc
+--- chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me 2024-02-25 18:03:51.654579579 +0100
++++ chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc 2024-02-25 18:12:45.144287750 +0100
+@@ -136,7 +136,8 @@ void PrewarmHttpDiskCacheManager::MaybeP
+ std::pair<url::Origin, GURL> origin_and_url;
+ std::swap(origin_and_url, queued_jobs_.front());
+ queued_jobs_.pop();
+- const auto& [origin, url] = origin_and_url;
++ const auto& [origin, u] = origin_and_url;
++ const auto& url = u;
+ TRACE_EVENT_WITH_FLOW1(
+ "loading", "PrewarmHttpDiskCacheManager::MaybeProcessNextQueuedJob",
+ TRACE_ID_LOCAL(this),
+--- chromium-123.0.6312.46/content/common/service_worker/race_network_request_url_loader_client.cc.orig 2024-03-15 15:37:58.201209354 +0100
++++ chromium-123.0.6312.46/content/common/service_worker/race_network_request_url_loader_client.cc 2024-03-15 15:40:35.003250723 +0100
+@@ -639,7 +639,8 @@
+ return std::nullopt;
+ }
+
+- auto [result, read_buffer] = BeginReadData();
++ auto [r, read_buffer] = BeginReadData();
++ auto result = r;
+ TRACE_EVENT_WITH_FLOW2(
+ "ServiceWorker",
+ "ServiceWorkerRaceNetworkRequestURLLoaderClient::ReadAndWrite",
diff --git a/chromium.spec b/chromium.spec
index 8676dd4..375843f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -303,7 +303,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 122.0.6261.128
+Version: 123.0.6312.58
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -366,7 +366,7 @@ Patch101: chromium-108-el7-wayland-strndup-error.patch
# Workaround for old clang
# error: defaulting this default constructor would delete it after its first declaration
-Patch102: chromium-122-el7-default-constructor-involving-anonymous-union.patch
+Patch102: chromium-123-el7-default-constructor-involving-anonymous-union.patch
# Work around old and missing headers on EPEL7
Patch103: chromium-110-epel7-old-headers-workarounds.patch
@@ -393,7 +393,7 @@ Patch109: chromium-114-wireless-el7.patch
Patch110: chromium-115-buildflag-el7.patch
Patch111: chromium-122-el7-inline-function.patch
Patch113: chromium-121-el7-clang-version-warning.patch
-Patch114: chromium-120-el7-clang-build-failure.patch
+Patch114: chromium-123-el7-clang-build-failure.patch
# system ffmpeg
# need for old ffmpeg 5.x on epel9
@@ -413,14 +413,14 @@ 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-122-no_matching_constructor.patch
+Patch300: chromium-123-no_matching_constructor.patch
Patch301: chromium-115-compiler-SkColor4f.patch
# workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch302: chromium-122-workaround_clang_bug-structured_binding.patch
+Patch302: chromium-123-workaround_clang_bug-structured_binding.patch
# missing typename
-Patch303: chromium-122-typename.patch
+Patch303: chromium-123-typename.patch
# error: invalid operands to binary expression
Patch304: chromium-117-string-convert.patch
@@ -434,35 +434,29 @@ Patch306: chromium-119-assert.patch
# compiler errors on epel
# revert it for old clang on rhel and f38
Patch307: chromium-121-v8-c++20-p1.patch
-Patch308: chromium-121-v8-c++20.patch
-Patch309: chromium-122-constexpr.patch
+Patch308: chromium-123-v8-c++20.patch
+Patch309: chromium-123-constexpr.patch
# missing include header files
-Patch310: chromium-122-missing-header-files.patch
+Patch310: chromium-123-missing-header-files.patch
# clang warnings
Patch311: chromium-115-clang-warnings.patch
# enable fstack-protector-strong
-Patch312: chromium-119-fstack-protector-strong.patch
+Patch312: chromium-123-fstack-protector-strong.patch
-# upstream: libstdc++: fix static assertion in NodeUuidEquality
-Patch313: chromium-122-static-assert.patch
+# rust is old, function or associated item not found in `OsStr`
+Patch313: chromium-123-rust-clap_lex.patch
Patch314: chromium-122-clang16-buildflags.patch
# assignment-expressions not suport in python < 3.8 on el 7/8
-Patch315: chromium-122-python3-assignment-expressions.patch
+Patch315: chromium-123-python3-assignment-expressions.patch
# add -ftrivial-auto-var-init=zero and -fwrapv
Patch316: chromium-122-clang-build-flags.patch
-# upstream: ibstdc++: do not require including unique_ptr in header
-Patch317: chromium-122-unique_ptr.patch
-
-# build error
-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.
@@ -941,7 +935,7 @@ Requires: chromium-common%{_isa} = %{version}-%{release}
%if 0%{?rhel} == 7
ExclusiveArch: x86_64
%else
-%if 0%{?fedora} >= 40
+%if 0%{?fedora} > 40
ExclusiveArch: x86_64 aarch64 ppc64le
%else
ExclusiveArch: x86_64 aarch64
@@ -1166,7 +1160,7 @@ udev.
%endif
%if ! %{bundleffmpegfree}
-%if 0%{?rhel} == 9 || 0%{?fedora} == 37
+%if 0%{?rhel} == 9
%patch -P115 -p1 -b .ffmpeg-5.x-duration
%endif
%patch -P116 -p1 -b .prop-codecs
@@ -1189,7 +1183,7 @@ udev.
%patch -P110 -p1 -b .buildflag-el7
%patch -P111 -p1 -b .inline-function-el7
%patch -P113 -p1 -b .el7-clang-version-warning
-%patch -P114 -p1 -R -b .clang-build-failure
+%patch -P114 -p1 -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
@@ -1217,19 +1211,20 @@ udev.
%patch -P307 -p1 -R -b .v8-c++20
%patch -P308 -p1 -R -b .v8-c++20
%patch -P309 -p1 -b .constexpr
-%patch -P313 -p1 -b .static-assert
%patch -P314 -p1 -b .clang16-buildflag
%endif
%patch -P310 -p1 -b .missing-header-files
%patch -P311 -p1 -b .clang-warnings
%patch -P312 -p1 -b .fstack-protector-strong
-%patch -P317 -p1 -b .unique_ptr.patch
+
+%if 0%{?rhel} && 0%{?rhel} < 10
+%patch -P313 -p1 -b .rust-clap_lex
+%endif
%if 0%{?rhel} >= 8 || 0%{?fedora}
%patch -P316 -p1 -b .clang-build-flags
%endif
-%patch -P351 -p1 -b .mnemonic-error
%if %{disable_bti}
%patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system
@@ -1391,6 +1386,7 @@ export LANG=en_US.UTF-8
FLAGS=' -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument'
FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable'
FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes'
+FLAGS+=' -Wno-unknown-pragmas'
%endif
%if %{system_build_flags}
@@ -2110,6 +2106,19 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%endif
%changelog
+* Wed Mar 20 2024 Than Ngo <than@redhat.com> - 123.0.6312.58-1
+- update to 123.0.6312.58
+ * High CVE-2024-2625: Object lifecycle issue in V8
+ * Medium CVE-2024-2626: Out of bounds read in Swiftshader
+ * Medium CVE-2024-2627: Use after free in Canvas
+ * Medium CVE-2024-2628: Inappropriate implementation in Downloads
+ * Medium CVE-2024-2629: Incorrect security UI in iOS
+ * Medium CVE-2024-2630: Inappropriate implementation in iOS
+ * Low CVE-2024-2631: Inappropriate implementation in iOS
+
+* Fri Mar 15 2024 Than Ngo <than@redhat.com> - 123.0.6312.46-1
+- update to 123.0.6312.46
+
* Wed Mar 13 2024 Than Ngo <than@redhat.com> - 122.0.6261.128-1
- upstream security release 122.0.6261.128
* High CVE-2024-2400: Use after free in Performance Manager
diff --git a/sources b/sources
index 827e5d4..bce4070 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-122.0.6261.128-clean.tar.xz) = 521d90bab5d071bf33dba014bd258f543db05a8606bc1c0279ee94ac3baac82629ba4d57579c3eaa8885e789a553b6e6d9161db852ccf25a59686b1186406054
+SHA512 (chromium-123.0.6312.58-clean.tar.xz) = 17424362c1bf3aa4602bf751f21b8f240a0e061fdeced1c3ceed6565326b8a6b43c158eb726d9d47e96883320789384b265331b1ae91a9eca095b388052514a8
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-07 16:06 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:06 [rpms/chromium] epel9-next: - update to 123.0.6312.58 Than Ngo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox