public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: fix build errors on el7
@ 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 : 8a533d07a94bb879260cb20b8a86efa3ed31ba8b
Author : Than Ngo <than@redhat.com>
Date   : 2024-05-19T07:31:11+02:00
Stats  : +4298/-1681 in 22 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/8a533d07a94bb879260cb20b8a86efa3ed31ba8b?branch=epel9-next

Log:
fix build errors on el7

---
diff --git a/chromium-115-compiler-SkColor4f.patch b/chromium-115-compiler-SkColor4f.patch
deleted file mode 100644
index 7e17cb0..0000000
--- a/chromium-115-compiler-SkColor4f.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
---- chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me	2023-06-24 10:38:11.011511463 +0200
-+++ chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc	2023-06-24 13:07:35.865375884 +0200
-@@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty
- 
- void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
-                                float global_alpha) const {
-+  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
-   switch (type_) {
-     case kColor:
-       ApplyColorToFlags(flags, global_alpha);
-@@ -91,12 +92,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
-     case kGradient:
-       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
-                                                        ImageDrawOptions());
--      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
-+      flags.setColor(custom_color);
-       break;
-     case kImagePattern:
-       GetCanvasPattern()->GetPattern()->ApplyToFlags(
-           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
--      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
-+      flags.setColor(custom_color);
-       break;
-     default:
-       NOTREACHED();

diff --git a/chromium-115-el7-compiler-SkColor4f.patch b/chromium-115-el7-compiler-SkColor4f.patch
new file mode 100644
index 0000000..7e17cb0
--- /dev/null
+++ b/chromium-115-el7-compiler-SkColor4f.patch
@@ -0,0 +1,26 @@
+diff -up chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+--- chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me	2023-06-24 10:38:11.011511463 +0200
++++ chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc	2023-06-24 13:07:35.865375884 +0200
+@@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty
+ 
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+                                float global_alpha) const {
++  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
+   switch (type_) {
+     case kColor:
+       ApplyColorToFlags(flags, global_alpha);
+@@ -91,12 +92,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
+     case kGradient:
+       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+                                                        ImageDrawOptions());
+-      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++      flags.setColor(custom_color);
+       break;
+     case kImagePattern:
+       GetCanvasPattern()->GetPattern()->ApplyToFlags(
+           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+-      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++      flags.setColor(custom_color);
+       break;
+     default:
+       NOTREACHED();

diff --git a/chromium-117-el7-string-convert.patch b/chromium-117-el7-string-convert.patch
new file mode 100644
index 0000000..cb48e4b
--- /dev/null
+++ b/chromium-117-el7-string-convert.patch
@@ -0,0 +1,21 @@
+diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
+diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me chromium-117.0.5938.62/net/dns/host_resolver_cache.h
+--- chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me	2023-09-14 15:21:24.632965004 +0200
++++ chromium-117.0.5938.62/net/dns/host_resolver_cache.h	2023-09-15 09:15:48.511300845 +0200
+@@ -143,12 +143,14 @@ class NET_EXPORT HostResolverCache final
+     }
+ 
+     bool operator()(const Key& lhs, const KeyRef& rhs) const {
++      const std::string rhs_domain_name{rhs.domain_name};
+       return std::tie(lhs.domain_name, lhs.network_anonymization_key) <
+-             std::tie(rhs.domain_name, *rhs.network_anonymization_key);
++             std::tie(rhs_domain_name, *rhs.network_anonymization_key);
+     }
+ 
+     bool operator()(const KeyRef& lhs, const Key& rhs) const {
+-      return std::tie(lhs.domain_name, *lhs.network_anonymization_key) <
++      const std::string lhs_domain_name{lhs.domain_name};
++      return std::tie(lhs_domain_name, *lhs.network_anonymization_key) <
+              std::tie(rhs.domain_name, rhs.network_anonymization_key);
+     }
+   };

diff --git a/chromium-117-string-convert.patch b/chromium-117-string-convert.patch
deleted file mode 100644
index cb48e4b..0000000
--- a/chromium-117-string-convert.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
-diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me chromium-117.0.5938.62/net/dns/host_resolver_cache.h
---- chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me	2023-09-14 15:21:24.632965004 +0200
-+++ chromium-117.0.5938.62/net/dns/host_resolver_cache.h	2023-09-15 09:15:48.511300845 +0200
-@@ -143,12 +143,14 @@ class NET_EXPORT HostResolverCache final
-     }
- 
-     bool operator()(const Key& lhs, const KeyRef& rhs) const {
-+      const std::string rhs_domain_name{rhs.domain_name};
-       return std::tie(lhs.domain_name, lhs.network_anonymization_key) <
--             std::tie(rhs.domain_name, *rhs.network_anonymization_key);
-+             std::tie(rhs_domain_name, *rhs.network_anonymization_key);
-     }
- 
-     bool operator()(const KeyRef& lhs, const Key& rhs) const {
--      return std::tie(lhs.domain_name, *lhs.network_anonymization_key) <
-+      const std::string lhs_domain_name{lhs.domain_name};
-+      return std::tie(lhs_domain_name, *lhs.network_anonymization_key) <
-              std::tie(rhs.domain_name, rhs.network_anonymization_key);
-     }
-   };

diff --git a/chromium-119-assert.patch b/chromium-119-assert.patch
deleted file mode 100644
index 6c502f1..0000000
--- a/chromium-119-assert.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-119.0.6045.59/v8/src/base/small-vector.h.than chromium-119.0.6045.59/v8/src/base/small-vector.h
---- chromium-119.0.6045.59/v8/src/base/small-vector.h.than	2023-11-01 16:13:12.645301345 +0100
-+++ chromium-119.0.6045.59/v8/src/base/small-vector.h	2023-11-01 16:13:29.660610182 +0100
-@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
- class SmallVector {
-   // Currently only support trivially copyable and trivially destructible data
-   // types, as it uses memcpy to copy elements and never calls destructors.
--  ASSERT_TRIVIALLY_COPYABLE(T);
-+  //ASSERT_TRIVIALLY_COPYABLE(T);
-   static_assert(std::is_trivially_destructible<T>::value);
- 
-  public:

diff --git a/chromium-120-el7-old-libdrm.patch b/chromium-120-el7-old-libdrm.patch
deleted file mode 100644
index db6b8dd..0000000
--- a/chromium-120-el7-old-libdrm.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc
---- chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm	2023-11-29 22:40:44.000000000 +0100
-+++ chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc	2023-12-03 10:33:35.468492298 +0100
-@@ -6,6 +6,14 @@
- 
- #include <drm_fourcc.h>
- 
-+// the libdrm in EL-7 is too old to have this define
-+#ifndef DRM_FORMAT_P010
-+#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
-+#endif
-+#ifndef DRM_FORMAT_ABGR16161616F
-+#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H')
-+#endif
-+
- #include "base/notreached.h"
- 
- namespace ui {

diff --git a/chromium-124-el7-constexpr.patch b/chromium-124-el7-constexpr.patch
deleted file mode 100644
index 735d343..0000000
--- a/chromium-124-el7-constexpr.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -up chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h.me chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h
---- chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h.me	2024-05-07 07:58:10.202960298 +0200
-+++ chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h	2024-05-07 07:59:29.413411767 +0200
-@@ -16,8 +16,8 @@ namespace autofill::i18n_model_definitio
- // Country code that represents autofill's legacy address hierarchy model as
- // stored `kAutofillModelRules`. As a workaround for GCC we declare the
- // std::string constexpr first.
--constexpr inline std::string kLegacyHierarchyCountryCodeString{"XX"};
--constexpr AddressCountryCode kLegacyHierarchyCountryCode =
-+const inline std::string kLegacyHierarchyCountryCodeString{"XX"};
-+const AddressCountryCode kLegacyHierarchyCountryCode =
-     AddressCountryCode(kLegacyHierarchyCountryCodeString);
- 
- // Creates an instance of the address hierarchy model corresponding to the
-diff -up chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h.me chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h
---- chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h.me	2024-05-07 07:59:38.239573497 +0200
-+++ chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h	2024-05-07 08:00:55.578990659 +0200
-@@ -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 -up chromium-124.0.6367.118/components/history/core/browser/history_types.h.me chromium-124.0.6367.118/components/history/core/browser/history_types.h
---- chromium-124.0.6367.118/components/history/core/browser/history_types.h.me	2024-05-06 18:01:28.606845554 +0200
-+++ chromium-124.0.6367.118/components/history/core/browser/history_types.h	2024-05-06 18:06:15.492751252 +0200
-@@ -70,7 +70,7 @@ constexpr VisitedLinkID kInvalidVisitedL
- typedef std::map<VisitID, VisitSource> VisitSourceMap;
- 
- // Constant used to represent that no app_id is used for matching.
--inline constexpr std::optional<std::string> kNoAppIdFilter = std::nullopt;
-+inline const std::optional<std::string> kNoAppIdFilter = std::nullopt;
- 
- // VisitRow -------------------------------------------------------------------
- 
-diff -up chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc.me chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc
---- chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc.me	2024-05-07 00:07:15.720573794 +0200
-+++ chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc	2024-05-07 00:08:07.633519604 +0200
-@@ -28,17 +28,17 @@ namespace network {
- namespace {
- 
- // https://urlpattern.spec.whatwg.org/#default-options
--constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
-+const liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
-                                                     .prefix_list = "",
-                                                     .sensitive = true,
-                                                     .strict = true};
- // https://urlpattern.spec.whatwg.org/#hostname-options
--constexpr liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
-+const liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
-                                                      .prefix_list = "",
-                                                      .sensitive = true,
-                                                      .strict = true};
- // https://urlpattern.spec.whatwg.org/#pathname-options
--constexpr liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
-+const liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
-                                                      .prefix_list = "/",
-                                                      .sensitive = true,
-                                                      .strict = true};
-diff -up chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.me1 chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py
---- chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.me1	2024-05-07 10:58:13.316756926 +0200
-+++ chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py	2024-05-07 10:58:30.821083061 +0200
-@@ -54,7 +54,7 @@ def generate_matching_pattern_equals(nam
-   yield '// Checks if all the matching patterns for the given PatternSources'
-   yield '// and language are the same - meaning that computing predictions for'
-   yield '// both is unnecessary, since it will yield the same result.'
--  yield 'constexpr bool AreMatchingPatternsEqualImpl(PatternSource a,'
-+  yield 'const bool AreMatchingPatternsEqualImpl(PatternSource a,'
-   yield '                                            PatternSource b,'
-   yield '                                            LanguageCode lang_code) {'
-   yield '  if (a == b) {'

diff --git a/chromium-124-el7-default-constructor-involving-anonymous-union.patch b/chromium-124-el7-default-constructor-involving-anonymous-union.patch
deleted file mode 100644
index 38004da..0000000
--- a/chromium-124-el7-default-constructor-involving-anonymous-union.patch
+++ /dev/null
@@ -1,48 +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 -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 -up chromium-124.0.6367.201/components/manta/base_provider.cc.me chromium-124.0.6367.201/components/manta/base_provider.cc
---- chromium-124.0.6367.201/components/manta/base_provider.cc.me	2024-05-11 21:32:47.108964074 +0200
-+++ chromium-124.0.6367.201/components/manta/base_provider.cc	2024-05-11 21:34:42.758918367 +0200
-@@ -13,7 +13,7 @@ constexpr base::TimeDelta kTimeout = bas
- 
- }  // namespace
- 
--BaseProvider::BaseProvider() = default;
-+BaseProvider::BaseProvider() {}
- BaseProvider::BaseProvider(
-     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-     signin::IdentityManager* identity_manager)

diff --git a/chromium-124-el7-workaround_clang_bug-structured_binding.patch b/chromium-124-el7-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..727e4f5
--- /dev/null
+++ b/chromium-124-el7-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-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc.workaround_clang_bug-structured_binding	2024-05-05 16:22:47.581070868 +0200
++++ chromium-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc	2024-05-05 16:27:18.859972481 +0200
+@@ -417,7 +417,8 @@
+   }
+ 
+   SCOPED_CRASH_KEY_STRING256("SWRace", "request_url", request_.url.spec());
+-  auto [read_result, read_buffer] = read_buffer_manager_->ReadData();
++  auto [r, read_buffer] = read_buffer_manager_->ReadData();
++  auto read_result = r;
+   TRACE_EVENT_WITH_FLOW2("ServiceWorker",
+                          "ServiceWorkerRaceNetworkRequestURLLoaderClient::Read",
+                          TRACE_ID_LOCAL(this),

diff --git a/chromium-124-no_matching_constructor.patch b/chromium-124-no_matching_constructor.patch
deleted file mode 100644
index 0c60858..0000000
--- a/chromium-124-no_matching_constructor.patch
+++ /dev/null
@@ -1,1392 +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/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(
---- 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/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/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};
-   }
---- chromium-124.0.6367.118/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor	2024-05-05 11:21:25.869307434 +0200
-+++ chromium-124.0.6367.118/chrome/browser/renderer_context_menu/render_view_context_menu.cc	2024-05-05 12:11:07.575690784 +0200
-@@ -4043,10 +4043,10 @@
-     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);
-     GetBrowser()->window()->NotifyPromoFeatureUsed(
-         compose::features::kEnableCompose);
---- chromium-124.0.6367.118/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor	2024-05-01 01:46:48.000000000 +0200
-+++ chromium-124.0.6367.118/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-05-05 12:13:22.814839779 +0200
-@@ -108,7 +108,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;
- }
-@@ -440,7 +440,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-124.0.6367.118/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor	2024-05-05 11:21:25.888307743 +0200
-+++ chromium-124.0.6367.118/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc	2024-05-05 12:17:07.658087100 +0200
-@@ -73,7 +73,7 @@
-     // synchronization between the root and branch, so `branch_size_in_bytes_`
-     // may be larger than `root_.capacity_in_bytes_` at this point.
- 
--    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-124.0.6367.118/components/attribution_reporting/registration_info.cc.me chromium-124.0.6367.118/components/attribution_reporting/registration_info.cc
---- chromium-124.0.6367.118/components/attribution_reporting/registration_info.cc.me	2024-05-06 12:00:52.947652122 +0200
-+++ chromium-124.0.6367.118/components/attribution_reporting/registration_info.cc	2024-05-06 12:01:06.829970137 +0200
-@@ -96,7 +96,7 @@ RegistrationInfo::ParseInfo(const net::s
- 
-   ASSIGN_OR_RETURN(bool report_header_errors, ParseReportHeaderErrors(dict));
- 
--  return RegistrationInfo(preferred_platform, report_header_errors);
-+  return RegistrationInfo{preferred_platform, report_header_errors};
- }
- 
- }  // namespace attribution_reporting
-diff -up chromium-124.0.6367.118/gpu/command_buffer/client/shared_image_interface.h.me chromium-124.0.6367.118/gpu/command_buffer/client/shared_image_interface.h
---- chromium-124.0.6367.118/gpu/command_buffer/client/shared_image_interface.h.me	2024-05-06 09:53:10.755781392 +0200
-+++ chromium-124.0.6367.118/gpu/command_buffer/client/shared_image_interface.h	2024-05-06 09:54:42.280586275 +0200
-@@ -64,19 +64,19 @@ struct SharedImageInfo {
-                   SkAlphaType alpha_type,
-                   uint32_t usage,
-                   std::string_view debug_label)
--      : meta(format, size, color_space, surface_origin, alpha_type, usage),
-+      : meta{format, size, color_space, surface_origin, alpha_type, usage},
-         debug_label(debug_label) {}
-   SharedImageInfo(const viz::SharedImageFormat& format,
-                   gfx::Size size,
-                   const gfx::ColorSpace& color_space,
-                   uint32_t usage,
-                   std::string_view debug_label)
--      : meta(format,
-+      : meta{format,
-              size,
-              color_space,
-              kTopLeft_GrSurfaceOrigin,
-              kPremul_SkAlphaType,
--             usage),
-+             usage},
-         debug_label(debug_label) {}
-   // This constructor exists only to support the DEPRECATED CreareSharedImage
-   // call below that accepts a GpuMemoryBuffer. This should be removed when that
-diff -up chromium-124.0.6367.118/gpu/command_buffer/service/shared_image_interface_in_process.cc.me chromium-124.0.6367.118/gpu/command_buffer/service/shared_image_interface_in_process.cc
---- chromium-124.0.6367.118/gpu/command_buffer/service/shared_image_interface_in_process.cc.me	2024-05-06 11:05:36.974350061 +0200
-+++ chromium-124.0.6367.118/gpu/command_buffer/service/shared_image_interface_in_process.cc	2024-05-06 11:06:05.848045697 +0200
-@@ -579,11 +579,11 @@ SharedImageInterfaceInProcess::CreateSha
- 
-   return base::MakeRefCounted<ClientSharedImage>(
-       mailbox,
--      SharedImageMetadata(
-+      SharedImageMetadata{
-           viz::GetSinglePlaneSharedImageFormat(gpu_memory_buffer->GetFormat()),
-           gpu_memory_buffer->GetSize(), si_info.meta.color_space,
-           si_info.meta.surface_origin, si_info.meta.alpha_type,
--          si_info.meta.usage),
-+          si_info.meta.usage},
-       GenUnverifiedSyncToken(), holder_);
- }
- 
-diff -up chromium-124.0.6367.118/gpu/ipc/client/client_shared_image_interface.cc.me chromium-124.0.6367.118/gpu/ipc/client/client_shared_image_interface.cc
---- chromium-124.0.6367.118/gpu/ipc/client/client_shared_image_interface.cc.me	2024-05-06 10:12:47.067925365 +0200
-+++ chromium-124.0.6367.118/gpu/ipc/client/client_shared_image_interface.cc	2024-05-06 10:13:56.568627190 +0200
-@@ -238,11 +238,11 @@ scoped_refptr<ClientSharedImage> ClientS
-       AddMailbox(proxy_->CreateSharedImage(
-           buffer_format, plane, gpu_memory_buffer->GetSize(), si_info,
-           gpu_memory_buffer->CloneHandle())),
--      SharedImageMetadata(viz::GetSinglePlaneSharedImageFormat(
-+      SharedImageMetadata{viz::GetSinglePlaneSharedImageFormat(
-                               GetPlaneBufferFormat(plane, buffer_format)),
-                           gpu_memory_buffer->GetSize(),
-                           si_info.meta.color_space, si_info.meta.surface_origin,
--                          si_info.meta.alpha_type, si_info.meta.usage),
-+                          si_info.meta.alpha_type, si_info.meta.usage},
-       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
- }
- 
-@@ -277,13 +277,13 @@ ClientSharedImageInterface::CreateSwapCh
-   return ClientSharedImageInterface::SwapChainSharedImages(
-       base::MakeRefCounted<ClientSharedImage>(
-           mailboxes.front_buffer,
--          SharedImageMetadata(format, size, color_space, surface_origin,
--                              alpha_type, usage),
-+          SharedImageMetadata{format, size, color_space, surface_origin,
-+                              alpha_type, usage},
-           sync_token, holder_),
-       base::MakeRefCounted<ClientSharedImage>(
-           mailboxes.back_buffer,
--          SharedImageMetadata(format, size, color_space, surface_origin,
--                              alpha_type, usage),
-+          SharedImageMetadata{format, size, color_space, surface_origin,
-+                              alpha_type, usage},
-           sync_token, holder_));
- }
- 
-@@ -339,8 +339,8 @@ scoped_refptr<ClientSharedImage> ClientS
- 
-   return base::MakeRefCounted<ClientSharedImage>(
-       mailbox,
--      SharedImageMetadata(format, size, color_space, surface_origin, alpha_type,
--                          usage),
-+      SharedImageMetadata{format, size, color_space, surface_origin, alpha_type,
-+                          usage},
-       GenUnverifiedSyncToken(), holder_);
- }
- 
-diff -up chromium-124.0.6367.118/content/browser/gpu/compositor_util.cc.me chromium-124.0.6367.118/content/browser/gpu/compositor_util.cc
---- chromium-124.0.6367.118/content/browser/gpu/compositor_util.cc.me	2024-05-07 13:34:30.384580905 +0200
-+++ chromium-124.0.6367.118/content/browser/gpu/compositor_util.cc	2024-05-07 13:39:24.219132733 +0200
-@@ -108,7 +108,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       *base::CommandLine::ForCurrentProcess();
- 
-   std::vector<GpuFeatureData> features;
--  features.emplace_back(
-+  features.emplace_back() = {
-       "2d_canvas",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS,
-@@ -116,13 +116,13 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated 2D canvas is unavailable: either disabled "
-           "via blocklist or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "canvas_oop_rasterization",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION,
--          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas)));
--  features.emplace_back(
-+          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas))};
-+  features.emplace_back() = {
-       "gpu_compositing",
-       // TODO(rivr): Replace with a check to see which backend is used for
-       // compositing; do the same for GPU rasterization if it's enabled. For
-@@ -136,16 +136,16 @@ std::vector<GpuFeatureData> GetGpuFeatur
-           "about:flags "
-           "or the command line. The browser will fall back to software "
-           "compositing and hardware acceleration will be unavailable."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "webgl",
-       SafeGetFeatureStatus(gpu_feature_info,
-                            gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL,
-                            command_line.HasSwitch(switches::kDisableWebGL)),
-       DisableInfo::Problem(
-           "WebGL has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {
-       "video_decode",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
-@@ -156,8 +156,8 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated video decode has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "video_encode",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
-@@ -169,33 +169,33 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated video encode has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "rasterization",
-       SafeGetFeatureStatus(gpu_feature_info,
-                            gpu::GPU_FEATURE_TYPE_GPU_TILE_RASTERIZATION),
-       DisableInfo::Problem(
-           "Accelerated rasterization has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "opengl", SafeGetFeatureStatus(gpu_feature_info,
--                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL));
-+                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL)};
- #if BUILDFLAG(ENABLE_VULKAN)
--  features.emplace_back(
-+  features.emplace_back() = {
-       "vulkan",
--      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN));
-+      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN)};
- #endif
--  features.emplace_back(
-+  features.emplace_back() = {
-       "multiple_raster_threads",
--      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1));
-+      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1)};
- #if BUILDFLAG(IS_ANDROID)
--  features.emplace_back(
-+  features.emplace_back() = {
-       "surface_control",
-       SafeGetFeatureStatus(gpu_feature_info,
--                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL));
-+                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)};
- #endif
--  features.emplace_back(
-+  features.emplace_back() = {
-       "webgl2",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL2,
-@@ -203,12 +203,12 @@ std::vector<GpuFeatureData> GetGpuFeatur
-               command_line.HasSwitch(switches::kDisableWebGL2)),
-       DisableInfo::Problem(
-           "WebGL2 has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back("raw_draw",
--                        GetFakeFeatureStatus(features::IsUsingRawDraw()));
--  features.emplace_back("direct_rendering_display_compositor",
--                        GetFakeFeatureStatus(features::IsDrDcEnabled()));
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {"raw_draw",
-+                        GetFakeFeatureStatus(features::IsUsingRawDraw())};
-+  features.emplace_back() = {"direct_rendering_display_compositor",
-+                        GetFakeFeatureStatus(features::IsDrDcEnabled())};
-+  features.emplace_back() = {
-       "webgpu",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGPU,
-@@ -216,14 +216,14 @@ std::vector<GpuFeatureData> GetGpuFeatur
-               !base::FeatureList::IsEnabled(::features::kWebGPUService)),
-       DisableInfo::Problem(
-           "WebGPU has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {
-       "skia_graphite",
-       SafeGetFeatureStatus(gpu_feature_info,
--                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE));
--  features.emplace_back(
-+                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE)};
-+  features.emplace_back() = {
-       "webnn",
--      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN));
-+      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN)};
-   return features;
- }
- 
-diff -up chromium-124.0.6367.118/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.me chromium-124.0.6367.118/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc
---- chromium-124.0.6367.118/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.me	2024-05-07 17:36:54.884303561 +0200
-+++ chromium-124.0.6367.118/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc	2024-05-07 17:38:26.954157928 +0200
-@@ -171,8 +171,8 @@ AudioRendererMixer* AudioRendererMixerMa
-     DVLOG(1) << "Not reusing mixer with errors: " << it->second.mixer;
- 
-     // Move bad mixers out of the reuse map.
--    dead_mixers_.emplace_back(std::move(it->second.mixer),
--                              it->second.ref_count);
-+    dead_mixers_.emplace_back() = {std::move(it->second.mixer),
-+                              it->second.ref_count};
-     mixers_.erase(it);
-   }
- 
-@@ -218,7 +218,7 @@ void AudioRendererMixerManager::ReturnMi
-     }
-   } else if (dead_it == dead_mixers_.end() && mixer_ref.mixer->HasSinkError()) {
-     // Move bad mixers out of the reuse map.
--    dead_mixers_.emplace_back(std::move(mixer_ref.mixer), mixer_ref.ref_count);
-+    dead_mixers_.emplace_back() = {std::move(mixer_ref.mixer), mixer_ref.ref_count};
-     mixers_.erase(it);
-   }
- }

diff --git a/chromium-124-workaround_clang_bug-structured_binding.patch b/chromium-124-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index 727e4f5..0000000
--- a/chromium-124-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,78 +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/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-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc.workaround_clang_bug-structured_binding	2024-05-05 16:22:47.581070868 +0200
-+++ chromium-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc	2024-05-05 16:27:18.859972481 +0200
-@@ -417,7 +417,8 @@
-   }
- 
-   SCOPED_CRASH_KEY_STRING256("SWRace", "request_url", request_.url.spec());
--  auto [read_result, read_buffer] = read_buffer_manager_->ReadData();
-+  auto [r, read_buffer] = read_buffer_manager_->ReadData();
-+  auto read_result = r;
-   TRACE_EVENT_WITH_FLOW2("ServiceWorker",
-                          "ServiceWorkerRaceNetworkRequestURLLoaderClient::Read",
-                          TRACE_ID_LOCAL(this),

diff --git a/chromium-125-el7-assert.patch b/chromium-125-el7-assert.patch
new file mode 100644
index 0000000..e76feda
--- /dev/null
+++ b/chromium-125-el7-assert.patch
@@ -0,0 +1,24 @@
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h.assert chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h.assert	2024-05-18 19:33:37.165243577 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h	2024-05-18 19:45:51.224995489 +0200
+@@ -185,7 +185,7 @@ class WebUIContentsWrapperT : public Web
+                              supports_draggable_regions,
+                              T::GetWebUIName()),
+         webui_url_(webui_url) {
+-    static_assert(
++    assert(
+         views_metrics::IsValidWebUINameVariant("." + T::GetWebUIName()));
+     if (is_ready_to_show()) {
+       CHECK(GetWebUIController());
+diff -up chromium-125.0.6422.60/v8/src/base/small-vector.h.assert chromium-125.0.6422.60/v8/src/base/small-vector.h
+--- chromium-125.0.6422.60/v8/src/base/small-vector.h.assert	2024-05-15 23:48:18.000000000 +0200
++++ chromium-125.0.6422.60/v8/src/base/small-vector.h	2024-05-17 12:33:58.745651173 +0200
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
++  //ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:

diff --git a/chromium-125-el7-constexpr.patch b/chromium-125-el7-constexpr.patch
new file mode 100644
index 0000000..0183bb3
--- /dev/null
+++ b/chromium-125-el7-constexpr.patch
@@ -0,0 +1,242 @@
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.const	2024-05-18 18:57:37.099203314 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h	2024-05-18 22:16:52.879603051 +0200
+@@ -42,7 +42,7 @@ class ShoppingInsightsSidePanelUI
+       mojo::PendingReceiver<
+           shopping_service::mojom::ShoppingServiceHandlerFactory> receiver);
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "ShoppingInsightsSidePanel";
+   }
+ 
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/compose/compose_untrusted_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.const	2024-05-18 19:03:13.999255471 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/compose/compose_untrusted_ui.h	2024-05-18 22:16:52.883603124 +0200
+@@ -58,7 +58,7 @@ class ComposeUntrustedUI
+     triggering_web_contents_ = web_contents->GetWeakPtr();
+   }
+ 
+-  static constexpr std::string GetWebUIName() { return "Compose"; }
++  static const std::string GetWebUIName() { return "Compose"; }
+ 
+  private:
+   void CreateComposeSessionUntrustedPageHandler(
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/lens/lens_untrusted_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/lens/lens_untrusted_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/lens/lens_untrusted_ui.h.const	2024-05-18 18:59:16.859995432 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/lens/lens_untrusted_ui.h	2024-05-18 22:16:52.883603124 +0200
+@@ -47,7 +47,7 @@ class LensUntrustedUI : public Untrusted
+       mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "LensUntrusted"; }
++  static const std::string GetWebUIName() { return "LensUntrusted"; }
+ 
+  private:
+   // lens::mojom::LensPageHandlerFactory:
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/lens/search_bubble_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/lens/search_bubble_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/lens/search_bubble_ui.h.const	2024-05-18 18:59:49.020573177 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/lens/search_bubble_ui.h	2024-05-18 22:16:52.883603124 +0200
+@@ -26,7 +26,7 @@ class SearchBubbleUI : public TopChromeW
+       mojo::PendingReceiver<lens::mojom::SearchBubblePageHandlerFactory>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "LensSearchBubble"; }
++  static const std::string GetWebUIName() { return "LensSearchBubble"; }
+ 
+  private:
+   // lens::mojom::SearchBubblePageHandlerFactory
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.const	2024-05-18 19:00:08.686926471 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h	2024-05-18 22:16:52.883603124 +0200
+@@ -63,7 +63,7 @@ class BookmarksSidePanelUI
+   commerce::ShoppingListContextMenuController*
+   GetShoppingListContextMenuController();
+ 
+-  static constexpr std::string GetWebUIName() { return "BookmarksSidePanel"; }
++  static const std::string GetWebUIName() { return "BookmarksSidePanel"; }
+ 
+  private:
+   // side_panel::mojom::BookmarksPageHandlerFactory:
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.const	2024-05-18 19:00:36.351423440 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h	2024-05-18 22:16:52.884603143 +0200
+@@ -34,7 +34,7 @@ class CompanionSidePanelUntrustedUI
+   // Gets a weak pointer to this object.
+   base::WeakPtr<CompanionSidePanelUntrustedUI> GetWeakPtr();
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "CompanionSidePanelUntrusted";
+   }
+ 
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.const	2024-05-18 19:00:56.088778012 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h	2024-05-18 22:16:52.884603143 +0200
+@@ -102,7 +102,7 @@ class CustomizeChromeUI
+           side_panel::customize_chrome::mojom::WallpaperSearchHandlerFactory>
+           pending_receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "CustomizeChrome"; }
++  static const std::string GetWebUIName() { return "CustomizeChrome"; }
+ 
+  private:
+   // side_panel::mojom::CustomizeChromePageHandlerFactory
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.const	2024-05-18 19:01:15.986135446 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h	2024-05-18 22:16:52.884603143 +0200
+@@ -70,7 +70,7 @@ class HistoryClustersSidePanelUI : publi
+   void DidFinishNavigation(
+       content::NavigationHandle* navigation_handle) override;
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "HistoryClustersSidePanel";
+   }
+ 
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.const	2024-05-18 19:01:34.274463982 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h	2024-05-18 22:16:52.884603143 +0200
+@@ -41,7 +41,7 @@ class PerformanceSidePanelUI
+       mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
+           pending_receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "PerformanceSidePanel"; }
++  static const std::string GetWebUIName() { return "PerformanceSidePanel"; }
+ 
+  private:
+   // side_panel::mojom::PerformancePageHandlerFactory:
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.const	2024-05-18 19:01:52.842797556 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h	2024-05-18 22:16:52.884603143 +0200
+@@ -55,7 +55,7 @@ class ReadAnythingUntrustedUI
+       mojo::PendingReceiver<read_anything::mojom::UntrustedPageHandlerFactory>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "ReadAnythingUntrusted";
+   }
+ 
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.const	2024-05-18 19:02:17.381238375 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h	2024-05-18 22:16:52.885603162 +0200
+@@ -47,7 +47,7 @@ class ReadingListUI : public TopChromeWe
+ 
+   void SetActiveTabURL(const GURL& url);
+ 
+-  static constexpr std::string GetWebUIName() { return "ReadingList"; }
++  static const std::string GetWebUIName() { return "ReadingList"; }
+ 
+  private:
+   // reading_list::mojom::PageHandlerFactory:
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.const	2024-05-18 19:02:34.413544341 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h	2024-05-18 22:16:52.885603162 +0200
+@@ -35,7 +35,7 @@ class UserNotesSidePanelUI
+ 
+   void set_browser(Browser* browser) { browser_ = browser; }
+ 
+-  static constexpr std::string GetWebUIName() { return "UserNotesSidePanel"; }
++  static const std::string GetWebUIName() { return "UserNotesSidePanel"; }
+ 
+  private:
+   // user_notes::mojom::UserNotesPageHandlerFactory
+diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/tab_search/tab_search_ui.h.const chromium-125.0.6422.60/chrome/browser/ui/webui/tab_search/tab_search_ui.h
+--- chromium-125.0.6422.60/chrome/browser/ui/webui/tab_search/tab_search_ui.h.const	2024-05-18 19:02:52.261864965 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/webui/tab_search/tab_search_ui.h	2024-05-18 22:16:52.885603162 +0200
+@@ -46,7 +46,7 @@ class TabSearchUI : public TopChromeWebU
+     return page_handler_.get();
+   }
+ 
+-  static constexpr std::string GetWebUIName() { return "TabSearch"; }
++  static const std::string GetWebUIName() { return "TabSearch"; }
+ 
+  private:
+   // tab_search::mojom::PageHandlerFactory
+diff -up chromium-125.0.6422.60/components/omnibox/browser/on_device_tail_model_service.cc.const chromium-125.0.6422.60/components/omnibox/browser/on_device_tail_model_service.cc
+--- chromium-125.0.6422.60/components/omnibox/browser/on_device_tail_model_service.cc.const	2024-05-18 23:06:22.071586909 +0200
++++ chromium-125.0.6422.60/components/omnibox/browser/on_device_tail_model_service.cc	2024-05-18 23:06:44.827133461 +0200
+@@ -30,7 +30,7 @@ namespace {
+ // The maximum idle time before the model executor is unloaded from memory.
+ constexpr base::TimeDelta kMaxExecutorIdleSeconds = base::Seconds(60);
+ // Constants for TFlite model validation.
+-constexpr std::string kTestPrefix = "face";
++const std::string kTestPrefix = "face";
+ constexpr std::string_view kModelValidationSwitchName =
+     "omnibox-on-device-tail-model-validation";
+ 
+diff -up chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h.me chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h
+--- chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h.me	2024-05-07 07:58:10.202960298 +0200
++++ chromium-124.0.6367.118/components/autofill/core/browser/data_model/autofill_i18n_api.h	2024-05-07 07:59:29.413411767 +0200
+@@ -16,8 +16,8 @@ namespace autofill::i18n_model_definitio
+ // Country code that represents autofill's legacy address hierarchy model as
+ // stored `kAutofillModelRules`. As a workaround for GCC we declare the
+ // std::string constexpr first.
+-constexpr inline std::string kLegacyHierarchyCountryCodeString{"XX"};
+-constexpr AddressCountryCode kLegacyHierarchyCountryCode =
++const inline std::string kLegacyHierarchyCountryCodeString{"XX"};
++const AddressCountryCode kLegacyHierarchyCountryCode =
+     AddressCountryCode(kLegacyHierarchyCountryCodeString);
+ 
+ // Creates an instance of the address hierarchy model corresponding to the
+diff -up chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h.me chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h
+--- chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h.me	2024-05-07 07:59:38.239573497 +0200
++++ chromium-124.0.6367.118/components/autofill/core/browser/metrics/log_event.h	2024-05-07 08:00:55.578990659 +0200
+@@ -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 -up chromium-124.0.6367.118/components/history/core/browser/history_types.h.me chromium-124.0.6367.118/components/history/core/browser/history_types.h
+--- chromium-124.0.6367.118/components/history/core/browser/history_types.h.me	2024-05-06 18:01:28.606845554 +0200
++++ chromium-124.0.6367.118/components/history/core/browser/history_types.h	2024-05-06 18:06:15.492751252 +0200
+@@ -70,7 +70,7 @@ constexpr VisitedLinkID kInvalidVisitedL
+ typedef std::map<VisitID, VisitSource> VisitSourceMap;
+ 
+ // Constant used to represent that no app_id is used for matching.
+-inline constexpr std::optional<std::string> kNoAppIdFilter = std::nullopt;
++inline const std::optional<std::string> kNoAppIdFilter = std::nullopt;
+ 
+ // VisitRow -------------------------------------------------------------------
+ 
+diff -up chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc.me chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc
+--- chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc.me	2024-05-07 00:07:15.720573794 +0200
++++ chromium-124.0.6367.118/services/network/shared_dictionary/simple_url_pattern_matcher.cc	2024-05-07 00:08:07.633519604 +0200
+@@ -28,17 +28,17 @@ namespace network {
+ namespace {
+ 
+ // https://urlpattern.spec.whatwg.org/#default-options
+-constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
++const liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
+                                                     .prefix_list = "",
+                                                     .sensitive = true,
+                                                     .strict = true};
+ // https://urlpattern.spec.whatwg.org/#hostname-options
+-constexpr liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
++const liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
+                                                      .prefix_list = "",
+                                                      .sensitive = true,
+                                                      .strict = true};
+ // https://urlpattern.spec.whatwg.org/#pathname-options
+-constexpr liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
++const liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
+                                                      .prefix_list = "/",
+                                                      .sensitive = true,
+                                                      .strict = true};
+diff -up chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.me1 chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py
+--- chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.me1	2024-05-07 10:58:13.316756926 +0200
++++ chromium-124.0.6367.118/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py	2024-05-07 10:58:30.821083061 +0200
+@@ -54,7 +54,7 @@ def generate_matching_pattern_equals(nam
+   yield '// Checks if all the matching patterns for the given PatternSources'
+   yield '// and language are the same - meaning that computing predictions for'
+   yield '// both is unnecessary, since it will yield the same result.'
+-  yield 'constexpr bool AreMatchingPatternsEqualImpl(PatternSource a,'
++  yield 'const bool AreMatchingPatternsEqualImpl(PatternSource a,'
+   yield '                                            PatternSource b,'
+   yield '                                            LanguageCode lang_code) {'
+   yield '  if (a == b) {'

diff --git a/chromium-125-el7-default-constructor-involving-anonymous-union.patch b/chromium-125-el7-default-constructor-involving-anonymous-union.patch
new file mode 100644
index 0000000..fc38562
--- /dev/null
+++ b/chromium-125-el7-default-constructor-involving-anonymous-union.patch
@@ -0,0 +1,36 @@
+diff -up chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc
+--- chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc	2024-05-17 12:33:58.684649909 +0200
+@@ -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-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc
+--- chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc	2024-05-17 12:33:58.685649929 +0200
+@@ -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-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h.default-constructor-involving-anonymous-union chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h.default-constructor-involving-anonymous-union	2024-05-18 09:52:22.385330304 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h	2024-05-18 09:52:51.023891525 +0200
+@@ -36,7 +36,7 @@ class FrozenArray final : public binding
+   using const_iterator = typename VectorType::const_iterator;
+   using const_reverse_iterator = typename VectorType::const_reverse_iterator;
+ 
+-  FrozenArray() = default;
++  FrozenArray() {}
+   explicit FrozenArray(VectorType array) : array_(std::move(array)) {}
+   ~FrozenArray() override = default;
+ 

diff --git a/chromium-125-el7-no_matching_constructor.patch b/chromium-125-el7-no_matching_constructor.patch
new file mode 100644
index 0000000..a673d41
--- /dev/null
+++ b/chromium-125-el7-no_matching_constructor.patch
@@ -0,0 +1,1821 @@
+diff -up chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
+--- chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc	2024-05-17 12:33:58.707650385 +0200
+@@ -73,7 +73,7 @@ bool LightweightQuarantineBranch::Quaran
+     // synchronization between the root and branch, so `branch_size_in_bytes_`
+     // may be larger than `root_.capacity_in_bytes_` at this point.
+ 
+-    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-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc
+--- chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
++++ chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc	2024-05-17 12:33:58.708650406 +0200
+@@ -220,13 +220,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-125.0.6422.60/base/nix/mime_util_xdg.cc.no_matching_constructor chromium-125.0.6422.60/base/nix/mime_util_xdg.cc
+--- chromium-125.0.6422.60/base/nix/mime_util_xdg.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
++++ chromium-125.0.6422.60/base/nix/mime_util_xdg.cc	2024-05-17 12:33:58.708650406 +0200
+@@ -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-125.0.6422.60/base/trace_event/trace_log.cc.no_matching_constructor chromium-125.0.6422.60/base/trace_event/trace_log.cc
+--- chromium-125.0.6422.60/base/trace_event/trace_log.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
++++ chromium-125.0.6422.60/base/trace_event/trace_log.cc	2024-05-17 12:33:58.709650427 +0200
+@@ -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-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2024-05-15 23:46:00.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc	2024-05-17 12:33:58.709650427 +0200
+@@ -258,8 +258,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);
+@@ -361,8 +361,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-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2024-05-15 23:46:00.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2024-05-17 12:33:58.709650427 +0200
+@@ -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-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+--- chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor	2024-05-15 23:46:01.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc	2024-05-17 12:33:58.710650447 +0200
+@@ -387,7 +387,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;
+@@ -1688,11 +1688,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-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc
+--- chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor	2024-05-18 19:08:35.415026823 +0200
++++ chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc	2024-05-18 19:10:05.527644708 +0200
+@@ -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-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+--- chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor	2024-05-15 23:46:02.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc	2024-05-17 12:33:58.711650468 +0200
+@@ -4049,10 +4049,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);
+     GetBrowser()->window()->NotifyPromoFeatureUsed(
+         compose::features::kEnableCompose);
+diff -up chromium-125.0.6422.60/chrome/browser/sync/test/integration/product_specifications_helper.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/sync/test/integration/product_specifications_helper.cc
+--- chromium-125.0.6422.60/chrome/browser/sync/test/integration/product_specifications_helper.cc.no_matching_constructor	2024-05-17 13:05:02.199631698 +0200
++++ chromium-125.0.6422.60/chrome/browser/sync/test/integration/product_specifications_helper.cc	2024-05-17 15:57:05.196653150 +0200
+@@ -41,9 +41,9 @@ bool ProductSpecificationsChecker::IsExi
+ bool ProductSpecificationsChecker::IsSpecificsAvailableAndEqual() {
+   for (const ProductSpecificationsSet& product_specifications_set :
+        service_->GetAllProductSpecifications()) {
+-    std::vector<const GURL> specifics_urls;
++    std::vector<GURL> specifics_urls;
+     for (sync_pb::ComparisonData data : compare_specifics_->data()) {
+-      specifics_urls.push_back(GURL(data.url()));
++      specifics_urls.emplace_back() = {data.url()};
+     }
+     if (product_specifications_set.uuid().AsLowercaseString() ==
+             compare_specifics_->uuid() &&
+diff -up chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc	2024-05-17 12:33:58.711650468 +0200
+@@ -365,8 +365,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);
+   LogManualFallbackContextMenuEntryAccepted(
+       static_cast<BrowserAutofillManager&>(manager),
+diff -up chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2024-05-17 12:33:58.712650489 +0200
+@@ -513,10 +513,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, match.extra_headers));
++      destination_url_entered_with_http_scheme, match.extra_headers});
+ 
+   if (browser_) {
+     auto navigation = chrome::OpenCurrentURL(browser_);
+diff -up chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h
+--- chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h	2024-05-17 12:33:58.712650489 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor	2024-05-18 19:53:04.665382949 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc	2024-05-18 19:54:39.601643890 +0200
+@@ -44,20 +44,20 @@ views::ProposedLayout ContentsLayoutMana
+ 
+   // DevTools cares about the specific position, so we have to compensate RTL
+   // layout here.
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       devtools_view_.get(), devtools_view_->GetVisible(),
+       host_view()->GetMirroredRect(new_devtools_bounds),
+-      views::SizeBounds(container_size));
+-  layouts.child_layouts.emplace_back(
++      views::SizeBounds(container_size)};
++  layouts.child_layouts.emplace_back() = {
+       contents_view_.get(), contents_view_->GetVisible(),
+       host_view()->GetMirroredRect(new_contents_bounds),
+-      views::SizeBounds(container_size));
++      views::SizeBounds(container_size)};
+ 
+   // Enterprise watermark view is always overlaid, even when empty.
+   if (watermark_view_) {
+-    layouts.child_layouts.emplace_back(
++    layouts.child_layouts.emplace_back() = {
+         watermark_view_.get(), watermark_view_->GetVisible(),
+-        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size));
++        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size)};
+   }
+   layouts.host_size = gfx::Size(width, height);
+   return layouts;
+diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2024-05-17 12:33:58.713650509 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2024-05-17 12:33:58.713650509 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2024-05-17 12:33:58.713650509 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc	2024-05-17 12:33:58.713650509 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2024-05-17 12:33:58.713650509 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc	2024-05-17 12:33:58.714650530 +0200
+@@ -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-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
+--- chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-05-17 12:33:58.714650530 +0200
+@@ -108,7 +108,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;
+ }
+@@ -440,7 +440,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(concurrent.CreateCallback()),
+diff -up chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc
+--- chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2024-05-15 23:46:07.000000000 +0200
++++ chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc	2024-05-17 12:33:58.715650551 +0200
+@@ -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-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc
+--- chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor	2024-05-17 15:50:21.185054389 +0200
++++ chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc	2024-05-17 15:51:40.414881053 +0200
+@@ -33,7 +33,7 @@ std::vector<NullAggregatableReport> GetN
+     }
+ 
+     if (generate_func(i)) {
+-      reports.emplace_back(fake_source_time);
++      reports.emplace_back() = {fake_source_time};
+     }
+   }
+   return reports;
+diff -up chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc.no_matching_constructor chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc
+--- chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc	2024-05-17 12:33:58.715650551 +0200
+@@ -96,7 +96,7 @@ RegistrationInfo::ParseInfo(const net::s
+ 
+   ASSIGN_OR_RETURN(bool report_header_errors, ParseReportHeaderErrors(dict));
+ 
+-  return RegistrationInfo(preferred_platform, report_header_errors);
++  return RegistrationInfo{preferred_platform, report_header_errors};
+ }
+ 
+ }  // namespace attribution_reporting
+diff -up chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc
+--- chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor	2024-05-18 22:33:31.434606367 +0200
++++ chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc	2024-05-18 22:34:00.604459627 +0200
+@@ -2274,7 +2274,7 @@ std::vector<std::pair<FieldRef, WebAutof
+     if (element.Focused()) {
+       focused_field = {&field, element};
+     } else {
+-      unfocused_fields.emplace_back(&field, element);
++      unfocused_fields.emplace_back() = {&field, element};
+     }
+   }
+ 
+diff -up chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
+--- chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc	2024-05-17 12:33:58.715650551 +0200
+@@ -635,10 +635,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-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
+--- chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc	2024-05-17 12:33:58.715650551 +0200
+@@ -169,9 +169,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-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.cc.no_matching_constructor chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.cc
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.cc	2024-05-18 14:19:21.256381797 +0200
+@@ -24,11 +24,11 @@ ProductSpecificationsService::GetSyncCon
+   return bridge_->change_processor()->GetControllerDelegate();
+ }
+ 
+-const std::vector<const ProductSpecificationsSet>
++const std::vector<ProductSpecificationsSet>
+ ProductSpecificationsService::GetAllProductSpecifications() {
+-  std::vector<const ProductSpecificationsSet> product_specifications;
++  std::vector<ProductSpecificationsSet> product_specifications;
+   for (auto& entry : bridge_->entries()) {
+-    std::vector<const GURL> urls;
++    std::vector<GURL> urls;
+     for (auto& data : entry.second.data()) {
+       urls.emplace_back(data.url());
+     }
+@@ -43,7 +43,7 @@ ProductSpecificationsService::GetAllProd
+ const std::optional<const ProductSpecificationsSet>
+ ProductSpecificationsService::AddProductSpecificationsSet(
+     const std::string& name,
+-    const std::vector<const GURL>& urls) {
++    const std::vector<GURL>& urls) {
+   // TODO(crbug.com/332545064) add for a product specification set being added.
+   std::optional<sync_pb::CompareSpecifics> specifics =
+       bridge_->AddProductSpecifications(name, urls);
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service_unittest.cc.no_matching_constructor chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service_unittest.cc
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.cc.no_matching_constructor chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.cc
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.cc	2024-05-18 14:17:19.705988914 +0200
+@@ -12,7 +12,7 @@ ProductSpecificationsSet::ProductSpecifi
+     const std::string& uuid,
+     const int64_t creation_time_usec_since_epoch,
+     const int64_t update_time_usec_since_epoch,
+-    const std::vector<const GURL>& urls,
++    const std::vector<GURL>& urls,
+     const std::string& name)
+     : uuid_(base::Uuid::ParseLowercase(uuid)),
+       creation_time_(base::Time::FromMillisecondsSinceUnixEpoch(
+@@ -34,9 +34,9 @@ ProductSpecificationsSet::~ProductSpecif
+ 
+ ProductSpecificationsSet ProductSpecificationsSet::FromProto(
+     const sync_pb::CompareSpecifics& specifics) {
+-  std::vector<const GURL> urls;
++  std::vector<GURL> urls;
+   for (const sync_pb::ComparisonData& data : specifics.data()) {
+-    urls.push_back(GURL(data.url()));
++    urls.emplace_back(data.url());
+   }
+   return ProductSpecificationsSet(
+       specifics.uuid(), specifics.creation_time_unix_epoch_micros(),
+diff -up chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc
+--- chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor	2024-05-17 16:24:29.993689838 +0200
++++ chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc	2024-05-17 16:24:48.402073830 +0200
+@@ -98,7 +98,7 @@ bool FCMInvalidationService::UpdateInter
+   DVLOG(2) << "Subscribing to topics: " << topic_set.size();
+   TopicMap topic_map;
+   for (const auto& topic_name : topic_set) {
+-    topic_map[topic_name] = TopicMetadata(handler->IsPublicTopic(topic_name));
++    topic_map[topic_name] = TopicMetadata{handler->IsPublicTopic(topic_name)};
+   }
+   // TODO(crbug.com/40675708): UpdateRegisteredTopics() should be renamed to
+   // clarify that it actually updates whether topics need subscription (aka
+diff -up chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc
+--- chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor	2024-05-15 23:46:12.000000000 +0200
++++ chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc	2024-05-17 12:33:58.715650551 +0200
+@@ -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-125.0.6422.60/components/password_manager/core/browser/password_manager.cc.no_matching_constructor chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc
+--- chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc.no_matching_constructor	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc	2024-05-17 12:33:58.716650572 +0200
+@@ -686,7 +686,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-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc
+--- chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor	2024-05-17 23:09:49.869213076 +0200
++++ chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc	2024-05-17 23:22:38.599168420 +0200
+@@ -157,7 +157,7 @@ void MaybeAppendManagePasswordsEntry(
+   suggestion.icon = autofill::Suggestion::Icon::kSettings;
+   // The UI code will pick up an icon from the resources based on the string.
+   suggestion.trailing_icon = autofill::Suggestion::Icon::kGooglePasswordManager;
+-  suggestions->emplace_back(std::move(suggestion));
++  suggestions->emplace_back() = {std::move(suggestion)};
+ }
+ 
+ // If |field_suggestion| matches |field_content|, creates a Suggestion out of it
+@@ -205,7 +205,7 @@ void AppendSuggestionIfMatching(
+       suggestion.trailing_icon = CreateStoreIcon(from_account_store);
+     }
+ #endif
+-    suggestions->emplace_back(std::move(suggestion));
++    suggestions->emplace_back() = {std::move(suggestion)};
+   }
+ }
+ 
+@@ -237,8 +237,8 @@ void GetSuggestions(const autofill::Pass
+ 
+ void AddPasswordUsernameChildSuggestion(const std::u16string& username,
+                                         autofill::Suggestion& suggestion) {
+-  suggestion.children.emplace_back(
+-      username, autofill::PopupItemId::kPasswordFieldByFieldFilling);
++  suggestion.children.emplace_back() =
++      {username, autofill::PopupItemId::kPasswordFieldByFieldFilling};
+ }
+ 
+ void AddFillPasswordChildSuggestion(autofill::Suggestion& suggestion,
+@@ -248,8 +248,8 @@ void AddFillPasswordChildSuggestion(auto
+           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_FILL_PASSWORD_ENTRY),
+       autofill::PopupItemId::kFillPassword);
+   fill_password.payload =
+-      autofill::Suggestion::PasswordSuggestionDetails(password);
+-  suggestion.children.emplace_back(std::move(fill_password));
++      autofill::Suggestion::PasswordSuggestionDetails{password};
++  suggestion.children.emplace_back() = {std::move(fill_password)};
+ }
+ 
+ void AddViewPasswordDetailsChildSuggestion(autofill::Suggestion& suggestion) {
+@@ -258,7 +258,7 @@ void AddViewPasswordDetailsChildSuggesti
+           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_VIEW_DETAILS_ENTRY),
+       autofill::PopupItemId::kViewPasswordDetails);
+   view_password_details.icon = autofill::Suggestion::Icon::kKey;
+-  suggestion.children.emplace_back(std::move(view_password_details));
++  suggestion.children.emplace_back() = {std::move(view_password_details)};
+ }
+ 
+ autofill::Suggestion GetManualFallbackSuggestion(
+@@ -273,7 +273,7 @@ autofill::Suggestion GetManualFallbackSu
+   suggestion.additional_label = maybe_username;
+   suggestion.icon = autofill::Suggestion::Icon::kGlobe;
+   suggestion.payload =
+-      autofill::Suggestion::PasswordSuggestionDetails(credential.password);
++      autofill::Suggestion::PasswordSuggestionDetails{credential.password};
+   suggestion.is_acceptable = on_password_form.value();
+ 
+   if (!replaced) {
+@@ -355,27 +355,27 @@ PasswordSuggestionGenerator::GetSuggesti
+   if (uses_passkeys && delegate->OfferPasskeysFromAnotherDeviceOption()) {
+     bool listed_passkeys = delegate->GetPasskeys().has_value() &&
+                            delegate->GetPasskeys()->size() > 0;
+-    suggestions.emplace_back(CreateWebAuthnEntry(listed_passkeys));
++    suggestions.emplace_back() = {CreateWebAuthnEntry(listed_passkeys)};
+   }
+ #endif
+ 
+   // Add password generation entry, if available.
+   if (offers_generation) {
+-    suggestions.emplace_back(
+-        show_account_storage_optin
++    suggestions.emplace_back() =
++        {show_account_storage_optin
+             ? CreateEntryToOptInToAccountStorageThenGenerate()
+-            : CreateGenerationEntry());
++            : CreateGenerationEntry()};
+   }
+ 
+   // Add button to opt into using the account storage for passwords and then
+   // suggest.
+   if (show_account_storage_optin) {
+-    suggestions.emplace_back(CreateEntryToOptInToAccountStorageThenFill());
++    suggestions.emplace_back() = {CreateEntryToOptInToAccountStorageThenFill()};
+   }
+ 
+   // Add button to sign-in which unlocks the previously used account store.
+   if (show_account_storage_resignin) {
+-    suggestions.emplace_back(CreateEntryToReSignin());
++    suggestions.emplace_back() = {CreateEntryToReSignin()};
+   }
+ 
+   // Add "Manage all passwords" link to settings.
+@@ -393,30 +393,30 @@ PasswordSuggestionGenerator::GetManualFa
+   const bool generate_sections =
+       !suggested_credentials.empty() && !credentials.empty();
+   if (generate_sections) {
+-    suggestions.emplace_back(
+-        l10n_util::GetStringUTF16(
++    suggestions.emplace_back() =
++        {l10n_util::GetStringUTF16(
+             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_SUGGESTED_PASSWORDS_SECTION_TITLE),
+-        autofill::PopupItemId::kTitle);
++        autofill::PopupItemId::kTitle};
+   }
+ 
+   for (const auto& form : suggested_credentials) {
+-    suggestions.emplace_back(
+-        GetManualFallbackSuggestion(CredentialUIEntry(form), on_password_form));
++    suggestions.emplace_back() =
++        {GetManualFallbackSuggestion(CredentialUIEntry(form), on_password_form)};
+   }
+ 
+   if (generate_sections) {
+-    suggestions.emplace_back(
+-        l10n_util::GetStringUTF16(
++    suggestions.emplace_back() =
++        {l10n_util::GetStringUTF16(
+             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_ALL_PASSWORDS_SECTION_TITLE),
+-        autofill::PopupItemId::kTitle);
++        autofill::PopupItemId::kTitle};
+   }
+ 
+   // Only the "All passwords" section should be sorted alphabetically.
+   const size_t relevant_section_offset = suggestions.size();
+ 
+   for (const CredentialUIEntry& credential : credentials) {
+-    suggestions.emplace_back(
+-        GetManualFallbackSuggestion(credential, on_password_form));
++    suggestions.emplace_back() =
++        {GetManualFallbackSuggestion(credential, on_password_form)};
+   }
+ 
+   base::ranges::sort(suggestions.begin() + relevant_section_offset,
+diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc.no_matching_constructor chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc
+--- chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc.no_matching_constructor	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc	2024-05-17 12:33:58.716650572 +0200
+@@ -242,7 +242,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(),
+@@ -251,7 +251,7 @@ void WorkerWatcher::OnWorkerCreated(
+           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+             ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
+                                          dedicated_worker_token);
+-          }),
++          }},
+       creator);
+ }
+ 
+@@ -268,7 +268,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(),
+@@ -277,7 +277,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.
+@@ -449,7 +449,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.
+@@ -487,7 +487,7 @@ void WorkerWatcher::OnControlleeAdded(
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+             }
+-          }),
++          }},
+       client_info);
+ }
+ 
+@@ -527,7 +527,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);
+           },
+@@ -537,7 +537,7 @@ void WorkerWatcher::OnControlleeRemoved(
+           },
+           [&, this](blink::SharedWorkerToken shared_worker_token) {
+             DisconnectSharedWorkerClient(worker_node, shared_worker_token);
+-          }),
++          }},
+       client);
+ }
+ 
+@@ -813,7 +813,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);
+@@ -825,7 +825,7 @@ void WorkerWatcher::ConnectAllServiceWor
+             [&, this](blink::SharedWorkerToken shared_worker_token) {
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+@@ -840,7 +840,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,
+@@ -854,7 +854,7 @@ void WorkerWatcher::DisconnectAllService
+             [&, this](const blink::SharedWorkerToken& shared_worker_token) {
+               DisconnectSharedWorkerClient(service_worker_node,
+                                            shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+diff -up chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2024-05-17 12:33:58.716650572 +0200
+@@ -1720,7 +1720,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-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc.no_matching_constructor chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc
+--- chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc.no_matching_constructor	2024-05-17 17:18:47.841479697 +0200
++++ chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc	2024-05-17 18:23:41.679054785 +0200
+@@ -181,9 +181,9 @@ void SignedWebBundleSignatureVerifier::O
+   // https://github.com/WICG/webpackage/blob/3f95ec365b87ed19d2cb5186e473ccc4d011e2af/explainers/integrity-signature.md
+   std::vector<uint8_t> payload_to_verify = CreateSignaturePayload({
+       .unsigned_web_bundle_hash = absl::visit(
+-          base::Overloaded([](const auto& digest) -> base::span<const uint8_t> {
++          base::Overloaded{[](const auto& digest) -> base::span<const uint8_t> {
+             return digest;
+-          }),
++          }},
+           *unsigned_web_bundle_hash),
+       .integrity_block_cbor = CreateIntegrityBlockCBOR(),
+       .attributes_cbor = signature_stack_entry.attributes_cbor(),
+diff -up chromium-125.0.6422.60/content/browser/download/save_package.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/download/save_package.cc
+--- chromium-125.0.6422.60/content/browser/download/save_package.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/download/save_package.cc	2024-05-17 12:33:58.717650592 +0200
+@@ -802,8 +802,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-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc
+--- chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc	2024-05-17 12:33:58.717650592 +0200
+@@ -407,7 +407,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-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc
+--- chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc	2024-05-17 12:33:58.718650614 +0200
+@@ -774,7 +774,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-125.0.6422.60/content/browser/gpu/compositor_util.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc
+--- chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc	2024-05-17 12:33:58.718650614 +0200
+@@ -108,7 +108,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       *base::CommandLine::ForCurrentProcess();
+ 
+   std::vector<GpuFeatureData> features;
+-  features.emplace_back(
++  features.emplace_back() = {
+       "2d_canvas",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS,
+@@ -116,13 +116,13 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated 2D canvas is unavailable: either disabled "
+           "via blocklist or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "canvas_oop_rasterization",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION,
+-          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas)));
+-  features.emplace_back(
++          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas))};
++  features.emplace_back() = {
+       "gpu_compositing",
+       // TODO(rivr): Replace with a check to see which backend is used for
+       // compositing; do the same for GPU rasterization if it's enabled. For
+@@ -136,16 +136,16 @@ std::vector<GpuFeatureData> GetGpuFeatur
+           "about:flags "
+           "or the command line. The browser will fall back to software "
+           "compositing and hardware acceleration will be unavailable."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "webgl",
+       SafeGetFeatureStatus(gpu_feature_info,
+                            gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL,
+                            command_line.HasSwitch(switches::kDisableWebGL)),
+       DisableInfo::Problem(
+           "WebGL has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {
+       "video_decode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
+@@ -156,8 +156,8 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated video decode has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "video_encode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
+@@ -169,33 +169,33 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated video encode has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "rasterization",
+       SafeGetFeatureStatus(gpu_feature_info,
+                            gpu::GPU_FEATURE_TYPE_GPU_TILE_RASTERIZATION),
+       DisableInfo::Problem(
+           "Accelerated rasterization has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "opengl", SafeGetFeatureStatus(gpu_feature_info,
+-                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL));
++                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL)};
+ #if BUILDFLAG(ENABLE_VULKAN)
+-  features.emplace_back(
++  features.emplace_back() = {
+       "vulkan",
+-      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN));
++      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN)};
+ #endif
+-  features.emplace_back(
++  features.emplace_back() = {
+       "multiple_raster_threads",
+-      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1));
++      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1)};
+ #if BUILDFLAG(IS_ANDROID)
+-  features.emplace_back(
++  features.emplace_back() = {
+       "surface_control",
+       SafeGetFeatureStatus(gpu_feature_info,
+-                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL));
++                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)};
+ #endif
+-  features.emplace_back(
++  features.emplace_back() = {
+       "webgl2",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL2,
+@@ -203,12 +203,12 @@ std::vector<GpuFeatureData> GetGpuFeatur
+               command_line.HasSwitch(switches::kDisableWebGL2)),
+       DisableInfo::Problem(
+           "WebGL2 has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back("raw_draw",
+-                        GetFakeFeatureStatus(features::IsUsingRawDraw()));
+-  features.emplace_back("direct_rendering_display_compositor",
+-                        GetFakeFeatureStatus(features::IsDrDcEnabled()));
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {"raw_draw",
++                        GetFakeFeatureStatus(features::IsUsingRawDraw())};
++  features.emplace_back() = {"direct_rendering_display_compositor",
++                        GetFakeFeatureStatus(features::IsDrDcEnabled())};
++  features.emplace_back() = {
+       "webgpu",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGPU,
+@@ -216,14 +216,14 @@ std::vector<GpuFeatureData> GetGpuFeatur
+               !base::FeatureList::IsEnabled(::features::kWebGPUService)),
+       DisableInfo::Problem(
+           "WebGPU has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {
+       "skia_graphite",
+       SafeGetFeatureStatus(gpu_feature_info,
+-                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE));
+-  features.emplace_back(
++                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE)};
++  features.emplace_back() = {
+       "webnn",
+-      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN));
++      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN)};
+   return features;
+ }
+ 
+diff -up chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h
+--- chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h	2024-05-17 12:33:58.718650614 +0200
+@@ -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-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc
+--- chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc	2024-05-17 12:33:58.719650634 +0200
+@@ -600,7 +600,7 @@ bool SampleDebugReport(
+        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;
+diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc
+--- chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc	2024-05-17 12:33:58.721650676 +0200
+@@ -3412,9 +3412,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(
+@@ -3542,10 +3542,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;
+@@ -4338,7 +4338,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 -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc	2024-05-17 12:33:58.723650717 +0200
+@@ -8796,7 +8796,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data, cross_origin_exposed),
++        DestinationEnumEvent{event_type, event_data, cross_origin_exposed},
+         destination);
+   }
+ }
+@@ -8827,7 +8827,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url, cross_origin_exposed),
++      DestinationURLEvent{destination_url, cross_origin_exposed},
+       blink::FencedFrame::ReportingDestination::kBuyer);
+ }
+ 
+@@ -8958,7 +8958,7 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          AutomaticBeaconEvent(event_type, data), destination,
++          AutomaticBeaconEvent{event_type, data}, destination,
+           navigation_request.GetNavigationId());
+     }
+   } else {
+@@ -8969,7 +8969,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-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc
+--- chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc	2024-05-17 12:33:58.724650738 +0200
+@@ -947,7 +947,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;
+           },
+@@ -956,7 +956,7 @@ ServiceWorkerContainerHost::GetClientTyp
+           },
+           [](blink::SharedWorkerToken shared_worker_token) {
+             return blink::mojom::ServiceWorkerClientType::kSharedWorker;
+-          }),
++          }},
+       *client_info_);
+ }
+ 
+diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
+--- chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc	2024-05-17 12:33:58.724650738 +0200
+@@ -367,10 +367,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-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc
+--- chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc	2024-05-17 12:33:58.725650759 +0200
+@@ -258,7 +258,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);
+@@ -266,7 +266,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-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc
+--- chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor	2024-05-18 23:43:25.984767458 +0200
++++ chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc	2024-05-18 23:47:43.981254708 +0200
+@@ -396,8 +396,8 @@ bool ServiceWorkerTaskQueue::IsReadyToRu
+     return false;
+   }
+ 
+-  const SequencedContextId context_id(extension->id(), browser_context_,
+-                                      *activation_token);
++  const SequencedContextId context_id{extension->id(), browser_context_,
++                                      *activation_token};
+   const WorkerState* worker_state = GetWorkerState(context_id);
+ 
+   if (!worker_state || !worker_state->worker_id_) {
+diff -up chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h
+--- chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
++++ chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h	2024-05-17 12:33:58.725650759 +0200
+@@ -64,19 +64,19 @@ struct SharedImageInfo {
+                   SkAlphaType alpha_type,
+                   uint32_t usage,
+                   std::string_view debug_label)
+-      : meta(format, size, color_space, surface_origin, alpha_type, usage),
++      : meta{format, size, color_space, surface_origin, alpha_type, usage},
+         debug_label(debug_label) {}
+   SharedImageInfo(const viz::SharedImageFormat& format,
+                   gfx::Size size,
+                   const gfx::ColorSpace& color_space,
+                   uint32_t usage,
+                   std::string_view debug_label)
+-      : meta(format,
++      : meta{format,
+              size,
+              color_space,
+              kTopLeft_GrSurfaceOrigin,
+              kPremul_SkAlphaType,
+-             usage),
++             usage},
+         debug_label(debug_label) {}
+   // This constructor exists only to support the DEPRECATED CreareSharedImage
+   // call below that accepts a GpuMemoryBuffer. This should be removed when that
+diff -up chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc
+--- chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
++++ chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc	2024-05-17 12:33:58.725650759 +0200
+@@ -601,12 +601,12 @@ SharedImageInterfaceInProcess::CreateSha
+ 
+   return base::MakeRefCounted<ClientSharedImage>(
+       mailbox,
+-      SharedImageMetadata(
++      SharedImageMetadata{
+           viz::GetSinglePlaneSharedImageFormat(
+               GetPlaneBufferFormat(plane, gpu_memory_buffer->GetFormat())),
+           gpu_memory_buffer->GetSize(), si_info.meta.color_space,
+           si_info.meta.surface_origin, si_info.meta.alpha_type,
+-          si_info.meta.usage),
++          si_info.meta.usage},
+       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
+ }
+ 
+diff -up chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc
+--- chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
++++ chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc	2024-05-17 15:17:33.527552837 +0200
+@@ -247,11 +247,11 @@ scoped_refptr<ClientSharedImage> ClientS
+       AddMailbox(proxy_->CreateSharedImage(
+           buffer_format, plane, gpu_memory_buffer->GetSize(), si_info,
+           gpu_memory_buffer->CloneHandle())),
+-      SharedImageMetadata(viz::GetSinglePlaneSharedImageFormat(
++      SharedImageMetadata{viz::GetSinglePlaneSharedImageFormat(
+                               GetPlaneBufferFormat(plane, buffer_format)),
+                           gpu_memory_buffer->GetSize(),
+                           si_info.meta.color_space, si_info.meta.surface_origin,
+-                          si_info.meta.alpha_type, si_info.meta.usage),
++                          si_info.meta.alpha_type, si_info.meta.usage},
+       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
+ }
+ 
+@@ -286,13 +286,13 @@ ClientSharedImageInterface::CreateSwapCh
+   return ClientSharedImageInterface::SwapChainSharedImages(
+       base::MakeRefCounted<ClientSharedImage>(
+           mailboxes.front_buffer,
+-          SharedImageMetadata(format, size, color_space, surface_origin,
+-                              alpha_type, usage),
++          SharedImageMetadata{format, size, color_space, surface_origin,
++                              alpha_type, usage},
+           sync_token, holder_, gfx::EMPTY_BUFFER),
+       base::MakeRefCounted<ClientSharedImage>(
+           mailboxes.back_buffer,
+-          SharedImageMetadata(format, size, color_space, surface_origin,
+-                              alpha_type, usage),
++          SharedImageMetadata{format, size, color_space, surface_origin,
++                              alpha_type, usage},
+           sync_token, holder_, gfx::EMPTY_BUFFER));
+ }
+ 
+@@ -350,8 +350,8 @@ scoped_refptr<ClientSharedImage> ClientS
+ 
+   return base::MakeRefCounted<ClientSharedImage>(
+       mailbox,
+-      SharedImageMetadata(format, size, color_space, surface_origin, alpha_type,
+-                          usage),
++      SharedImageMetadata{format, size, color_space, surface_origin, alpha_type,
++                          usage},
+       GenUnverifiedSyncToken(), holder_, gfx::EMPTY_BUFFER);
+ }
+ 
+diff -up chromium-125.0.6422.60/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-125.0.6422.60/net/dns/host_resolver_cache.cc
+--- chromium-125.0.6422.60/net/dns/host_resolver_cache.cc.no_matching_constructor	2024-05-15 23:46:31.000000000 +0200
++++ chromium-125.0.6422.60/net/dns/host_resolver_cache.cc	2024-05-17 12:33:58.726650779 +0200
+@@ -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-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor	2024-05-18 11:35:28.689791628 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc	2024-05-18 11:35:52.294334790 +0200
+@@ -7509,7 +7509,7 @@ std::optional<InsetAreaKeyword> ConsumeI
+     default:
+       return std::nullopt;
+   }
+-  return InsetAreaKeyword(css_parsing_utils::ConsumeIdent(range), type);
++  return InsetAreaKeyword{css_parsing_utils::ConsumeIdent(range), type};
+ }
+ 
+ }  // namespace
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor	2024-05-18 11:23:33.036875347 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc	2024-05-18 11:24:05.697684459 +0200
+@@ -601,7 +601,7 @@ AnchorEvaluatorImpl::ComputeInsetAreaOff
+     right = Evaluate(query.value(), position_anchor,
+                      /* inset_area_offsets */ std::nullopt);
+   }
+-  return InsetAreaOffsets(top, bottom, left, right);
++  return InsetAreaOffsets{top, bottom, left, right};
+ }
+ 
+ PhysicalRect AnchorEvaluatorImpl::InsetAreaModifiedContainingBlock(
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc	2024-05-17 12:33:58.726650779 +0200
+@@ -181,8 +181,8 @@ AudioRendererMixer* AudioRendererMixerMa
+     DVLOG(1) << "Not reusing mixer with errors: " << it->second.mixer;
+ 
+     // Move bad mixers out of the reuse map.
+-    dead_mixers_.emplace_back(std::move(it->second.mixer),
+-                              it->second.ref_count);
++    dead_mixers_.emplace_back() = {std::move(it->second.mixer),
++                              it->second.ref_count};
+     mixers_.erase(it);
+   }
+ 
+@@ -228,7 +228,7 @@ void AudioRendererMixerManager::ReturnMi
+     }
+   } else if (dead_it == dead_mixers_.end() && mixer_ref.mixer->HasSinkError()) {
+     // Move bad mixers out of the reuse map.
+-    dead_mixers_.emplace_back(std::move(mixer_ref.mixer), mixer_ref.ref_count);
++    dead_mixers_.emplace_back() = {std::move(mixer_ref.mixer), mixer_ref.ref_count};
+     mixers_.erase(it);
+   }
+ }
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h	2024-05-17 12:33:58.726650779 +0200
+@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
+       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 @@ 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-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2024-05-17 12:33:58.727650800 +0200
+@@ -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-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
+--- chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor	2024-05-15 23:48:12.000000000 +0200
++++ chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp	2024-05-17 12:33:58.727650800 +0200
+@@ -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-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h
+--- chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching_constructor	2024-05-15 23:47:32.000000000 +0200
++++ chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h	2024-05-17 12:33:58.728650821 +0200
+@@ -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-125.0.6422.60/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-125.0.6422.60/ui/gtk/gtk_ui.cc
+--- chromium-125.0.6422.60/ui/gtk/gtk_ui.cc.no_matching_constructor	2024-05-15 23:47:33.000000000 +0200
++++ chromium-125.0.6422.60/ui/gtk/gtk_ui.cc	2024-05-17 12:33:58.728650821 +0200
+@@ -1001,11 +1001,11 @@ display::DisplayConfig GtkUi::GetDisplay
+     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-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/controls/button/label_button.cc
+--- chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matching_constructor	2024-05-18 23:18:50.361107872 +0200
++++ chromium-125.0.6422.60/ui/views/controls/button/label_button.cc	2024-05-18 23:20:03.807502613 +0200
+@@ -391,11 +391,11 @@ ProposedLayout LabelButton::CalculatePro
+ 
+   gfx::Rect image_area = GetLocalBounds();
+ 
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       ink_drop_container_.get(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(ink_drop_container_.get()),
+-      image_area, SizeBounds());
++      image_area, SizeBounds()};
+ 
+   gfx::Insets insets = GetInsets();
+   // If the button have a limited space to fit in, the image and the label
+@@ -447,11 +447,11 @@ ProposedLayout LabelButton::CalculatePro
+   } else if (horizontal_alignment == gfx::ALIGN_RIGHT) {
+     image_origin.Offset(image_area.width() - image_size.width(), 0);
+   }
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       const_cast<LabelButton*>(this)->image_container_view(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(image_container_view()),
+-      gfx::Rect(image_origin, image_size), SizeBounds());
++      gfx::Rect(image_origin, image_size), SizeBounds()};
+ 
+   gfx::Rect label_bounds = label_area;
+   if (label_area.width() == label_size.width()) {
+@@ -465,11 +465,11 @@ ProposedLayout LabelButton::CalculatePro
+     }
+   }
+ 
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       label_.get(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(label_.get()),
+-      label_bounds, SizeBounds());
++      label_bounds, SizeBounds()};
+   layouts.host_size =
+       gfx::Size(size_bounds.width().value(), size_bounds.height().value());
+ 
+diff -up chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc
+--- chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor	2024-05-18 23:47:53.838491347 +0200
++++ chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc	2024-05-18 23:49:06.186312630 +0200
+@@ -492,16 +492,16 @@ ProposedLayout EditableCombobox::Calcula
+     layout.host_size =
+         gfx::Size(size_bounds.width().value(), size_bounds.height().value());
+   }
+-  layout.child_layouts.emplace_back(
++  layout.child_layouts.emplace_back() = {
+       textfield_.get(), textfield_->GetVisible(),
+-      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height()));
++      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height())};
+   const int preferred_width =
+       control_elements_container_->GetPreferredSize({}).width();
+-  layout.child_layouts.emplace_back(
++  layout.child_layouts.emplace_back() = {
+       control_elements_container_.get(),
+       control_elements_container_->GetVisible(),
+       gfx::Rect(layout.host_size.width() - preferred_width, 0, preferred_width,
+-                layout.host_size.height()));
++                layout.host_size.height())};
+   return layout;
+ }
+ 
+diff -up chromium-125.0.6422.60/ui/views/layout/box_layout.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/layout/box_layout.cc
+--- chromium-125.0.6422.60/ui/views/layout/box_layout.cc.no_matching_constructor	2024-05-18 23:20:53.444272586 +0200
++++ chromium-125.0.6422.60/ui/views/layout/box_layout.cc	2024-05-18 23:21:13.339673253 +0200
+@@ -325,7 +325,7 @@ void BoxLayout::InitializeChildData(BoxL
+     data.child_data.emplace_back();
+     BoxChildData& child_data = data.child_data.back();
+ 
+-    data.layout.child_layouts.emplace_back(child, true);
++    data.layout.child_layouts.emplace_back() = {child, true};
+ 
+     gfx::Insets* margins = child ? child->GetProperty(kMarginsKey) : nullptr;
+     if (margins) {
+diff -up chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc
+--- chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc.no_matching_constructor	2024-05-18 23:51:05.385279382 +0200
++++ chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc	2024-05-18 23:51:40.146096719 +0200
+@@ -205,16 +205,16 @@ ProposedLayout DialogClientView::Calcula
+   const int container_height =
+       button_row_container_->GetHeightForWidth(size_bounds.width().value());
+   const int container_y = size_bounds.height().value() - container_height;
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       button_row_container_.get(), button_row_container_->GetVisible(),
+       gfx::Rect(0, container_y, size_bounds.width().value(), container_height),
+-      size_bounds);
++      size_bounds};
+   if (contents_view()) {
+     gfx::Rect contents_bounds(size_bounds.width().value(), container_y);
+     contents_bounds.Inset(GetDialogDelegate()->margins());
+-    layouts.child_layouts.emplace_back(contents_view(),
++    layouts.child_layouts.emplace_back() = {contents_view(),
+                                        contents_view()->GetVisible(),
+-                                       contents_bounds, size_bounds);
++                                       contents_bounds, size_bounds};
+   }
+   layouts.host_size =
+       gfx::Size(size_bounds.width().value(), size_bounds.height().value());

diff --git a/chromium-125-el7-old-libdrm.patch b/chromium-125-el7-old-libdrm.patch
new file mode 100644
index 0000000..ab62977
--- /dev/null
+++ b/chromium-125-el7-old-libdrm.patch
@@ -0,0 +1,18 @@
+diff -up chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc
+--- chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm	2024-05-16 20:43:26.619455300 +0200
++++ chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc	2024-05-16 20:45:18.120716278 +0200
+@@ -9,6 +9,14 @@
+ #include "base/logging.h"
+ #include "base/notreached.h"
+ 
++// the libdrm in EL-7 is too old to have this define
++#ifndef DRM_FORMAT_P010
++#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
++#endif
++#ifndef DRM_FORMAT_ABGR16161616F
++#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H')
++#endif
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format) {

diff --git a/chromium-125-el7-rust-proc-macro2.patch b/chromium-125-el7-rust-proc-macro2.patch
new file mode 100644
index 0000000..64a6978
--- /dev/null
+++ b/chromium-125-el7-rust-proc-macro2.patch
@@ -0,0 +1,747 @@
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/build.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/build.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/build.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/build.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -36,10 +36,10 @@
+ 
+ use std::env;
+ use std::ffi::OsString;
++use std::iter;
+ use std::path::Path;
+ use std::process::{self, Command, Stdio};
+ use std::str;
+-use std::u32;
+ 
+ fn main() {
+     let rustc = rustc_minor_version().unwrap_or(u32::MAX);
+@@ -63,6 +63,11 @@
+         println!("cargo:rustc-cfg=no_source_text");
+     }
+ 
++    if rustc < 79 {
++        println!("cargo:rustc-cfg=no_literal_byte_character");
++        println!("cargo:rustc-cfg=no_literal_c_string");
++    }
++
+     if !cfg!(feature = "proc-macro") {
+         println!("cargo:rerun-if-changed=build.rs");
+         return;
+@@ -138,15 +143,15 @@
+     let out_dir = cargo_env_var("OUT_DIR");
+     let probefile = Path::new("build").join("probe.rs");
+ 
+-    // Make sure to pick up Cargo rustc configuration.
+-    let mut cmd = if let Some(wrapper) = env::var_os("RUSTC_WRAPPER") {
+-        let mut cmd = Command::new(wrapper);
+-        // The wrapper's first argument is supposed to be the path to rustc.
+-        cmd.arg(rustc);
+-        cmd
+-    } else {
+-        Command::new(rustc)
+-    };
++    let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|wrapper| !wrapper.is_empty());
++    let rustc_workspace_wrapper =
++        env::var_os("RUSTC_WORKSPACE_WRAPPER").filter(|wrapper| !wrapper.is_empty());
++    let mut rustc = rustc_wrapper
++        .into_iter()
++        .chain(rustc_workspace_wrapper)
++        .chain(iter::once(rustc));
++    let mut cmd = Command::new(rustc.next().unwrap());
++    cmd.args(rustc);
+ 
+     if !rustc_bootstrap {
+         cmd.env_remove("RUSTC_BOOTSTRAP");
+@@ -156,6 +161,7 @@
+         .arg("--edition=2021")
+         .arg("--crate-name=proc_macro2")
+         .arg("--crate-type=lib")
++        .arg("--cap-lints=allow")
+         .arg("--emit=dep-info,metadata")
+         .arg("--out-dir")
+         .arg(out_dir)
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/Cargo.toml chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/Cargo.toml
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/Cargo.toml	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/Cargo.toml	2024-05-15 23:47:24.000000000 +0200
+@@ -13,7 +13,7 @@
+ edition = "2021"
+ rust-version = "1.56"
+ name = "proc-macro2"
+-version = "1.0.78"
++version = "1.0.80"
+ authors = [
+     "David Tolnay <dtolnay@gmail.com>",
+     "Alex Crichton <alex@alexcrichton.com>",
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/Cargo.toml.orig chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/Cargo.toml.orig
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/Cargo.toml.orig	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/Cargo.toml.orig	2024-05-15 23:47:24.000000000 +0200
+@@ -1,6 +1,6 @@
+ [package]
+ name = "proc-macro2"
+-version = "1.0.78"
++version = "1.0.80"
+ authors = ["David Tolnay <dtolnay@gmail.com>", "Alex Crichton <alex@alexcrichton.com>"]
+ autobenches = false
+ categories = ["development-tools::procedural-macro-helpers"]
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/.cargo_vcs_info.json chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/.cargo_vcs_info.json
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/.cargo_vcs_info.json	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/.cargo_vcs_info.json	2024-05-15 23:47:24.000000000 +0200
+@@ -1,6 +1,6 @@
+ {
+   "git": {
+-    "sha1": "d850a1db5e3fe7732d62cacbfc4145e496c2a80e"
++    "sha1": "da51f8d005cc5d8299c1872fad9bbe63b07c31c7"
+   },
+   "path_in_vcs": ""
+ }
+\ Kein Zeilenumbruch am Dateiende.
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/.github/workflows/ci.yml chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/.github/workflows/ci.yml
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/.github/workflows/ci.yml	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/.github/workflows/ci.yml	2024-05-15 23:47:24.000000000 +0200
+@@ -198,6 +198,7 @@
+     timeout-minutes: 45
+     steps:
+       - uses: actions/checkout@v4
++      - uses: dtolnay/rust-toolchain@stable
+       - uses: dtolnay/install@cargo-outdated
+       - run: cargo outdated --workspace --exit-code 1
+       - run: cargo outdated --manifest-path fuzz/Cargo.toml --exit-code 1
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/fallback.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/fallback.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/fallback.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/fallback.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -15,7 +15,9 @@
+ use core::ops::Range;
+ use core::ops::RangeBounds;
+ use core::ptr;
+-use core::str::FromStr;
++use core::str::{self, FromStr};
++use std::ffi::CStr;
++#[cfg(procmacro2_semver_exempt)]
+ use std::path::PathBuf;
+ 
+ /// Force use of proc-macro2's fallback implementation of the API for now, even
+@@ -297,11 +299,13 @@
+     }
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ #[derive(Clone, PartialEq, Eq)]
+ pub(crate) struct SourceFile {
+     path: PathBuf,
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ impl SourceFile {
+     /// Get the path to this source file as a string.
+     pub fn path(&self) -> PathBuf {
+@@ -313,6 +317,7 @@
+     }
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ impl Debug for SourceFile {
+     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+         f.debug_struct("SourceFile")
+@@ -922,7 +927,7 @@
+ 
+ #[derive(Clone)]
+ pub(crate) struct Literal {
+-    repr: String,
++    pub(crate) repr: String,
+     span: Span,
+ }
+ 
+@@ -1003,71 +1008,98 @@
+         Literal::_new(s)
+     }
+ 
+-    pub fn string(t: &str) -> Literal {
+-        let mut repr = String::with_capacity(t.len() + 2);
++    pub fn string(string: &str) -> Literal {
++        let mut repr = String::with_capacity(string.len() + 2);
+         repr.push('"');
+-        let mut chars = t.chars();
+-        while let Some(ch) = chars.next() {
+-            if ch == '\0' {
+-                repr.push_str(
+-                    if chars
+-                        .as_str()
+-                        .starts_with(|next| '0' <= next && next <= '7')
+-                    {
+-                        // circumvent clippy::octal_escapes lint
+-                        "\\x00"
+-                    } else {
+-                        "\\0"
+-                    },
+-                );
+-            } else if ch == '\'' {
+-                // escape_debug turns this into "\'" which is unnecessary.
+-                repr.push(ch);
+-            } else {
+-                repr.extend(ch.escape_debug());
+-            }
+-        }
++        escape_utf8(string, &mut repr);
+         repr.push('"');
+         Literal::_new(repr)
+     }
+ 
+-    pub fn character(t: char) -> Literal {
++    pub fn character(ch: char) -> Literal {
+         let mut repr = String::new();
+         repr.push('\'');
+-        if t == '"' {
++        if ch == '"' {
+             // escape_debug turns this into '\"' which is unnecessary.
+-            repr.push(t);
++            repr.push(ch);
+         } else {
+-            repr.extend(t.escape_debug());
++            repr.extend(ch.escape_debug());
++        }
++        repr.push('\'');
++        Literal::_new(repr)
++    }
++
++    pub fn byte_character(byte: u8) -> Literal {
++        let mut repr = "b'".to_string();
++        #[allow(clippy::match_overlapping_arm)]
++        match byte {
++            b'\0' => repr.push_str(r"\0"),
++            b'\t' => repr.push_str(r"\t"),
++            b'\n' => repr.push_str(r"\n"),
++            b'\r' => repr.push_str(r"\r"),
++            b'\'' => repr.push_str(r"\'"),
++            b'\\' => repr.push_str(r"\\"),
++            b'\x20'..=b'\x7E' => repr.push(byte as char),
++            _ => {
++                let _ = write!(repr, r"\x{:02X}", byte);
++            }
+         }
+         repr.push('\'');
+         Literal::_new(repr)
+     }
+ 
+     pub fn byte_string(bytes: &[u8]) -> Literal {
+-        let mut escaped = "b\"".to_string();
++        let mut repr = "b\"".to_string();
+         let mut bytes = bytes.iter();
+         while let Some(&b) = bytes.next() {
+             #[allow(clippy::match_overlapping_arm)]
+             match b {
+-                b'\0' => escaped.push_str(match bytes.as_slice().first() {
++                b'\0' => repr.push_str(match bytes.as_slice().first() {
+                     // circumvent clippy::octal_escapes lint
+                     Some(b'0'..=b'7') => r"\x00",
+                     _ => r"\0",
+                 }),
+-                b'\t' => escaped.push_str(r"\t"),
+-                b'\n' => escaped.push_str(r"\n"),
+-                b'\r' => escaped.push_str(r"\r"),
+-                b'"' => escaped.push_str("\\\""),
+-                b'\\' => escaped.push_str("\\\\"),
+-                b'\x20'..=b'\x7E' => escaped.push(b as char),
++                b'\t' => repr.push_str(r"\t"),
++                b'\n' => repr.push_str(r"\n"),
++                b'\r' => repr.push_str(r"\r"),
++                b'"' => repr.push_str("\\\""),
++                b'\\' => repr.push_str(r"\\"),
++                b'\x20'..=b'\x7E' => repr.push(b as char),
+                 _ => {
+-                    let _ = write!(escaped, "\\x{:02X}", b);
++                    let _ = write!(repr, r"\x{:02X}", b);
+                 }
+             }
+         }
+-        escaped.push('"');
+-        Literal::_new(escaped)
++        repr.push('"');
++        Literal::_new(repr)
++    }
++
++    pub fn c_string(string: &CStr) -> Literal {
++        let mut repr = "c\"".to_string();
++        let mut bytes = string.to_bytes();
++        while !bytes.is_empty() {
++            let (valid, invalid) = match str::from_utf8(bytes) {
++                Ok(all_valid) => {
++                    bytes = b"";
++                    (all_valid, bytes)
++                }
++                Err(utf8_error) => {
++                    let (valid, rest) = bytes.split_at(utf8_error.valid_up_to());
++                    let valid = str::from_utf8(valid).unwrap();
++                    let invalid = utf8_error
++                        .error_len()
++                        .map_or(rest, |error_len| &rest[..error_len]);
++                    bytes = &bytes[valid.len() + invalid.len()..];
++                    (valid, invalid)
++                }
++            };
++            escape_utf8(valid, &mut repr);
++            for &byte in invalid {
++                let _ = write!(repr, r"\x{:02X}", byte);
++            }
++        }
++        repr.push('"');
++        Literal::_new(repr)
+     }
+ 
+     pub fn span(&self) -> Span {
+@@ -1168,3 +1200,27 @@
+         debug.finish()
+     }
+ }
++
++fn escape_utf8(string: &str, repr: &mut String) {
++    let mut chars = string.chars();
++    while let Some(ch) = chars.next() {
++        if ch == '\0' {
++            repr.push_str(
++                if chars
++                    .as_str()
++                    .starts_with(|next| '0' <= next && next <= '7')
++                {
++                    // circumvent clippy::octal_escapes lint
++                    r"\x00"
++                } else {
++                    r"\0"
++                },
++            );
++        } else if ch == '\'' {
++            // escape_debug turns this into "\'" which is unnecessary.
++            repr.push(ch);
++        } else {
++            repr.extend(ch.escape_debug());
++        }
++    }
++}
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/lib.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/lib.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/lib.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/lib.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -86,7 +86,7 @@
+ //! a different thread.
+ 
+ // Proc-macro2 types in rustdoc of other crates get linked to here.
+-#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.78")]
++#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.80")]
+ #![cfg_attr(any(proc_macro_span, super_unstable), feature(proc_macro_span))]
+ #![cfg_attr(super_unstable, feature(proc_macro_def_site))]
+ #![cfg_attr(doc_cfg, feature(doc_cfg))]
+@@ -96,6 +96,7 @@
+     clippy::cast_possible_truncation,
+     clippy::checked_conversions,
+     clippy::doc_markdown,
++    clippy::incompatible_msrv,
+     clippy::items_after_statements,
+     clippy::iter_without_into_iter,
+     clippy::let_underscore_untyped,
+@@ -169,6 +170,7 @@
+ use core::ops::RangeBounds;
+ use core::str::FromStr;
+ use std::error::Error;
++use std::ffi::CStr;
+ #[cfg(procmacro2_semver_exempt)]
+ use std::path::PathBuf;
+ 
+@@ -1233,9 +1235,19 @@
+         Literal::_new(imp::Literal::character(ch))
+     }
+ 
++    /// Byte character literal.
++    pub fn byte_character(byte: u8) -> Literal {
++        Literal::_new(imp::Literal::byte_character(byte))
++    }
++
+     /// Byte string literal.
+-    pub fn byte_string(s: &[u8]) -> Literal {
+-        Literal::_new(imp::Literal::byte_string(s))
++    pub fn byte_string(bytes: &[u8]) -> Literal {
++        Literal::_new(imp::Literal::byte_string(bytes))
++    }
++
++    /// C string literal.
++    pub fn c_string(string: &CStr) -> Literal {
++        Literal::_new(imp::Literal::c_string(string))
+     }
+ 
+     /// Returns the span encompassing this literal.
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/wrapper.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/wrapper.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/wrapper.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/src/wrapper.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -7,6 +7,7 @@
+ use core::ops::Range;
+ use core::ops::RangeBounds;
+ use core::str::FromStr;
++use std::ffi::CStr;
+ use std::panic;
+ #[cfg(super_unstable)]
+ use std::path::PathBuf;
+@@ -846,19 +847,38 @@
+         }
+     }
+ 
+-    pub fn string(t: &str) -> Literal {
++    pub fn string(string: &str) -> Literal {
+         if inside_proc_macro() {
+-            Literal::Compiler(proc_macro::Literal::string(t))
++            Literal::Compiler(proc_macro::Literal::string(string))
+         } else {
+-            Literal::Fallback(fallback::Literal::string(t))
++            Literal::Fallback(fallback::Literal::string(string))
+         }
+     }
+ 
+-    pub fn character(t: char) -> Literal {
++    pub fn character(ch: char) -> Literal {
+         if inside_proc_macro() {
+-            Literal::Compiler(proc_macro::Literal::character(t))
++            Literal::Compiler(proc_macro::Literal::character(ch))
+         } else {
+-            Literal::Fallback(fallback::Literal::character(t))
++            Literal::Fallback(fallback::Literal::character(ch))
++        }
++    }
++
++    pub fn byte_character(byte: u8) -> Literal {
++        if inside_proc_macro() {
++            Literal::Compiler({
++                #[cfg(not(no_literal_byte_character))]
++                {
++                    proc_macro::Literal::byte_character(byte)
++                }
++
++                #[cfg(no_literal_byte_character)]
++                {
++                    let fallback = fallback::Literal::byte_character(byte);
++                    fallback.repr.parse::<proc_macro::Literal>().unwrap()
++                }
++            })
++        } else {
++            Literal::Fallback(fallback::Literal::byte_character(byte))
+         }
+     }
+ 
+@@ -870,6 +890,25 @@
+         }
+     }
+ 
++    pub fn c_string(string: &CStr) -> Literal {
++        if inside_proc_macro() {
++            Literal::Compiler({
++                #[cfg(not(no_literal_c_string))]
++                {
++                    proc_macro::Literal::c_string(string)
++                }
++
++                #[cfg(no_literal_c_string)]
++                {
++                    let fallback = fallback::Literal::c_string(string);
++                    fallback.repr.parse::<proc_macro::Literal>().unwrap()
++                }
++            })
++        } else {
++            Literal::Fallback(fallback::Literal::c_string(string))
++        }
++    }
++
+     pub fn span(&self) -> Span {
+         match self {
+             Literal::Compiler(lit) => Span::Compiler(lit.span()),
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/marker.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/tests/marker.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/marker.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/tests/marker.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -21,6 +21,7 @@
+             $(
+                 {
+                     // Implemented for types that implement $marker.
++                    #[allow(dead_code)]
+                     trait IsNotImplemented {
+                         fn assert_not_implemented() {}
+                     }
+diff -Nur chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/test.rs chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/tests/test.rs
+--- chromium-123.0.6312.122/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/test.rs	2024-04-10 23:25:21.000000000 +0200
++++ chromium-125.0.6422.60/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.80/tests/test.rs	2024-05-15 23:47:24.000000000 +0200
+@@ -1,11 +1,14 @@
+ #![allow(
+     clippy::assertions_on_result_states,
+     clippy::items_after_statements,
++    clippy::needless_pass_by_value,
++    clippy::needless_raw_string_hashes,
+     clippy::non_ascii_literal,
+     clippy::octal_escapes
+ )]
+ 
+ use proc_macro2::{Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree};
++use std::ffi::CStr;
+ use std::iter;
+ use std::str::{self, FromStr};
+ 
+@@ -96,12 +99,22 @@
+ 
+ #[test]
+ fn literal_string() {
+-    assert_eq!(Literal::string("foo").to_string(), "\"foo\"");
+-    assert_eq!(Literal::string("\"").to_string(), "\"\\\"\"");
+-    assert_eq!(Literal::string("didn't").to_string(), "\"didn't\"");
+-    assert_eq!(
+-        Literal::string("a\00b\07c\08d\0e\0").to_string(),
+-        "\"a\\x000b\\x007c\\08d\\0e\\0\"",
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::string(""), r#"  ""  "#);
++    assert(Literal::string("aA"), r#"  "aA"  "#);
++    assert(Literal::string("\t"), r#"  "\t"  "#);
++    assert(Literal::string("❤"), r#"  "❤"  "#);
++    assert(Literal::string("'"), r#"  "'"  "#);
++    assert(Literal::string("\""), r#"  "\""  "#);
++    assert(Literal::string("\0"), r#"  "\0"  "#);
++    assert(Literal::string("\u{1}"), r#"  "\u{1}"  "#);
++    assert(
++        Literal::string("a\00b\07c\08d\0e\0"),
++        r#"  "a\x000b\x007c\08d\0e\0"  "#,
+     );
+ 
+     "\"\\\r\n    x\"".parse::<TokenStream>().unwrap();
+@@ -133,15 +146,42 @@
+ }
+ 
+ #[test]
++fn literal_byte_character() {
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::byte_character(b'a'), r#"  b'a'  "#);
++    assert(Literal::byte_character(b'\0'), r#"  b'\0'  "#);
++    assert(Literal::byte_character(b'\t'), r#"  b'\t'  "#);
++    assert(Literal::byte_character(b'\n'), r#"  b'\n'  "#);
++    assert(Literal::byte_character(b'\r'), r#"  b'\r'  "#);
++    assert(Literal::byte_character(b'\''), r#"  b'\''  "#);
++    assert(Literal::byte_character(b'\\'), r#"  b'\\'  "#);
++    assert(Literal::byte_character(b'\x1f'), r#"  b'\x1F'  "#);
++    assert(Literal::byte_character(b'"'), r#"  b'"'  "#);
++}
++
++#[test]
+ fn literal_byte_string() {
+-    assert_eq!(Literal::byte_string(b"").to_string(), "b\"\"");
+-    assert_eq!(
+-        Literal::byte_string(b"\0\t\n\r\"\\2\x10").to_string(),
+-        "b\"\\0\\t\\n\\r\\\"\\\\2\\x10\"",
+-    );
+-    assert_eq!(
+-        Literal::byte_string(b"a\00b\07c\08d\0e\0").to_string(),
+-        "b\"a\\x000b\\x007c\\08d\\0e\\0\"",
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::byte_string(b""), r#"  b""  "#);
++    assert(Literal::byte_string(b"\0"), r#"  b"\0"  "#);
++    assert(Literal::byte_string(b"\t"), r#"  b"\t"  "#);
++    assert(Literal::byte_string(b"\n"), r#"  b"\n"  "#);
++    assert(Literal::byte_string(b"\r"), r#"  b"\r"  "#);
++    assert(Literal::byte_string(b"\""), r#"  b"\""  "#);
++    assert(Literal::byte_string(b"\\"), r#"  b"\\"  "#);
++    assert(Literal::byte_string(b"\x1f"), r#"  b"\x1F"  "#);
++    assert(Literal::byte_string(b"'"), r#"  b"'"  "#);
++    assert(
++        Literal::byte_string(b"a\00b\07c\08d\0e\0"),
++        r#"  b"a\x000b\x007c\08d\0e\0"  "#,
+     );
+ 
+     "b\"\\\r\n    x\"".parse::<TokenStream>().unwrap();
+@@ -152,6 +192,41 @@
+ 
+ #[test]
+ fn literal_c_string() {
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::c_string(<&CStr>::default()), r#"  c""  "#);
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"aA\0").unwrap()),
++        r#"  c"aA"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"aA\0").unwrap()),
++        r#"  c"aA"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\t\0").unwrap()),
++        r#"  c"\t"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\xE2\x9D\xA4\0").unwrap()),
++        r#"  c"❤"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"'\0").unwrap()),
++        r#"  c"'"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\"\0").unwrap()),
++        r#"  c"\""  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\x7F\xFF\xFE\xCC\xB3\0").unwrap()),
++        r#"  c"\u{7f}\xFF\xFE\u{333}"  "#,
++    );
++
+     let strings = r###"
+         c"hello\x80我叫\u{1F980}"  // from the RFC
+         cr"\"
+@@ -188,49 +263,80 @@
+ 
+ #[test]
+ fn literal_character() {
+-    assert_eq!(Literal::character('x').to_string(), "'x'");
+-    assert_eq!(Literal::character('\'').to_string(), "'\\''");
+-    assert_eq!(Literal::character('"').to_string(), "'\"'");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::character('a'), r#"  'a'  "#);
++    assert(Literal::character('\t'), r#"  '\t'  "#);
++    assert(Literal::character('❤'), r#"  '❤'  "#);
++    assert(Literal::character('\''), r#"  '\''  "#);
++    assert(Literal::character('"'), r#"  '"'  "#);
++    assert(Literal::character('\0'), r#"  '\0'  "#);
++    assert(Literal::character('\u{1}'), r#"  '\u{1}'  "#);
+ }
+ 
+ #[test]
+ fn literal_integer() {
+-    assert_eq!(Literal::u8_suffixed(10).to_string(), "10u8");
+-    assert_eq!(Literal::u16_suffixed(10).to_string(), "10u16");
+-    assert_eq!(Literal::u32_suffixed(10).to_string(), "10u32");
+-    assert_eq!(Literal::u64_suffixed(10).to_string(), "10u64");
+-    assert_eq!(Literal::u128_suffixed(10).to_string(), "10u128");
+-    assert_eq!(Literal::usize_suffixed(10).to_string(), "10usize");
+-
+-    assert_eq!(Literal::i8_suffixed(10).to_string(), "10i8");
+-    assert_eq!(Literal::i16_suffixed(10).to_string(), "10i16");
+-    assert_eq!(Literal::i32_suffixed(10).to_string(), "10i32");
+-    assert_eq!(Literal::i64_suffixed(10).to_string(), "10i64");
+-    assert_eq!(Literal::i128_suffixed(10).to_string(), "10i128");
+-    assert_eq!(Literal::isize_suffixed(10).to_string(), "10isize");
+-
+-    assert_eq!(Literal::u8_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u16_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u32_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u64_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u128_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::usize_unsuffixed(10).to_string(), "10");
+-
+-    assert_eq!(Literal::i8_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i16_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i32_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i64_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i128_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::isize_unsuffixed(10).to_string(), "10");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected);
++    }
++
++    assert(Literal::u8_suffixed(10), "10u8");
++    assert(Literal::u16_suffixed(10), "10u16");
++    assert(Literal::u32_suffixed(10), "10u32");
++    assert(Literal::u64_suffixed(10), "10u64");
++    assert(Literal::u128_suffixed(10), "10u128");
++    assert(Literal::usize_suffixed(10), "10usize");
++
++    assert(Literal::i8_suffixed(10), "10i8");
++    assert(Literal::i16_suffixed(10), "10i16");
++    assert(Literal::i32_suffixed(10), "10i32");
++    assert(Literal::i64_suffixed(10), "10i64");
++    assert(Literal::i128_suffixed(10), "10i128");
++    assert(Literal::isize_suffixed(10), "10isize");
++
++    assert(Literal::u8_unsuffixed(10), "10");
++    assert(Literal::u16_unsuffixed(10), "10");
++    assert(Literal::u32_unsuffixed(10), "10");
++    assert(Literal::u64_unsuffixed(10), "10");
++    assert(Literal::u128_unsuffixed(10), "10");
++    assert(Literal::usize_unsuffixed(10), "10");
++
++    assert(Literal::i8_unsuffixed(10), "10");
++    assert(Literal::i16_unsuffixed(10), "10");
++    assert(Literal::i32_unsuffixed(10), "10");
++    assert(Literal::i64_unsuffixed(10), "10");
++    assert(Literal::i128_unsuffixed(10), "10");
++    assert(Literal::isize_unsuffixed(10), "10");
++
++    assert(Literal::i32_suffixed(-10), "-10i32");
++    assert(Literal::i32_unsuffixed(-10), "-10");
+ }
+ 
+ #[test]
+ fn literal_float() {
+-    assert_eq!(Literal::f32_suffixed(10.0).to_string(), "10f32");
+-    assert_eq!(Literal::f64_suffixed(10.0).to_string(), "10f64");
+-
+-    assert_eq!(Literal::f32_unsuffixed(10.0).to_string(), "10.0");
+-    assert_eq!(Literal::f64_unsuffixed(10.0).to_string(), "10.0");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected);
++    }
++
++    assert(Literal::f32_suffixed(10.0), "10f32");
++    assert(Literal::f32_suffixed(-10.0), "-10f32");
++    assert(Literal::f64_suffixed(10.0), "10f64");
++    assert(Literal::f64_suffixed(-10.0), "-10f64");
++
++    assert(Literal::f32_unsuffixed(10.0), "10.0");
++    assert(Literal::f32_unsuffixed(-10.0), "-10.0");
++    assert(Literal::f64_unsuffixed(10.0), "10.0");
++    assert(Literal::f64_unsuffixed(-10.0), "-10.0");
++
++    assert(
++        Literal::f64_unsuffixed(1e100),
++        "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0",
++    );
+ }
+ 
+ #[test]
+@@ -248,9 +354,13 @@
+     assert_eq!(token_count("1._m"), 3);
+     assert_eq!(token_count("\"\"s"), 1);
+     assert_eq!(token_count("r\"\"r"), 1);
++    assert_eq!(token_count("r#\"\"#r"), 1);
+     assert_eq!(token_count("b\"\"b"), 1);
+     assert_eq!(token_count("br\"\"br"), 1);
+-    assert_eq!(token_count("r#\"\"#r"), 1);
++    assert_eq!(token_count("br#\"\"#br"), 1);
++    assert_eq!(token_count("c\"\"c"), 1);
++    assert_eq!(token_count("cr\"\"cr"), 1);
++    assert_eq!(token_count("cr#\"\"#cr"), 1);
+     assert_eq!(token_count("'c'c"), 1);
+     assert_eq!(token_count("b'b'b"), 1);
+     assert_eq!(token_count("0E"), 1);
+@@ -378,7 +488,7 @@
+     roundtrip("'a");
+     roundtrip("'_");
+     roundtrip("'static");
+-    roundtrip("'\\u{10__FFFF}'");
++    roundtrip(r"'\u{10__FFFF}'");
+     roundtrip("\"\\u{10_F0FF__}foo\\u{1_0_0_0__}\"");
+ }
+ 
+@@ -401,6 +511,7 @@
+     fail("\"\\\r  \""); // backslash carriage return
+     fail("'aa'aa");
+     fail("br##\"\"#");
++    fail("cr##\"\"#");
+     fail("\"\\\n\u{85}\r\"");
+ }
+ 

diff --git a/chromium-125-el7-type-alias.patch b/chromium-125-el7-type-alias.patch
new file mode 100644
index 0000000..bda9050
--- /dev/null
+++ b/chromium-125-el7-type-alias.patch
@@ -0,0 +1,30 @@
+diff -up chromium-125.0.6422.60/components/plus_addresses/plus_address_service.cc.el7 chromium-125.0.6422.60/components/plus_addresses/plus_address_service.cc
+--- chromium-125.0.6422.60/components/plus_addresses/plus_address_service.cc.el7	2024-05-18 14:12:06.510863456 +0200
++++ chromium-125.0.6422.60/components/plus_addresses/plus_address_service.cc	2024-05-18 14:13:39.670666352 +0200
+@@ -165,7 +165,7 @@ std::vector<Suggestion> PlusAddressServi
+     bool is_off_the_record,
+     std::u16string_view focused_field_value,
+     autofill::AutofillSuggestionTriggerSource trigger_source) {
+-  using enum autofill::AutofillSuggestionTriggerSource;
++  using autofill::AutofillSuggestionTriggerSource;
+   if (!SupportsPlusAddresses(last_committed_primary_main_frame_origin,
+                              is_off_the_record)) {
+     return {};
+@@ -176,7 +176,7 @@ std::vector<Suggestion> PlusAddressServi
+   std::optional<std::string> maybe_address =
+       GetPlusAddress(last_committed_primary_main_frame_origin);
+   if (maybe_address == std::nullopt) {
+-    if (trigger_source != kManualFallbackPlusAddresses &&
++    if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
+         !normalized_field_value.empty()) {
+       return {};
+     }
+@@ -191,7 +191,7 @@ std::vector<Suggestion> PlusAddressServi
+ 
+   // Only suggest filling a plus address whose prefix matches the field's value.
+   std::u16string address = base::UTF8ToUTF16(*maybe_address);
+-  if (trigger_source != kManualFallbackPlusAddresses &&
++  if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
+       !address.starts_with(normalized_field_value)) {
+     return {};
+   }

diff --git a/chromium-125-el7-typename.patch b/chromium-125-el7-typename.patch
new file mode 100644
index 0000000..fc86a52
--- /dev/null
+++ b/chromium-125-el7-typename.patch
@@ -0,0 +1,417 @@
+diff -up chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.typename chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h
+--- chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.typename	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h	2024-05-17 12:33:58.735650966 +0200
+@@ -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-125.0.6422.60/base/containers/heap_array.h.typename chromium-125.0.6422.60/base/containers/heap_array.h
+--- chromium-125.0.6422.60/base/containers/heap_array.h.typename	2024-05-17 13:51:39.923426461 +0200
++++ chromium-125.0.6422.60/base/containers/heap_array.h	2024-05-17 13:54:01.866085730 +0200
+@@ -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;
+   // We don't put this default value in the template parameter list to allow the
+   // static_assert on is_reference_v to give a nicer error message.
+   using deleter_type = std::
+diff -up chromium-125.0.6422.60/base/containers/map_util.h.typename chromium-125.0.6422.60/base/containers/map_util.h
+--- chromium-125.0.6422.60/base/containers/map_util.h.typename	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/containers/map_util.h	2024-05-17 12:33:58.735650966 +0200
+@@ -44,7 +44,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);
+@@ -60,7 +60,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() ? base::to_address(it->second) : nullptr;
+diff -up chromium-125.0.6422.60/base/containers/to_vector.h.typename chromium-125.0.6422.60/base/containers/to_vector.h
+--- chromium-125.0.6422.60/base/containers/to_vector.h.typename	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/containers/to_vector.h	2024-05-17 12:33:58.736650987 +0200
+@@ -30,7 +30,7 @@ template <typename Range, typename Proj
+            std::indirectly_unary_invocable<Proj, ranges::iterator_t<Range>>
+ auto ToVector(Range&& range, Proj proj = {}) {
+   using ProjectedType =
+-      std::projected<ranges::iterator_t<Range>, Proj>::value_type;
++      typename std::projected<ranges::iterator_t<Range>, Proj>::value_type;
+   std::vector<ProjectedType> container;
+   container.reserve(std::size(range));
+   ranges::transform(std::forward<Range>(range), std::back_inserter(container),
+diff -up chromium-125.0.6422.60/base/functional/bind_internal.h.typename chromium-125.0.6422.60/base/functional/bind_internal.h
+--- chromium-125.0.6422.60/base/functional/bind_internal.h.typename	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/functional/bind_internal.h	2024-05-17 12:33:58.736650987 +0200
+@@ -1505,11 +1505,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-125.0.6422.60/base/functional/function_ref.h.typename chromium-125.0.6422.60/base/functional/function_ref.h
+--- chromium-125.0.6422.60/base/functional/function_ref.h.typename	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/functional/function_ref.h	2024-05-17 12:33:58.736650987 +0200
+@@ -64,7 +64,7 @@ class FunctionRef;
+ 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-125.0.6422.60/base/types/fixed_array.h.typename chromium-125.0.6422.60/base/types/fixed_array.h
+--- chromium-125.0.6422.60/base/types/fixed_array.h.typename	2024-05-15 23:45:50.000000000 +0200
++++ chromium-125.0.6422.60/base/types/fixed_array.h	2024-05-17 12:33:58.737651008 +0200
+@@ -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-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc
+--- chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc.typename	2024-05-15 23:46:00.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc	2024-05-17 12:33:58.737651008 +0200
+@@ -94,7 +94,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);
+@@ -1173,9 +1173,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-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h
+--- chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h.typename	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h	2024-05-17 12:33:58.737651008 +0200
+@@ -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-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h
+--- chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h.typename	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h	2024-05-17 12:33:58.738651028 +0200
+@@ -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-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h
+--- chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h.typename	2024-05-15 23:46:06.000000000 +0200
++++ chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h	2024-05-17 12:33:58.738651028 +0200
+@@ -373,7 +373,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) {
+@@ -391,7 +391,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-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h
+--- chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h.typename	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h	2024-05-17 12:33:58.738651028 +0200
+@@ -26,7 +26,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-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h
+--- chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h	2024-05-17 12:33:58.738651028 +0200
+@@ -33,7 +33,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-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h
+--- chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h.typename	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h	2024-05-17 12:33:58.739651049 +0200
+@@ -20,7 +20,7 @@ std::optional<UserVisibleFeatureKey> Get
+ // Helper method to get the quality_data from `log_ai_data_request` for
+ // different features.
+ template <typename FeatureType>
+-FeatureType::Quality* GetModelQualityData(
++typename FeatureType::Quality* GetModelQualityData(
+     proto::LogAiDataRequest* log_ai_data_request) {
+   return FeatureType::GetLoggingData(*log_ai_data_request)
+       ->mutable_quality_data();
+diff -up chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h.typename chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h
+--- chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h.typename	2024-05-15 23:46:13.000000000 +0200
++++ chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h	2024-05-17 12:33:58.739651049 +0200
+@@ -242,7 +242,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_);
+@@ -264,7 +264,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<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 @@ 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_);
+ 
+@@ -439,7 +439,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<std::optional<OutputType>>* outputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -499,7 +499,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-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h.typename chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h
+--- chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h.typename	2024-05-15 23:46:15.000000000 +0200
++++ chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h	2024-05-17 12:33:58.739651049 +0200
+@@ -458,7 +458,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();
+   }
+@@ -504,7 +504,7 @@ class RetryingFetcherImpl final : public
+   }
+ 
+   // Client callback.
+-  TypedProtoFetcher<Response>::Callback callback_;
++  typename TypedProtoFetcher<Response>::Callback callback_;
+ 
+   // Retry controls.
+   base::OneShotTimer timer_;
+@@ -525,7 +525,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.
+@@ -541,7 +541,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 -up chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h.typename chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h
+--- chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h.typename	2024-05-15 23:46:29.000000000 +0200
++++ chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h	2024-05-17 12:33:58.739651049 +0200
+@@ -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-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h.typename chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h
+--- chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h.typename	2024-05-15 23:46:30.000000000 +0200
++++ chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h	2024-05-17 12:33:58.740651070 +0200
+@@ -127,7 +127,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-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename	2024-05-15 23:46:40.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h	2024-05-17 12:33:58.740651070 +0200
+@@ -245,7 +245,7 @@ class PairAsyncIterable {
+  private:
+   virtual IterationSource* CreateIterationSource(
+       ScriptState* script_state,
+-      IterationSource::Kind kind,
++      typename IterationSource::Kind kind,
+       InitArgs... args,
+       ExceptionState& exception_state) = 0;
+ };
+@@ -291,7 +291,7 @@ class ValueAsyncIterable {
+  private:
+   virtual IterationSource* CreateIterationSource(
+       ScriptState* script_state,
+-      IterationSource::Kind kind,
++      typename IterationSource::Kind kind,
+       InitArgs... args,
+       ExceptionState& exception_state) = 0;
+ };
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.typename chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.typename	2024-05-15 23:46:40.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h	2024-05-17 12:33:58.740651070 +0200
+@@ -171,7 +171,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-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename	2024-05-15 23:46:41.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc	2024-05-17 12:33:58.741651090 +0200
+@@ -210,7 +210,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-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h.typename chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h.typename	2024-05-15 23:46:41.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h	2024-05-17 12:33:58.741651090 +0200
+@@ -445,8 +445,8 @@ class CORE_EXPORT ObjectPaintProperties
+   PaintPropertyChangeType Update(
+       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-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h.typename chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h.typename	2024-05-15 23:46:43.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h	2024-05-17 12:33:58.742651111 +0200
+@@ -2013,7 +2013,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&;
+@@ -2065,7 +2065,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&;
+@@ -2119,7 +2119,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&;
+@@ -2167,7 +2167,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 --git a/chromium-125-missing-include-FieldDataManager.patch b/chromium-125-missing-include-FieldDataManager.patch
new file mode 100644
index 0000000..6dd763a
--- /dev/null
+++ b/chromium-125-missing-include-FieldDataManager.patch
@@ -0,0 +1,32 @@
+commit aa53c3ab8df7f7c1d42c30d4b184a8f8b0a8e50d
+Author: Jose Dapena Paz <jdapena@igalia.com>
+Date:   Tue Apr 16 12:14:15 2024 +0000
+
+    IWYU: add missing include for usage of FieldDataManager in autofill_agent.h
+    
+    Change-Id: I70575d1dd72b9334e3b8d4805779a7e45788989e
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5392840
+    Reviewed-by: Florian Leimgruber <fleimgruber@google.com>
+    Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1287967}
+
+diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h
+index 76a25d72c87cc..01462aefdaae6 100644
+--- a/components/autofill/content/renderer/autofill_agent.h
++++ b/components/autofill/content/renderer/autofill_agent.h
+@@ -25,6 +25,7 @@
+ #include "components/autofill/content/renderer/form_autofill_util.h"
+ #include "components/autofill/content/renderer/form_tracker.h"
+ #include "components/autofill/core/common/autofill_features.h"
++#include "components/autofill/core/common/field_data_manager.h"
+ #include "components/autofill/core/common/mojom/autofill_types.mojom-shared.h"
+ #include "components/autofill/core/common/unique_ids.h"
+ #include "content/public/renderer/render_frame_observer.h"
+@@ -51,7 +52,6 @@ namespace autofill {
+ class FormCache;
+ class PasswordAutofillAgent;
+ class PasswordGenerationAgent;
+-class FieldDataManager;
+ 
+ // AutofillAgent deals with Autofill related communications between Blink and
+ // the browser.

diff --git a/chromium-125-system-libstdc++.patch b/chromium-125-system-libstdc++.patch
new file mode 100644
index 0000000..6c1e246
--- /dev/null
+++ b/chromium-125-system-libstdc++.patch
@@ -0,0 +1,777 @@
+diff -up chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h.system-libstdc++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h
+--- chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h.system-libstdc++	2024-05-15 23:45:49.000000000 +0200
++++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h	2024-05-17 12:33:58.761651505 +0200
+@@ -14,7 +14,7 @@
+ #include <unordered_map>
+ #include <utility>
+ 
+-#include "partition_alloc/internal_allocator_forward.h"
++#include "partition_alloc/internal_allocator.h"
+ #include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+ #include "partition_alloc/partition_alloc_base/time/time.h"
+ #include "partition_alloc/partition_alloc_check.h"
+diff -up chromium-125.0.6422.60/chrome/browser/lens/lens_overlay/lens_overlay_url_builder.h.system-libstdc++ chromium-125.0.6422.60/chrome/browser/lens/lens_overlay/lens_overlay_url_builder.h
+--- chromium-125.0.6422.60/chrome/browser/lens/lens_overlay/lens_overlay_url_builder.h.system-libstdc++	2024-05-18 19:22:04.534942469 +0200
++++ chromium-125.0.6422.60/chrome/browser/lens/lens_overlay/lens_overlay_url_builder.h	2024-05-18 19:22:18.371296934 +0200
+@@ -5,6 +5,7 @@
+ #ifndef CHROME_BROWSER_LENS_LENS_OVERLAY_LENS_OVERLAY_URL_BUILDER_H_
+ #define CHROME_BROWSER_LENS_LENS_OVERLAY_LENS_OVERLAY_URL_BUILDER_H_
+ 
++#include <optional>
+ #include <string>
+ 
+ #include "third_party/lens_server_proto/lens_overlay_cluster_info.pb.h"
+diff -up chromium-125.0.6422.60/components/services/app_service/public/cpp/app_types.h.system-libstdc++ chromium-125.0.6422.60/components/services/app_service/public/cpp/app_types.h
+--- chromium-125.0.6422.60/components/services/app_service/public/cpp/app_types.h.system-libstdc++	2024-05-18 13:31:00.381517294 +0200
++++ chromium-125.0.6422.60/components/services/app_service/public/cpp/app_types.h	2024-05-18 13:31:19.740946964 +0200
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_APP_TYPES_H_
+ #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_APP_TYPES_H_
+ 
++#include <optional>
+ #include "base/component_export.h"
+ #include "components/services/app_service/public/cpp/macros.h"
+ #include "components/services/app_service/public/protos/app_types.pb.h"
+diff -up chromium-125.0.6422.60/components/viz/service/display/surface_aggregator.cc.system-libstdc++ chromium-125.0.6422.60/components/viz/service/display/surface_aggregator.cc
+--- chromium-125.0.6422.60/components/viz/service/display/surface_aggregator.cc.system-libstdc++	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/components/viz/service/display/surface_aggregator.cc	2024-05-17 12:33:58.761651505 +0200
+@@ -2275,7 +2275,7 @@ AggregatedFrame SurfaceAggregator::Aggre
+   root_surface_id_ = surface_id;
+ 
+   // Start recording new stats for this aggregation.
+-  stats_.emplace();
++  stats_ = AggregateStatistics{};
+ 
+   base::ElapsedTimer prewalk_timer;
+   ResolvedFrameData* resolved_frame = GetResolvedFrame(surface_id);
+diff -up chromium-125.0.6422.60/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc.system-libstdc++ chromium-125.0.6422.60/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc
+--- chromium-125.0.6422.60/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc.system-libstdc++	2024-05-15 23:46:17.000000000 +0200
++++ chromium-125.0.6422.60/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc	2024-05-17 12:33:58.762651526 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <optional>
+ #include "content/browser/first_party_sets/first_party_sets_handler_database_helper.h"
+ 
+ #include "base/containers/contains.h"
+diff -up chromium-125.0.6422.60/gpu/command_buffer/service/shared_image/shared_image_backing.h.system-libstdc++ chromium-125.0.6422.60/gpu/command_buffer/service/shared_image/shared_image_backing.h
+--- chromium-125.0.6422.60/gpu/command_buffer/service/shared_image/shared_image_backing.h.system-libstdc++	2024-05-15 23:46:22.000000000 +0200
++++ chromium-125.0.6422.60/gpu/command_buffer/service/shared_image/shared_image_backing.h	2024-05-17 12:33:58.762651526 +0200
+@@ -111,6 +111,25 @@ using VideoDecodeDevice = Microsoft::WRL
+ using VideoDecodeDevice = void*;
+ #endif  // BUILDFLAG(IS_WIN)
+ 
++class ScopedWriteUMA {
++ public:
++  ScopedWriteUMA() = default;
++
++  ScopedWriteUMA(const ScopedWriteUMA&) = delete;
++  ScopedWriteUMA& operator=(const ScopedWriteUMA&) = delete;
++
++  ~ScopedWriteUMA() {
++    UMA_HISTOGRAM_BOOLEAN("GPU.SharedImage.ContentConsumed",
++                          content_consumed_);
++  }
++
++  bool content_consumed() const { return content_consumed_; }
++  void SetConsumed() { content_consumed_ = true; }
++
++ private:
++  bool content_consumed_ = false;
++};
++
+ // Represents the actual storage (GL texture, VkImage, GMB) for a SharedImage.
+ // Should not be accessed directly, instead is accessed through a
+ // SharedImageRepresentation.
+@@ -370,25 +389,6 @@ class GPU_GLES2_EXPORT SharedImageBackin
+   mutable std::optional<base::Lock> lock_;
+ 
+  private:
+-  class ScopedWriteUMA {
+-   public:
+-    ScopedWriteUMA() = default;
+-
+-    ScopedWriteUMA(const ScopedWriteUMA&) = delete;
+-    ScopedWriteUMA& operator=(const ScopedWriteUMA&) = delete;
+-
+-    ~ScopedWriteUMA() {
+-      UMA_HISTOGRAM_BOOLEAN("GPU.SharedImage.ContentConsumed",
+-                            content_consumed_);
+-    }
+-
+-    bool content_consumed() const { return content_consumed_; }
+-    void SetConsumed() { content_consumed_ = true; }
+-
+-   private:
+-    bool content_consumed_ = false;
+-  };
+-
+   const Mailbox mailbox_;
+   const viz::SharedImageFormat format_;
+   const gfx::Size size_;
+diff -up chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/multiplex_router.cc.system-libstdc++ chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/multiplex_router.cc
+--- chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/multiplex_router.cc.system-libstdc++	2024-05-15 23:46:29.000000000 +0200
++++ chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/multiplex_router.cc	2024-05-17 12:33:58.762651526 +0200
+@@ -892,7 +892,7 @@ bool MultiplexRouter::ExclusiveSyncWaitF
+   DCHECK(!exclusive_sync_wait_);
+ 
+   scoped_refptr<MultiplexRouter> keep_alive(this);
+-  exclusive_sync_wait_.emplace();
++  exclusive_sync_wait_ = ExclusiveSyncWaitInfo{};
+   exclusive_sync_wait_->interface_id = interface_id;
+   exclusive_sync_wait_->request_id = request_id;
+   while (!exclusive_sync_wait_->finished) {
+diff -up chromium-125.0.6422.60/third_party/blink/common/interest_group/auction_config_mojom_traits.cc.system-libstdc++ chromium-125.0.6422.60/third_party/blink/common/interest_group/auction_config_mojom_traits.cc
+--- chromium-125.0.6422.60/third_party/blink/common/interest_group/auction_config_mojom_traits.cc.system-libstdc++	2024-05-15 23:46:38.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/common/interest_group/auction_config_mojom_traits.cc	2024-05-17 12:33:58.763651547 +0200
+@@ -218,8 +218,6 @@ bool StructTraits<blink::mojom::AuctionA
+       !data.ReadAllBuyersPrioritySignals(&out->all_buyers_priority_signals) ||
+       !data.ReadAuctionReportBuyerKeys(&out->auction_report_buyer_keys) ||
+       !data.ReadAuctionReportBuyers(&out->auction_report_buyers) ||
+-      !data.ReadAuctionReportBuyerDebugModeConfig(
+-          &out->auction_report_buyer_debug_mode_config) ||
+       !data.ReadRequiredSellerCapabilities(
+           &out->required_seller_capabilities) ||
+       !data.ReadRequestedSize(&out->requested_size) ||
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/loader/history_item.cc.system-libstdc++ chromium-125.0.6422.60/third_party/blink/renderer/core/loader/history_item.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/loader/history_item.cc.system-libstdc++	2024-05-15 23:46:41.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/loader/history_item.cc	2024-05-17 12:33:58.763651547 +0200
+@@ -182,26 +182,26 @@ void HistoryItem::SetReferrerPolicy(netw
+ 
+ void HistoryItem::SetVisualViewportScrollOffset(const ScrollOffset& offset) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->visual_viewport_scroll_offset_ = offset;
+ }
+ 
+ void HistoryItem::SetScrollOffset(const ScrollOffset& offset) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->scroll_offset_ = offset;
+ }
+ 
+ void HistoryItem::SetPageScaleFactor(float scale_factor) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->page_scale_factor_ = scale_factor;
+ }
+ 
+ void HistoryItem::SetScrollAnchorData(
+     const ScrollAnchorData& scroll_anchor_data) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->scroll_anchor_data_ = scroll_anchor_data;
+ }
+ 
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/paint/fragment_data_iterator.h.system-libstdc++ chromium-125.0.6422.60/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-125.0.6422.60/third_party/blink/renderer/core/paint/fragment_data_iterator.h.system-libstdc++	2024-05-15 23:46:41.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/core/paint/fragment_data_iterator.h	2024-05-17 12:33:58.763651547 +0200
+@@ -22,7 +22,7 @@ class FragmentDataIteratorBase {
+ 
+  public:
+   explicit FragmentDataIteratorBase(Head& head) : fragment_head_(head) {}
+-  explicit FragmentDataIteratorBase(nullptr_t) {}
++  explicit FragmentDataIteratorBase(std::nullptr_t) {}
+ 
+   Data* GetFragmentData() const {
+     return !IsDone() ? &fragment_head_.at(idx_) : nullptr;
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc.system-libstdc++ chromium-125.0.6422.60/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc.system-libstdc++	2024-05-15 23:46:42.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc	2024-05-17 12:33:58.764651567 +0200
+@@ -101,7 +101,7 @@ void MediaControlTimelineElement::Update
+ void MediaControlTimelineElement::SetPosition(double current_time,
+                                               bool suppress_aria) {
+   if (is_live_ && !live_anchor_time_ && current_time != 0) {
+-    live_anchor_time_.emplace();
++    live_anchor_time_ = LiveAnchorTime{};
+     live_anchor_time_->clock_time_ = base::TimeTicks::Now();
+     live_anchor_time_->media_time_ = MediaElement().currentTime();
+   }
+diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc.system-libstdc++ chromium-125.0.6422.60/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc
+--- chromium-125.0.6422.60/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc.system-libstdc++	2024-05-15 23:46:42.000000000 +0200
++++ chromium-125.0.6422.60/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc	2024-05-17 12:33:58.764651567 +0200
+@@ -70,7 +70,7 @@ void GeometryMapperTransformCache::Updat
+     to_2d_translation_root_ += translation;
+ 
+     if (parent.plane_root_transform_) {
+-      plane_root_transform_.emplace();
++      plane_root_transform_ = PlaneRootTransform{};
+       plane_root_transform_->plane_root = parent.plane_root();
+       plane_root_transform_->to_plane_root = parent.to_plane_root();
+       plane_root_transform_->to_plane_root.Translate(translation.x(),
+@@ -98,7 +98,7 @@ void GeometryMapperTransformCache::Updat
+       // as the 2d translation root.
+       plane_root_transform_ = std::nullopt;
+     } else {
+-      plane_root_transform_.emplace();
++      plane_root_transform_ = PlaneRootTransform{};
+       plane_root_transform_->plane_root = parent.plane_root();
+       plane_root_transform_->to_plane_root.MakeIdentity();
+       parent.ApplyToPlaneRoot(plane_root_transform_->to_plane_root);
+@@ -140,7 +140,7 @@ void GeometryMapperTransformCache::Updat
+   parent_node->UpdateScreenTransform();
+   const auto& parent = parent_node->GetTransformCache();
+ 
+-  screen_transform_.emplace();
++  screen_transform_ = ScreenTransform{};
+   parent.ApplyToScreen(screen_transform_->to_screen);
+   if (node.FlattensInheritedTransform())
+     screen_transform_->to_screen.Flatten();
+diff -up chromium-125.0.6422.60/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc.system-libstdc++ chromium-125.0.6422.60/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
+--- chromium-125.0.6422.60/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc.system-libstdc++	2024-05-15 23:48:09.000000000 +0200
++++ chromium-125.0.6422.60/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc	2024-05-17 12:33:58.765651588 +0200
+@@ -549,7 +549,7 @@ absl::optional<LossBasedBweV2::Config> L
+   if (!enabled.Get()) {
+     return config;
+   }
+-  config.emplace();
++  config = Config{};
+   config->bandwidth_rampup_upper_bound_factor =
+       bandwidth_rampup_upper_bound_factor.Get();
+   config->bandwidth_rampup_upper_bound_factor_in_hold =
+diff -up chromium-125.0.6422.60/ui/gfx/x/generated_protos/randr.cc.system-libstdc++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/randr.cc
+--- chromium-125.0.6422.60/ui/gfx/x/generated_protos/randr.cc.system-libstdc++	2024-05-15 23:47:33.000000000 +0200
++++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/randr.cc	2024-05-17 12:33:58.765651588 +0200
+@@ -305,7 +305,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+   // data
+   auto data_expr = subCode;
+   if (CaseEq(data_expr, RandR::Notify::CrtcChange)) {
+-    data.cc.emplace();
++    data.cc = RandR::NotifyEvent::Cc{};
+     auto& timestamp = (*data.cc).timestamp;
+     auto& window = (*data.cc).window;
+     auto& crtc = (*data.cc).crtc;
+@@ -349,7 +349,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Read(&height, &buf);
+   }
+   if (CaseEq(data_expr, RandR::Notify::OutputChange)) {
+-    data.oc.emplace();
++    data.oc = RandR::NotifyEvent::Oc{};
+     auto& timestamp = (*data.oc).timestamp;
+     auto& config_timestamp = (*data.oc).config_timestamp;
+     auto& window = (*data.oc).window;
+@@ -394,7 +394,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     subpixel_order = static_cast<Render::SubPixel>(tmp6);
+   }
+   if (CaseEq(data_expr, RandR::Notify::OutputProperty)) {
+-    data.op.emplace();
++    data.op = RandR::NotifyEvent::Op{};
+     auto& window = (*data.op).window;
+     auto& output = (*data.op).output;
+     auto& atom = (*data.op).atom;
+@@ -422,7 +422,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 11);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ProviderChange)) {
+-    data.pc.emplace();
++    data.pc = RandR::NotifyEvent::Pc{};
+     auto& timestamp = (*data.pc).timestamp;
+     auto& window = (*data.pc).window;
+     auto& provider = (*data.pc).provider;
+@@ -440,7 +440,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 16);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ProviderProperty)) {
+-    data.pp.emplace();
++    data.pp = RandR::NotifyEvent::Pp{};
+     auto& window = (*data.pp).window;
+     auto& provider = (*data.pp).provider;
+     auto& atom = (*data.pp).atom;
+@@ -466,7 +466,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 11);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ResourceChange)) {
+-    data.rc.emplace();
++    data.rc = RandR::NotifyEvent::Rc{};
+     auto& timestamp = (*data.rc).timestamp;
+     auto& window = (*data.rc).window;
+ 
+@@ -480,7 +480,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 20);
+   }
+   if (CaseEq(data_expr, RandR::Notify::Lease)) {
+-    data.lc.emplace();
++    data.lc = RandR::NotifyEvent::Lc{};
+     auto& timestamp = (*data.lc).timestamp;
+     auto& window = (*data.lc).window;
+     auto& lease = (*data.lc).lease;
+diff -up chromium-125.0.6422.60/ui/gfx/x/generated_protos/xinput.cc.system-libstdc++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/xinput.cc
+--- chromium-125.0.6422.60/ui/gfx/x/generated_protos/xinput.cc.system-libstdc++	2024-05-15 23:47:33.000000000 +0200
++++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/xinput.cc	2024-05-17 12:33:58.767651629 +0200
+@@ -567,7 +567,7 @@ void ReadEvent<Input::DeviceChangedEvent
+       // data
+       auto data_expr = type;
+       if (CaseEq(data_expr, Input::DeviceClassType::Key)) {
+-        data.key.emplace();
++        data.key = Input::DeviceClass::Key{};
+         uint16_t num_keys{};
+         auto& keys = (*data.key).keys;
+         size_t keys_len = keys.size();
+@@ -583,7 +583,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Button)) {
+-        data.button.emplace();
++        data.button = Input::DeviceClass::Button{};
+         uint16_t num_buttons{};
+         auto& state = (*data.button).state;
+         size_t state_len = state.size();
+@@ -608,7 +608,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Valuator)) {
+-        data.valuator.emplace();
++        data.valuator = Input::DeviceClass::Valuator{};
+         auto& number = (*data.valuator).number;
+         auto& label = (*data.valuator).label;
+         auto& min = (*data.valuator).min;
+@@ -671,7 +671,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         Pad(&buf, 3);
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Scroll)) {
+-        data.scroll.emplace();
++        data.scroll = Input::DeviceClass::Scroll{};
+         auto& number = (*data.scroll).number;
+         auto& scroll_type = (*data.scroll).scroll_type;
+         auto& flags = (*data.scroll).flags;
+@@ -706,7 +706,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Touch)) {
+-        data.touch.emplace();
++        data.touch = Input::DeviceClass::Touch{};
+         auto& mode = (*data.touch).mode;
+         auto& num_touches = (*data.touch).num_touches;
+ 
+@@ -719,7 +719,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         Read(&num_touches, &buf);
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Gesture)) {
+-        data.gesture.emplace();
++        data.gesture = Input::DeviceClass::Gesture{};
+         auto& num_touches = (*data.gesture).num_touches;
+ 
+         // num_touches
+@@ -2206,7 +2206,7 @@ std::unique_ptr<Input::ListInputDevicesR
+       // info
+       auto info_expr = class_id;
+       if (CaseEq(info_expr, Input::InputClass::Key)) {
+-        info.key.emplace();
++        info.key = Input::InputInfo::Key{};
+         auto& min_keycode = (*info.key).min_keycode;
+         auto& max_keycode = (*info.key).max_keycode;
+         auto& num_keys = (*info.key).num_keys;
+@@ -2224,14 +2224,14 @@ std::unique_ptr<Input::ListInputDevicesR
+         Pad(&buf, 2);
+       }
+       if (CaseEq(info_expr, Input::InputClass::Button)) {
+-        info.button.emplace();
++        info.button = Input::InputInfo::Button{};
+         auto& num_buttons = (*info.button).num_buttons;
+ 
+         // num_buttons
+         Read(&num_buttons, &buf);
+       }
+       if (CaseEq(info_expr, Input::InputClass::Valuator)) {
+-        info.valuator.emplace();
++        info.valuator = Input::InputInfo::Valuator{};
+         uint8_t axes_len{};
+         auto& mode = (*info.valuator).mode;
+         auto& motion_size = (*info.valuator).motion_size;
+@@ -3844,7 +3844,7 @@ std::unique_ptr<Input::GetFeedbackContro
+       // data
+       auto data_expr = class_id;
+       if (CaseEq(data_expr, Input::FeedbackClass::Keyboard)) {
+-        data.keyboard.emplace();
++        data.keyboard = x11::Input::FeedbackState::Keyboard{};
+         auto& pitch = (*data.keyboard).pitch;
+         auto& duration = (*data.keyboard).duration;
+         auto& led_mask = (*data.keyboard).led_mask;
+@@ -3886,7 +3886,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         }
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Pointer)) {
+-        data.pointer.emplace();
++        data.pointer = x11::Input::FeedbackState::Pointer{};
+         auto& accel_num = (*data.pointer).accel_num;
+         auto& accel_denom = (*data.pointer).accel_denom;
+         auto& threshold = (*data.pointer).threshold;
+@@ -3904,7 +3904,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&threshold, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::String)) {
+-        data.string.emplace();
++        data.string = x11::Input::FeedbackState::String{};
+         auto& max_symbols = (*data.string).max_symbols;
+         uint16_t num_keysyms{};
+         auto& keysyms = (*data.string).keysyms;
+@@ -3924,7 +3924,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         }
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Integer)) {
+-        data.integer.emplace();
++        data.integer = x11::Input::FeedbackState::Integer{};
+         auto& resolution = (*data.integer).resolution;
+         auto& min_value = (*data.integer).min_value;
+         auto& max_value = (*data.integer).max_value;
+@@ -3939,7 +3939,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&max_value, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Led)) {
+-        data.led.emplace();
++        data.led = x11::Input::FeedbackState::Led{};
+         auto& led_mask = (*data.led).led_mask;
+         auto& led_values = (*data.led).led_values;
+ 
+@@ -3950,7 +3950,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&led_values, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Bell)) {
+-        data.bell.emplace();
++        data.bell = x11::Input::FeedbackState::Bell{};
+         auto& percent = (*data.bell).percent;
+         auto& pitch = (*data.bell).pitch;
+         auto& duration = (*data.bell).duration;
+@@ -4768,7 +4768,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+       // data
+       auto data_expr = class_id;
+       if (CaseEq(data_expr, Input::InputClass::Key)) {
+-        data.key.emplace();
++        data.key = x11::Input::InputState::Key{};
+         auto& num_keys = (*data.key).num_keys;
+         auto& keys = (*data.key).keys;
+         size_t keys_len = keys.size();
+@@ -4786,7 +4786,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+         }
+       }
+       if (CaseEq(data_expr, Input::InputClass::Button)) {
+-        data.button.emplace();
++        data.button = x11::Input::InputState::Button{};
+         auto& num_buttons = (*data.button).num_buttons;
+         auto& buttons = (*data.button).buttons;
+         size_t buttons_len = buttons.size();
+@@ -4804,7 +4804,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+         }
+       }
+       if (CaseEq(data_expr, Input::InputClass::Valuator)) {
+-        data.valuator.emplace();
++        data.valuator = x11::Input::InputState::Valuator{};
+         uint8_t num_valuators{};
+         auto& mode = (*data.valuator).mode;
+         auto& valuators = (*data.valuator).valuators;
+@@ -5075,7 +5075,7 @@ std::unique_ptr<Input::GetDeviceControlR
+     // data
+     auto data_expr = control_id;
+     if (CaseEq(data_expr, Input::DeviceControl::resolution)) {
+-      data.resolution.emplace();
++      data.resolution = x11::Input::DeviceState::Resolution{};
+       uint32_t num_valuators{};
+       auto& resolution_values = (*data.resolution).resolution_values;
+       size_t resolution_values_len = resolution_values.size();
+@@ -5109,7 +5109,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       }
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::abs_calib)) {
+-      data.abs_calib.emplace();
++      data.abs_calib = x11::Input::DeviceState::AbsCalib{};
+       auto& min_x = (*data.abs_calib).min_x;
+       auto& max_x = (*data.abs_calib).max_x;
+       auto& min_y = (*data.abs_calib).min_y;
+@@ -5144,7 +5144,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Read(&button_threshold, &buf);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::core)) {
+-      data.core.emplace();
++      data.core = x11::Input::DeviceState::Core{};
+       auto& status = (*data.core).status;
+       auto& iscore = (*data.core).iscore;
+ 
+@@ -5158,7 +5158,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Pad(&buf, 2);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::enable)) {
+-      data.enable.emplace();
++      data.enable = x11::Input::DeviceState::Enable{};
+       auto& enable = (*data.enable).enable;
+ 
+       // enable
+@@ -5168,7 +5168,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Pad(&buf, 3);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::abs_area)) {
+-      data.abs_area.emplace();
++      data.abs_area = x11::Input::DeviceState::AbsArea{};
+       auto& offset_x = (*data.abs_area).offset_x;
+       auto& offset_y = (*data.abs_area).offset_y;
+       auto& width = (*data.abs_area).width;
+@@ -6659,7 +6659,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+           // data
+           auto data_expr = type;
+           if (CaseEq(data_expr, Input::DeviceClassType::Key)) {
+-            data.key.emplace();
++            data.key = Input::DeviceClass::Key{};
+             uint16_t num_keys{};
+             auto& keys = (*data.key).keys;
+             size_t keys_len = keys.size();
+@@ -6675,7 +6675,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Button)) {
+-            data.button.emplace();
++            data.button = Input::DeviceClass::Button{};
+             uint16_t num_buttons{};
+             auto& state = (*data.button).state;
+             size_t state_len = state.size();
+@@ -6700,7 +6700,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Valuator)) {
+-            data.valuator.emplace();
++            data.valuator = Input::DeviceClass::Valuator{};
+             auto& number = (*data.valuator).number;
+             auto& label = (*data.valuator).label;
+             auto& min = (*data.valuator).min;
+@@ -6763,7 +6763,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             Pad(&buf, 3);
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Scroll)) {
+-            data.scroll.emplace();
++            data.scroll = Input::DeviceClass::Scroll{};
+             auto& number = (*data.scroll).number;
+             auto& scroll_type = (*data.scroll).scroll_type;
+             auto& flags = (*data.scroll).flags;
+@@ -6798,7 +6798,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Touch)) {
+-            data.touch.emplace();
++            data.touch = Input::DeviceClass::Touch{};
+             auto& mode = (*data.touch).mode;
+             auto& num_touches = (*data.touch).num_touches;
+ 
+@@ -6811,7 +6811,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             Read(&num_touches, &buf);
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Gesture)) {
+-            data.gesture.emplace();
++            data.gesture = Input::DeviceClass::Gesture{};
+             auto& num_touches = (*data.gesture).num_touches;
+ 
+             // num_touches
+diff -up chromium-125.0.6422.60/ui/gfx/x/generated_protos/xkb.cc.system-libstdc++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/xkb.cc
+--- chromium-125.0.6422.60/ui/gfx/x/generated_protos/xkb.cc.system-libstdc++	2024-05-15 23:47:33.000000000 +0200
++++ chromium-125.0.6422.60/ui/gfx/x/generated_protos/xkb.cc	2024-05-17 12:33:58.768651650 +0200
+@@ -2346,7 +2346,7 @@ std::unique_ptr<Xkb::GetMapReply> detail
+   // map
+   auto map_expr = present;
+   if (CaseAnd(map_expr, Xkb::MapPart::KeyTypes)) {
+-    map.types_rtrn.emplace();
++    map.types_rtrn = std::vector<Xkb::KeyType>{};
+     auto& types_rtrn = *map.types_rtrn;
+     size_t types_rtrn_len = types_rtrn.size();
+ 
+@@ -5276,7 +5276,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::Types) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::ClientSymbols) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::ServerSymbols)) {
+-    replies.types.emplace();
++    replies.types = Xkb::GetKbdByNameReply::Types{};
+     auto& getmap_type = (*replies.types).getmap_type;
+     auto& typeDeviceID = (*replies.types).typeDeviceID;
+     auto& getmap_sequence = (*replies.types).getmap_sequence;
+@@ -5708,7 +5708,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::CompatMap)) {
+-    replies.compat_map.emplace();
++    replies.compat_map = Xkb::GetKbdByNameReply::CompatMap{};
+     auto& compatmap_type = (*replies.compat_map).compatmap_type;
+     auto& compatDeviceID = (*replies.compat_map).compatDeviceID;
+     auto& compatmap_sequence = (*replies.compat_map).compatmap_sequence;
+@@ -5832,7 +5832,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::IndicatorMaps)) {
+-    replies.indicator_maps.emplace();
++    replies.indicator_maps = Xkb::GetKbdByNameReply::IndicatorMaps{};
+     auto& indicatormap_type = (*replies.indicator_maps).indicatormap_type;
+     auto& indicatorDeviceID = (*replies.indicator_maps).indicatorDeviceID;
+     auto& indicatormap_sequence =
+@@ -5926,7 +5926,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::KeyNames) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::OtherNames)) {
+-    replies.key_names.emplace();
++    replies.key_names = Xkb::GetKbdByNameReply::KeyNames{};
+     auto& keyname_type = (*replies.key_names).keyname_type;
+     auto& keyDeviceID = (*replies.key_names).keyDeviceID;
+     auto& keyname_sequence = (*replies.key_names).keyname_sequence;
+@@ -6185,7 +6185,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::Geometry)) {
+-    replies.geometry.emplace();
++    replies.geometry = Xkb::GetKbdByNameReply::Geometry{};
+     auto& geometry_type = (*replies.geometry).geometry_type;
+     auto& geometryDeviceID = (*replies.geometry).geometryDeviceID;
+     auto& geometry_sequence = (*replies.geometry).geometry_sequence;
+diff -up chromium-125.0.6422.60/chrome/browser/ui/tabs/tab_strip_model.h.me chromium-125.0.6422.60/chrome/browser/ui/tabs/tab_strip_model.h
+--- chromium-125.0.6422.60/chrome/browser/ui/tabs/tab_strip_model.h.me	2024-05-17 13:03:47.120796989 +0200
++++ chromium-125.0.6422.60/chrome/browser/ui/tabs/tab_strip_model.h	2024-05-17 13:04:07.392217367 +0200
+@@ -12,6 +12,7 @@
+ #include <memory>
+ #include <optional>
+ #include <string>
++#include <variant>
+ #include <vector>
+ 
+ #include "base/containers/span.h"
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.h.me chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.h
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.h.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_service.h	2024-05-17 13:09:38.495376514 +0200
+@@ -26,14 +26,13 @@ class ProductSpecificationsService : pub
+   base::WeakPtr<syncer::ModelTypeControllerDelegate>
+   GetSyncControllerDelegate();
+ 
+-  const std::vector<const ProductSpecificationsSet>
+-  GetAllProductSpecifications();
++  const std::vector<ProductSpecificationsSet> GetAllProductSpecifications();
+ 
+   // Add new product specifications set called |name| with product pages
+   // corresponding to |urls|.
+   const std::optional<const ProductSpecificationsSet>
+   AddProductSpecificationsSet(const std::string& name,
+-                              const std::vector<const GURL>& urls);
++                              const std::vector<GURL>& urls);
+ 
+   // Deletes product specification set corresponding to identifier |uuid|.
+   void DeleteProductSpecificationsSet(const std::string& uuid);
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.h.me chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.h
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.h.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_set.h	2024-05-17 13:09:38.496376540 +0200
+@@ -43,7 +43,7 @@ class ProductSpecificationsSet {
+   ProductSpecificationsSet(const std::string& uuid,
+                            const int64_t creation_time_usec_since_epoch,
+                            const int64_t update_time_usec_since_epoch,
+-                           const std::vector<const GURL>& urls,
++                           const std::vector<GURL>& urls,
+                            const std::string& name);
+ 
+   ProductSpecificationsSet(const ProductSpecificationsSet&);
+@@ -61,7 +61,7 @@ class ProductSpecificationsSet {
+   const base::Time& update_time() const { return update_time_; }
+ 
+   // Product urls for each item in the set
+-  const std::vector<const GURL>& urls() const { return urls_; }
++  const std::vector<GURL>& urls() const { return urls_; }
+ 
+   // Name of the set
+   const std::string& name() const { return name_; }
+@@ -76,7 +76,7 @@ class ProductSpecificationsSet {
+   const base::Uuid uuid_;
+   const base::Time creation_time_;
+   const base::Time update_time_;
+-  const std::vector<const GURL> urls_;
++  const std::vector<GURL> urls_;
+   const std::string name_;
+ };
+ 
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.cc.me chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.cc
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.cc.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.cc	2024-05-17 13:09:38.497376567 +0200
+@@ -131,7 +131,7 @@ void ProductSpecificationsSyncBridge::Ge
+ const std::optional<sync_pb::CompareSpecifics>
+ ProductSpecificationsSyncBridge::AddProductSpecifications(
+     const std::string& name,
+-    const std::vector<const GURL>& urls) {
++    const std::vector<GURL>& urls) {
+   if (!change_processor()->IsTrackingMetadata()) {
+     return std::nullopt;
+   }
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.h.me chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.h
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.h.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge.h	2024-05-17 13:09:38.497376567 +0200
+@@ -64,7 +64,7 @@ class ProductSpecificationsSyncBridge :
+ 
+   virtual const std::optional<sync_pb::CompareSpecifics>
+   AddProductSpecifications(const std::string& name,
+-                           const std::vector<const GURL>& urls);
++                           const std::vector<GURL>& urls);
+ 
+   void DeleteProductSpecificationsSet(const std::string& uuid);
+ 
+diff -up chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge_unittest.cc.me chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge_unittest.cc
+--- chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge_unittest.cc.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/product_specifications/product_specifications_sync_bridge_unittest.cc	2024-05-17 13:09:38.497376567 +0200
+@@ -178,7 +178,7 @@ class ProductSpecificationsSyncBridgeTes
+ 
+   std::optional<sync_pb::CompareSpecifics> AddProductSpecifications(
+       const std::string& name,
+-      const std::vector<const GURL> urls) {
++      const std::vector<GURL> urls) {
+     return bridge().AddProductSpecifications(name, urls);
+   }
+ 
+diff -up chromium-125.0.6422.60/components/commerce/core/shopping_service.cc.me chromium-125.0.6422.60/components/commerce/core/shopping_service.cc
+--- chromium-125.0.6422.60/components/commerce/core/shopping_service.cc.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/shopping_service.cc	2024-05-17 13:09:38.498376593 +0200
+@@ -1734,7 +1734,7 @@ void ShoppingService::GetProductIdentifi
+           std::move(callback)));
+ }
+ 
+-const std::vector<const ProductSpecificationsSet>
++const std::vector<ProductSpecificationsSet>
+ ShoppingService::GetAllProductSpecificationSets() {
+   return product_specifications_service_->GetAllProductSpecifications();
+ }
+diff -up chromium-125.0.6422.60/components/commerce/core/shopping_service.h.me chromium-125.0.6422.60/components/commerce/core/shopping_service.h
+--- chromium-125.0.6422.60/components/commerce/core/shopping_service.h.me	2024-05-15 23:46:11.000000000 +0200
++++ chromium-125.0.6422.60/components/commerce/core/shopping_service.h	2024-05-17 13:09:38.499376619 +0200
+@@ -624,7 +624,7 @@ class ShoppingService : public KeyedServ
+                                   UrlProductIdentifierTupleCallback callback);
+ 
+   // Return all ProductSpecificationsSets from ProductSpecificationsService.
+-  virtual const std::vector<const ProductSpecificationsSet>
++  virtual const std::vector<ProductSpecificationsSet>
+   GetAllProductSpecificationSets();
+ 
+   // Updates the bookmark model used for sync (and shopping) if needed. Invoked
+diff -up chromium-125.0.6422.60/mojo/public/cpp/base/proto_wrapper.cc.me chromium-125.0.6422.60/mojo/public/cpp/base/proto_wrapper.cc
+--- chromium-125.0.6422.60/mojo/public/cpp/base/proto_wrapper.cc.me	2024-05-15 23:46:29.000000000 +0200
++++ chromium-125.0.6422.60/mojo/public/cpp/base/proto_wrapper.cc	2024-05-17 13:09:38.499376619 +0200
+@@ -57,7 +57,7 @@ bool ProtoWrapper::DeserializeToMessage(
+     // Make an in-process copy here as protobuf is not designed to
+     // safely parse data that might be changing underneath it.
+     auto as_span = base::make_span(bytes_->data(), bytes_->size());
+-    const std::vector<const uint8_t> copy(as_span.begin(), as_span.end());
++    const std::vector<uint8_t> copy(as_span.begin(), as_span.end());
+     return message.ParseFromArray(copy.data(), copy.size());
+   }
+ }
+diff -up chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/bindings_internal.h.me chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/bindings_internal.h
+--- chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/bindings_internal.h.me	2024-05-17 14:54:11.158723735 +0200
++++ chromium-125.0.6422.60/mojo/public/cpp/bindings/lib/bindings_internal.h	2024-05-17 14:55:20.214285825 +0200
+@@ -8,6 +8,7 @@
+ #include <stdint.h>
+ 
+ #include <functional>
++#include <optional>
+ #include <type_traits>
+ #include <utility>
+ 
+diff -up chromium-125.0.6422.60/third_party/vulkan-deps/vulkan-utility-libraries/src/include/vulkan/utility/vk_small_containers.hpp.me chromium-125.0.6422.60/third_party/vulkan-deps/vulkan-utility-libraries/src/include/vulkan/utility/vk_small_containers.hpp
+--- chromium-125.0.6422.60/third_party/vulkan-deps/vulkan-utility-libraries/src/include/vulkan/utility/vk_small_containers.hpp.me	2024-05-17 12:59:26.714809822 +0200
++++ chromium-125.0.6422.60/third_party/vulkan-deps/vulkan-utility-libraries/src/include/vulkan/utility/vk_small_containers.hpp	2024-05-17 12:59:49.236235446 +0200
+@@ -8,6 +8,7 @@
+ 
+ #pragma once
+ 
++#include <memory>
+ #include <cassert>
+ #include <unordered_map>
+ #include <unordered_set>

diff --git a/chromium.spec b/chromium.spec
index cc66741..fdbd1e9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,6 +164,9 @@
 
 # enable|disable use_custom_libcxx
 %global use_custom_libcxx 1
+%if %{rhel} == 7
+%global use_custom_libcxx 0
+%endif
 
 # enable clang by default
 %global clang 1
@@ -315,7 +318,7 @@
 
 Name:	chromium%{chromium_channel}
 Version: 125.0.6422.60
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
 License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@@ -380,7 +383,7 @@ Patch101: chromium-108-el7-wayland-strndup-error.patch
 
 # Workaround for old clang 14
 # error: defaulting this default constructor would delete it after its first declaration
-Patch102: chromium-124-el7-default-constructor-involving-anonymous-union.patch
+Patch102: chromium-125-el7-default-constructor-involving-anonymous-union.patch
 
 # Work around old and missing headers on EPEL7
 Patch103: chromium-110-epel7-old-headers-workarounds.patch
@@ -391,7 +394,7 @@ Patch104: chromium-99.0.4844.51-epel7-old-cups.patch
 
 # libdrm on EL7 is rather old and chromium assumes newer
 # This gets us by for now
-Patch105: chromium-120-el7-old-libdrm.patch
+Patch105: chromium-125-el7-old-libdrm.patch
 
 # error: no matching function for call to 'std::basic_string<char>::erase(std::basic_string<char>::const_iterator, __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >&)'
 #   33 |   property_name.erase(property_name.cbegin(), cur);
@@ -406,25 +409,27 @@ Patch108: chromium-118-el7_v4l2_quantization.patch
 Patch109: chromium-114-wireless-el7.patch
 Patch110: chromium-115-buildflag-el7.patch
 Patch111: chromium-122-el7-inline-function.patch
+Patch112: chromium-125-el7-rust-proc-macro2.patch
 Patch113: chromium-121-el7-clang-version-warning.patch
 Patch114: chromium-123-el7-clang-build-failure.patch
 Patch115: chromium-124-el7-size_t.patch
 
 # fixes for old clang version in el7 (clang <= 15)
 # compiler build errors, no matching constructor for initialization
-Patch116: chromium-124-no_matching_constructor.patch
-Patch117: chromium-115-compiler-SkColor4f.patch
+Patch116: chromium-125-el7-no_matching_constructor.patch
+Patch117: chromium-115-el7-compiler-SkColor4f.patch
 
 # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch118: chromium-124-workaround_clang_bug-structured_binding.patch
+Patch118: chromium-124-el7-workaround_clang_bug-structured_binding.patch
 
 # missing typename
-Patch119: chromium-124-typename.patch
+Patch119: chromium-125-el7-typename.patch
 
 # error: invalid operands to binary expression
-Patch120: chromium-117-string-convert.patch
-Patch121: chromium-119-assert.patch
-Patch122: chromium-124-el7-constexpr.patch
+Patch120: chromium-117-el7-string-convert.patch
+Patch121: chromium-125-el7-assert.patch
+Patch122: chromium-125-el7-constexpr.patch
+Patch123: chromium-125-el7-type-alias.patch
 
 # system ffmpeg
 # need for old ffmpeg 5.x on epel9
@@ -479,6 +484,9 @@ Patch352: chromium-117-workaround_for_crash_on_BTI_capable_system.patch
 # remove flag split-threshold-for-reg-with-hint, it' not supported in clang <= 17
 Patch354: chromium-120-split-threshold-for-reg-with-hint.patch
 
+# use system libstdc++
+Patch355: chromium-125-system-libstdc++.patch
+
 # disable FFmpegAllowLists by default to allow external ffmpeg
 patch356: chromium-125-disable-FFmpegAllowLists.patch
 
@@ -559,6 +567,7 @@ Patch413: fix-unknown-warning-option-messages.diff
 # upstream patches
 # 64kpage support on el8
 Patch500: chromium-124-el8-support-64kpage.patch
+Patch501: chromium-125-missing-include-FieldDataManager.patch
 
 # Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
 # http://build.chromium.org/buildbot/official/
@@ -1195,6 +1204,7 @@ udev.
 %patch -P109 -p1 -b .wireless
 %patch -P110 -p1 -b .buildflag-el7
 %patch -P111 -p1 -b .inline-function-el7
+%patch -P112 -p1 -R -b  .rust-proc-macro2
 %patch -P113 -p1 -b .el7-clang-version-warning
 %patch -P114 -p1 -b .clang-build-failure
 %patch -P115 -p1 -b .el7-size_t
@@ -1205,6 +1215,7 @@ udev.
 %patch -P120 -p1 -b .string-convert
 %patch -P121 -p1 -b .assert
 %patch -P122 -p1 -b .constexpr
+%patch -P123 -p1 -b .el7-type-alias
 %endif
 
 %if 0%{?rhel} == 9
@@ -1248,6 +1259,9 @@ udev.
 %endif
 
 %patch -P354 -p1 -b .revert-split-threshold-for-reg-with-hint
+%if ! %{use_custom_libcxx}
+%patch -P355 -p1 -b .system-libstdc++
+%endif
 %patch -P356 -p1 -b .disable-FFmpegAllowLists
 %patch -P358 -p1 -b .rust-clang_lib
 %patch -P359 -p1 -b .libavif-deps
@@ -1320,6 +1334,7 @@ udev.
 %patch -P500 -p1 -b .el8-support-64kpage.patch
 %endif
 %endif
+%patch -P501 -p1 -b .missing-include-FieldDataManage
 
 # Change shebang in all relevant files in this directory and all subdirectories
 # See `man find` for how the `-exec command {} +` syntax works
@@ -1391,8 +1406,7 @@ cp -a third_party/dav1d/version/version.h third_party/dav1d/libdav1d/include/dav
 %if %{clang}
 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'
+FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes -Wno-unknown-pragmas'
 %endif
 
 %if %{system_build_flags}
@@ -2115,6 +2129,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %endif
 
 %changelog
+* Sun May 19 2024 Than Ngo <than@redhat.com> - 125.0.6422.60-2
+- fix build errors on el7
+
 * Thu May 16 2024 Than Ngo <than@redhat.com> - 125.0.6422.60-1
 - update to 125.0.6422.60
   * High CVE-2024-4947: Type Confusion in V8

^ 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: fix build errors on el7 Than Ngo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox