public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: fixed many build failures 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 : 08a22e283e151ba14030a7acedc737081e31ac1c
Author : Than Ngo <than@redhat.com>
Date   : 2024-02-25T21:49:39+01:00
Stats  : +1742/-1423 in 14 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/08a22e283e151ba14030a7acedc737081e31ac1c?branch=epel9-next

Log:
fixed many build failures on el7

---
diff --git a/chromium-116-constexpr.patch b/chromium-116-constexpr.patch
deleted file mode 100644
index 08b5930..0000000
--- a/chromium-116-constexpr.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -up chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me chromium-116.0.5845.96/cc/paint/paint_op_writer.h
---- chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me	2023-08-16 19:09:48.998173285 +0200
-+++ chromium-116.0.5845.96/cc/paint/paint_op_writer.h	2023-08-16 21:13:44.442431527 +0200
-@@ -104,7 +104,16 @@ class CC_PAINT_EXPORT PaintOpWriter {
- 
-  private:
-   template <typename T>
--  static constexpr size_t SerializedSizeSimple();
-+  static constexpr size_t SerializedSizeSimple() {
-+    static_assert(!std::is_pointer_v<T>);
-+    return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
-+  }
-+  // size_t is always serialized as uint64_t to make the serialized result
-+  // portable between 32bit and 64bit processes.
-+  template <>
-+  constexpr size_t SerializedSizeSimple<size_t>() {
-+    return base::bits::AlignUp(sizeof(uint64_t), kDefaultAlignment);
-+  }
- 
-  public:
-   // SerializedSize() returns the maximum serialized size of the given type or
-@@ -115,7 +124,10 @@ class CC_PAINT_EXPORT PaintOpWriter {
-   // deserialization, and make it possible to allow dynamic sizing for some
-   // data types (see the specialized/overloaded functions).
-   template <typename T>
--  static constexpr size_t SerializedSize();
-+  static constexpr size_t SerializedSize() {
-+    static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
-+    return SerializedSizeSimple<T>();
-+  }
-   template <typename T>
-   static constexpr size_t SerializedSize(const T& data);
-   static size_t SerializedSize(const PaintImage& image);
-@@ -360,19 +372,6 @@ class CC_PAINT_EXPORT PaintOpWriter {
-   const bool enable_security_constraints_;
- };
- 
--template <typename T>
--constexpr size_t PaintOpWriter::SerializedSizeSimple() {
--  static_assert(!std::is_pointer_v<T>);
--  return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
--}
--
--// size_t is always serialized as two uint32_ts to make the serialized result
--// portable between 32bit and 64bit processes.
--template <>
--constexpr size_t PaintOpWriter::SerializedSizeSimple<size_t>() {
--  return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
--}
--
- template <>
- constexpr size_t PaintOpWriter::SerializedSize<SkGainmapInfo>() {
-   return SerializedSizeSimple<SkColor4f>() +  // fGainmapRatioMin
-@@ -386,11 +385,6 @@ constexpr size_t PaintOpWriter::Serializ
- }
- 
- template <typename T>
--constexpr size_t PaintOpWriter::SerializedSize() {
--  static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
--  return SerializedSizeSimple<T>();
--}
--template <typename T>
- constexpr size_t PaintOpWriter::SerializedSize(const T& data) {
-   return SerializedSizeSimple<T>();
- }

diff --git a/chromium-120-el7-extra-operator.patch b/chromium-120-el7-extra-operator.patch
deleted file mode 100644
index 966e85f..0000000
--- a/chromium-120-el7-extra-operator.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h.me chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h
---- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h.me	2023-11-26 13:33:11.547409713 +0100
-+++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h	2023-11-26 13:35:02.679363167 +0100
-@@ -40,6 +40,11 @@ class MetadataAllocator {
-   }
- 
-   template <typename U>
-+  bool operator==(const MetadataAllocator<U>&) const {
-+    return true;
-+  }
-+
-+  template <typename U>
-   bool operator!=(const MetadataAllocator<U>& o) {
-     return !operator==(o);
-   }
-diff -up chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h
---- chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me	2023-11-22 20:34:11.000000000 +0100
-+++ chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h	2023-11-26 13:30:38.961724653 +0100
-@@ -82,6 +82,7 @@ struct FxPartitionAllocAllocator {
-   }
- 
-   // There's no state, so they are all the same,
-+  bool operator==(const FxPartitionAllocAllocator&) const { return true; }
-   bool operator==(const FxPartitionAllocAllocator& that) { return true; }
-   bool operator!=(const FxPartitionAllocAllocator& that) { return false; }
- };

diff --git a/chromium-121-el7-default-constructor-involving-anonymous-union.patch b/chromium-121-el7-default-constructor-involving-anonymous-union.patch
deleted file mode 100644
index 148c81c..0000000
--- a/chromium-121-el7-default-constructor-involving-anonymous-union.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.cc.me chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.cc
---- chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.cc.me	2024-01-23 15:13:11.469104694 +0100
-+++ chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.cc	2024-01-23 15:11:40.117842015 +0100
-@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi
- 
- }  // namespace
- 
--HeaderDirectFromSellerSignals::Result::Result() = default;
-+HeaderDirectFromSellerSignals::Result::Result() {}
- 
- HeaderDirectFromSellerSignals::Result::Result(
-     absl::optional<std::string> seller_signals,
-diff -up chromium-121.0.6167.57/components/variations/service/ui_string_overrider.cc.me chromium-121.0.6167.57/components/variations/service/ui_string_overrider.cc
---- chromium-121.0.6167.57/components/variations/service/ui_string_overrider.cc.me	2024-01-24 08:07:50.191188397 +0100
-+++ chromium-121.0.6167.57/components/variations/service/ui_string_overrider.cc	2024-01-24 08:08:55.905676634 +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 --git a/chromium-121-no_matching_constructor.patch b/chromium-121-no_matching_constructor.patch
deleted file mode 100644
index 231cdd3..0000000
--- a/chromium-121-no_matching_constructor.patch
+++ /dev/null
@@ -1,980 +0,0 @@
-diff -up chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc
---- chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor	2023-11-29 22:39:40.000000000 +0100
-+++ chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc	2023-12-03 17:31:25.748420189 +0100
-@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo
-     // The sample-record could be for any sparse histogram. Add the reference
-     // to the appropriate collection for later use.
-     if (found_id == match_id) {
--      found_records.emplace_back(ref, value);
-+      found_records.emplace_back() = {ref, value};
-       found = true;
-     } else {
-       std::vector<ReferenceAndSample>* samples =
-           GetSampleMapRecordsWhileLocked(found_id);
-       CHECK(samples);
--      samples->emplace_back(ref, value);
-+      samples->emplace_back() = {ref, value};
-     }
-   }
- 
-diff -up chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor chromium-120.0.6099.56/base/trace_event/trace_log.cc
---- chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor	2023-11-29 22:39:40.000000000 +0100
-+++ chromium-120.0.6099.56/base/trace_event/trace_log.cc	2023-12-03 17:31:25.749420208 +0100
-@@ -2191,8 +2191,8 @@ void TraceLog::SetTraceBufferForTesting(
- #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
- void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
-   AutoLock lock(track_event_lock_);
--  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
--                                     args.backend_type);
-+  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
-+                                     args.backend_type};
- }
- 
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2023-11-29 22:39:47.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc	2023-12-03 17:31:25.749420208 +0100
-@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
- 
-       while (rule_iterator && rule_iterator->HasNext()) {
-         auto rule = rule_iterator->Next();
--        patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
--                                        rule->secondary_pattern);
-+        patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
-+                                        rule->secondary_pattern};
-         permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
-             setting_type,
-             permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
-@@ -329,8 +329,8 @@ void OneTimePermissionProvider::DeleteEn
-     auto rule = rule_iterator->Next();
-     if (rule->primary_pattern.Matches(origin_gurl) &&
-         rule->secondary_pattern.Matches(origin_gurl)) {
--      patterns_to_delete.emplace_back(
--          content_setting_type, rule->primary_pattern, rule->secondary_pattern);
-+      patterns_to_delete.emplace_back() = {
-+          content_setting_type, rule->primary_pattern, rule->secondary_pattern};
-       permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
-           content_setting_type, trigger_event);
-     }
-diff -up chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2023-11-29 22:39:48.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-12-03 17:31:25.749420208 +0100
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
-   // TODO(crbug.com/1445072): Add actual domains with attribute names.
-   profile_attributes->insert(std::make_pair(
-       "supported.test",
--      SAMLProfileAttributes("placeholderName", "placeholderDomain",
--                            "placeholderToken")));
-+      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+                            "placeholderToken"}));
- 
-   // Extract domains and attributes from the command line switch.
-   const base::CommandLine& command_line =
-diff -up chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2023-11-29 22:39:52.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-12-03 17:31:25.749420208 +0100
-@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
-               alternative_nav_match);
- 
-   // Store the details necessary to open the omnibox match via browser commands.
--  location_bar_->set_navigation_params(LocationBar::NavigationParams(
-+  location_bar_->set_navigation_params(LocationBar::NavigationParams{
-       destination_url, disposition, transition, match_selection_timestamp,
-       destination_url_entered_without_scheme,
--      destination_url_entered_with_http_scheme));
-+      destination_url_entered_with_http_scheme});
- 
-   if (browser_) {
-     auto navigation = chrome::OpenCurrentURL(browser_);
-diff -up chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc
---- chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor	2023-11-29 22:39:52.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc	2023-12-03 17:31:25.756420342 +0100
-@@ -148,8 +148,8 @@ SafetyHubMenuNotificationService::GetNot
-   // The information related to showing the notification needs to be persisted
-   // as well.
-   SaveNotificationsToPrefs();
--  return MenuNotificationEntry(notification_to_show->GetNotificationCommandId(),
--                               notification_to_show->GetNotificationString());
-+  return MenuNotificationEntry{notification_to_show->GetNotificationCommandId(),
-+                               notification_to_show->GetNotificationString()};
- }
- 
- absl::optional<ResultMap>
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor	2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2023-12-03 17:31:25.749420208 +0100
-@@ -55,12 +55,12 @@ std::vector<EmbeddedPermissionPromptAskV
- EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
-   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
--    buttons.emplace_back(
-+    buttons.emplace_back() = {
-         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
--        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
-+        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
-   }
--  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
--                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId);
-+  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-+                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId};
-   return buttons;
- }
- 
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor	2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2023-12-03 17:31:25.750420227 +0100
-@@ -86,6 +86,7 @@ class EmbeddedPermissionPromptBaseView :
-   struct RequestLineConfiguration {
-     const raw_ptr<const gfx::VectorIcon> icon;
-     std::u16string message;
-+    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
-   };
- 
-   struct ButtonConfiguration {
-diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
---- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor	2023-11-29 22:39:53.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2023-12-03 17:31:25.750420227 +0100
-@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
- std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
- EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
--                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
-+  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
-+                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
-   return buttons;
- }
- 
-diff -up chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc
---- chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2023-11-29 22:39:54.000000000 +0100
-+++ chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc	2023-12-03 17:31:25.750420227 +0100
-@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
-                         "'version' field of type string");
-         }
- 
--        brands.emplace_back(*brand, *version);
-+        brands.emplace_back() = {*brand, *version};
-       }
- 
-       client_hints.brands = std::move(brands);
-@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
-                         "a 'version' field of type string");
-         }
- 
--        full_version_list.emplace_back(*brand, *version);
-+        full_version_list.emplace_back() = {*brand, *version};
-       }
- 
-       client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc
---- chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor	2023-11-29 22:39:57.000000000 +0100
-+++ chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc	2023-12-03 17:31:25.750420227 +0100
-@@ -197,9 +197,9 @@ class ContactInfoProfileSetter {
-       CHECK(observations.empty());
-       for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
-            metadata.observations()) {
--        observations.emplace_back(proto_observation.type(),
-+        observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
-                                   ProfileTokenQuality::FormSignatureHash(
--                                      proto_observation.form_hash()));
-+                                      proto_observation.form_hash())};
-       }
-     }
-   }
-diff -up chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc
---- chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor	2023-11-29 22:39:57.000000000 +0100
-+++ chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc	2023-12-03 17:31:25.751420246 +0100
-@@ -1763,10 +1763,10 @@ std::unique_ptr<AutofillProfile> Autofil
-     }
- 
-     base::span<const uint8_t> observations_data = s.ColumnBlob(3);
--    field_type_values.emplace_back(
-+    field_type_values.emplace_back() = {
-         type, s.ColumnString16(1), s.ColumnInt(2),
-         std::vector<uint8_t>(observations_data.begin(),
--                             observations_data.end()));
-+                             observations_data.end())};
- 
-     if (type == ADDRESS_HOME_COUNTRY) {
-       country_code = base::UTF16ToUTF8(s.ColumnString16(1));
-diff -up chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-12-03 17:31:25.751420246 +0100
-@@ -1567,7 +1567,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
- 
-       // Issue readbacks from the surfaces:
-       for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
--        SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
-+        SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
-         SkImageInfo dst_info = SkImageInfo::Make(
-             size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
-             kUnpremul_SkAlphaType);
-diff -up chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/download/save_package.cc
---- chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor	2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/content/browser/download/save_package.cc	2023-12-03 17:31:25.752420265 +0100
-@@ -767,8 +767,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> files;
-     for (auto& item : saved_success_items_) {
--      files.emplace_back(item.second->full_path(), item.second->url(),
--                         item.second->referrer().url);
-+      files.emplace_back() = {item.second->full_path(), item.second->url(),
-+                         item.second->referrer().url};
-     }
-     download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
-   }
-diff -up chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc
---- chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor	2023-11-29 22:40:01.000000000 +0100
-+++ chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc	2023-12-03 17:31:25.752420265 +0100
-@@ -3002,10 +3002,10 @@ DoGetKAnonymityData(sql::Database& db,
- 
-   std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
-   while (interest_group_kanon_query.Step()) {
--    k_anon_data.emplace_back(
-+    k_anon_data.emplace_back() = {
-         /*key=*/interest_group_kanon_query.ColumnString(0),
-         /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
--        /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
-+        /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
-   }
-   if (!interest_group_kanon_query.Succeeded()) {
-     return absl::nullopt;
-diff -up chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-120.0.6099.56/net/dns/host_resolver_cache.cc
---- chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor	2023-11-29 22:40:07.000000000 +0100
-+++ chromium-120.0.6099.56/net/dns/host_resolver_cache.cc	2023-12-03 17:31:25.754420303 +0100
-@@ -368,7 +368,7 @@ void HostResolverCache::Set(
- 
-   std::string domain_name = result->domain_name();
-   entries_.emplace(
--      Key(std::move(domain_name), network_anonymization_key),
-+      Key{std::move(domain_name), network_anonymization_key},
-       Entry(std::move(result), source, secure, staleness_generation));
- 
-   if (entries_.size() > max_entries_) {
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2023-11-29 22:40:12.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h	2023-12-03 17:31:25.754420303 +0100
-@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
-       Color::ColorSpace color_interpolation_space,
-       absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
-     return base::AdoptRef(new FontPalette(
--        start, end, NonNormalizedPercentages(start_percentage, end_percentage),
-+        start, end, NonNormalizedPercentages{start_percentage, end_percentage},
-         normalized_percentage, alpha_multiplier, color_interpolation_space,
-         hue_interpolation_method));
-   }
-@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
-       double normalized_percentage) {
-     double end_percentage = normalized_percentage * 100.0;
-     double start_percentage = 100.0 - end_percentage;
--    return NonNormalizedPercentages(start_percentage, end_percentage);
-+    return NonNormalizedPercentages{start_percentage, end_percentage};
-   }
- 
-   double GetAlphaMultiplier() const {
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2023-11-29 22:40:12.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-12-03 17:31:25.755420323 +0100
-@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
-         color_interpolation_space, hue_interpolation_method, start_color,
-         end_color, percentage, alpha_multiplier);
- 
--    FontPalette::FontPaletteOverride result_color_record(i, result_color);
-+    FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
-     result_color_records.push_back(result_color_record);
-   }
-   return result_color_records;
-diff -up chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
---- chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor	2023-11-29 22:41:46.000000000 +0100
-+++ chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp	2023-12-03 17:31:25.756420342 +0100
-@@ -491,7 +491,7 @@ void CPDF_RenderStatus::ProcessClipPath(
-     } else {
-       m_pDevice->SetClip_PathFill(
-           *pPath, &mtObj2Device,
--          CFX_FillRenderOptions(ClipPath.GetClipType(i)));
-+          CFX_FillRenderOptions{ClipPath.GetClipType(i)});
-     }
-   }
- 
-diff -up chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h
---- chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor	2023-11-29 22:40:44.000000000 +0100
-+++ chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h	2023-12-03 17:31:25.755420323 +0100
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
-     zcr_color_manager_v1_chromaticity_names,
-     PrimaryVersion>(
-     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::BT470M,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTE240M,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::XYZ_D50,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::FILM,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
- 
- // A map from the zcr_color_manager_v1 eotf_names enum values
- // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
-     zcr_color_manager_v1_eotf_names,
-     TransferVersion>({
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
--     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
--     TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
--     TransferVersion(gfx::ColorSpace::TransferID::BT709,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT709,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
-      // This is ever so slightly inaccurate. The number ought to be
-      // 2.19921875f, not 2.2
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
--     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
--     TransferVersion(gfx::ColorSpace::TransferID::HLG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::HLG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
--     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
--     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::SMPTEST428_1,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
--     TransferVersion(gfx::ColorSpace::TransferID::LOG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LOG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
--     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::IEC61966_2_4,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
--     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
--     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
--     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
- });
- 
- // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
- constexpr auto kTransferMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
--         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
--         TransferFnVersion(
-+         TransferFnVersion{
-              SkNamedTransferFnExt::kRec709,
--             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
--         TransferFnVersion(gamma24, kDefaultSinceVersion)},
-+         TransferFnVersion{gamma24, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
--         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
--                           kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
-+                           kDefaultSinceVersion}},
-     });
- 
- // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
- constexpr auto kHDRTransferMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
-         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
--          TransferFnVersion(
-+          TransferFnVersion{
-               SkNamedTransferFnExt::kSRGB,
--              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
--          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
--          TransferFnVersion(SkNamedTransferFn::kHLG,
--                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+          TransferFnVersion{SkNamedTransferFn::kHLG,
-+                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
--          TransferFnVersion(
-+          TransferFnVersion{
-               SkNamedTransferFnExt::kSRGBExtended1023Over510,
--              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
-+              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
- 
- // A map from zcr_color_manager_v1 matrix_names enum values to
- // gfx::ColorSpace::MatrixIDs.
- constexpr auto kMatrixMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
-         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
--          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
--          MatrixVersion(
-+          MatrixVersion{
-               gfx::ColorSpace::MatrixID::BT470BG,
--              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
-+              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
--          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
--          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
--          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
--          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
--          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
--          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
--                        kDefaultSinceVersion)}});
-+          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
-+                        kDefaultSinceVersion}}});
- 
- // A map from zcr_color_manager_v1 range_names enum values to
- // gfx::ColorSpace::RangeIDs.
- constexpr auto kRangeMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
-         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
--          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
--                       kDefaultSinceVersion)},
-+          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
-+                       kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
--          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
-+          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
--          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
--                       kDefaultSinceVersion)}});
-+          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
-+                       kDefaultSinceVersion}}});
- 
- zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
-     gfx::ColorSpace::PrimaryID primaryID,
-@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM
- 
- }  // namespace ui::wayland
- 
--#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-\ Kein Zeilenumbruch am Dateiende.
-+#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-diff -up chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-120.0.6099.56/ui/gtk/gtk_ui.cc
---- chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor	2023-11-29 22:40:44.000000000 +0100
-+++ chromium-120.0.6099.56/ui/gtk/gtk_ui.cc	2023-12-03 17:31:25.756420342 +0100
-@@ -1013,11 +1013,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
-diff -up chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
---- chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than	2023-12-19 17:13:15.116949814 +0100
-+++ chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc	2023-12-19 17:27:18.807102716 +0100
-@@ -66,17 +66,17 @@ EmbeddedPermissionPromptPreviouslyDenied
- std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
--      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
-+      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
- 
-   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
--    buttons.emplace_back(
-+    buttons.emplace_back() = {
-         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
--        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId);
-+        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId};
-   } else {
--    buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
--                         ButtonType::kAllow, ui::ButtonStyle::kTonal);
-+    buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-+                         ButtonType::kAllow, ui::ButtonStyle::kTonal};
-   }
-   return buttons;
- }
-diff -up chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
---- chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than	2023-12-19 17:39:17.818834020 +0100
-+++ chromium-121.0.6167.16/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2023-12-19 17:44:15.346337876 +0100
-@@ -61,13 +61,13 @@ EmbeddedPermissionPromptPreviouslyGrante
- std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
--      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
-+      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
- 
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
--      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId);
-+      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
-   return buttons;
- }
- 
-diff -up chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc.than chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc
---- chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc.than	2023-12-19 17:39:17.819834039 +0100
-+++ chromium-121.0.6167.16/components/password_manager/core/browser/password_manager.cc	2023-12-19 17:48:33.144389081 +0100
-@@ -666,7 +666,7 @@ void PasswordManager::OnUserModifiedNonP
-     it->second.last_change = base::Time::Now();
-   } else {
-     possible_usernames_.Put(
--        PossibleUsernameFieldIdentifier(driver_id, renderer_id),
-+        PossibleUsernameFieldIdentifier{driver_id, renderer_id},
-         PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
-                              renderer_id, value, base::Time::Now(), driver_id,
-                              autocomplete_attribute_has_username,
-diff -up chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc.than	2023-12-19 17:39:17.825834156 +0100
-+++ chromium-121.0.6167.16/content/browser/renderer_host/render_frame_host_impl.cc	2023-12-19 17:53:43.153283847 +0100
-@@ -8561,7 +8561,7 @@ void RenderFrameHostImpl::SendFencedFram
-   for (const blink::FencedFrame::ReportingDestination& destination :
-        destinations) {
-     SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(event_type, event_data), destination,
-+        DestinationEnumEvent{event_type, event_data}, destination,
-         attribution_reporting_runtime_features);
-   }
- }
-@@ -8593,7 +8593,7 @@ void RenderFrameHostImpl::SendFencedFram
-   }
- 
-   SendFencedFrameReportingBeaconInternal(
--      DestinationURLEvent(destination_url),
-+      DestinationURLEvent{destination_url},
-       blink::FencedFrame::ReportingDestination::kBuyer,
-       attribution_reporting_runtime_features);
- }
-@@ -8730,7 +8730,7 @@ void RenderFrameHostImpl::MaybeSendFence
-         data = info->data;
-       }
-       initiator_rfh->SendFencedFrameReportingBeaconInternal(
--          AutomaticBeaconEvent(event_type, data), destination,
-+          AutomaticBeaconEvent{event_type, data}, destination,
-           attribution_reporting_features, navigation_request.GetNavigationId());
-     }
-   } else {
-@@ -8741,7 +8741,7 @@ void RenderFrameHostImpl::MaybeSendFence
-     for (blink::FencedFrame::ReportingDestination destination :
-          info->destinations) {
-       initiator_rfh->SendFencedFrameReportingBeaconInternal(
--          AutomaticBeaconEvent(event_type, info->data), destination,
-+          AutomaticBeaconEvent{event_type, info->data}, destination,
-           info->attribution_reporting_runtime_features,
-           navigation_request.GetNavigationId());
-     }
-diff -up chromium-121.0.6167.57/base/nix/mime_util_xdg.cc.me chromium-121.0.6167.57/base/nix/mime_util_xdg.cc
---- chromium-121.0.6167.57/base/nix/mime_util_xdg.cc.me	2024-01-21 16:54:15.261844448 +0100
-+++ chromium-121.0.6167.57/base/nix/mime_util_xdg.cc	2024-01-21 16:55:48.705577424 +0100
-@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap&
-   for (const auto& path : GetXDGDataSearchLocations(env.get())) {
-     FilePath mime_cache = path.Append("mime/mime.cache");
-     if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) {
--      files.emplace_back(mime_cache, info.last_modified);
-+      files.emplace_back() = {mime_cache, info.last_modified};
-     }
-   }
- }
-diff -up chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc.me chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc
---- chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc.me	2024-01-21 18:11:31.397859608 +0100
-+++ chromium-121.0.6167.57/components/performance_manager/worker_watcher.cc	2024-01-21 18:20:07.715415037 +0100
-@@ -239,7 +239,7 @@ void WorkerWatcher::OnWorkerCreated(
-   DCHECK(insertion_result.second);
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&,
-            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
-             AddFrameClientConnection(insertion_result.first->second.get(),
-@@ -248,7 +248,7 @@ void WorkerWatcher::OnWorkerCreated(
-           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
-             ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
-                                          dedicated_worker_token);
--          }),
-+          }},
-       creator);
- }
- 
-@@ -265,7 +265,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
-   // First disconnect the creator's node from this worker node.
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&,
-            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
-             RemoveFrameClientConnection(worker_node.get(),
-@@ -274,7 +274,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
-           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
-             DisconnectDedicatedWorkerClient(worker_node.get(),
-                                             dedicated_worker_token);
--          }),
-+          }},
-       creator);
- 
-   // Disconnect all child workers before destroying the node.
-@@ -446,7 +446,7 @@ void WorkerWatcher::OnControlleeAdded(
-     const std::string& client_uuid,
-     const content::ServiceWorkerClientInfo& client_info) {
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-             // For window clients, it is necessary to wait until the navigation
-             // has committed to a RenderFrameHost.
-@@ -484,7 +484,7 @@ void WorkerWatcher::OnControlleeAdded(
-               ConnectSharedWorkerClient(service_worker_node,
-                                         shared_worker_token);
-             }
--          }),
-+          }},
-       client_info);
- }
- 
-@@ -524,7 +524,7 @@ void WorkerWatcher::OnControlleeRemoved(
-     return;
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-             RemoveFrameClientConnection(worker_node, render_frame_host_id);
-           },
-@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved(
-           },
-           [&, this](blink::SharedWorkerToken shared_worker_token) {
-             DisconnectSharedWorkerClient(worker_node, shared_worker_token);
--          }),
-+          }},
-       client);
- }
- 
-@@ -810,7 +810,7 @@ void WorkerWatcher::ConnectAllServiceWor
- 
-   for (const auto& kv : it->second) {
-     absl::visit(
--        base::Overloaded(
-+        base::Overloaded{
-             [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-               AddFrameClientConnection(service_worker_node,
-                                        render_frame_host_id);
-@@ -822,7 +822,7 @@ void WorkerWatcher::ConnectAllServiceWor
-             [&, this](blink::SharedWorkerToken shared_worker_token) {
-               ConnectSharedWorkerClient(service_worker_node,
-                                         shared_worker_token);
--            }),
-+            }},
-         kv.second);
-   }
- }
-@@ -837,7 +837,7 @@ void WorkerWatcher::DisconnectAllService
- 
-   for (const auto& kv : it->second) {
-     absl::visit(
--        base::Overloaded(
-+        base::Overloaded{
-             [&, this](
-                 const content::GlobalRenderFrameHostId& render_frame_host_id) {
-               RemoveFrameClientConnection(service_worker_node,
-@@ -851,7 +851,7 @@ void WorkerWatcher::DisconnectAllService
-             [&, this](const blink::SharedWorkerToken& shared_worker_token) {
-               DisconnectSharedWorkerClient(service_worker_node,
-                                            shared_worker_token);
--            }),
-+            }},
-         kv.second);
-   }
- }
-diff -up chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc.me chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc
---- chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc.me	2024-01-21 18:40:52.284389286 +0100
-+++ chromium-121.0.6167.57/content/browser/first_party_sets/first_party_set_parser.cc	2024-01-21 18:41:17.276840222 +0100
-@@ -764,7 +764,7 @@ FirstPartySetParser::ParseSetsFromEnterp
-                      context.GetPolicySetsFromList(
-                          policy.FindList(kFirstPartySetPolicyAdditionsField),
-                          PolicySetType::kAddition));
--    return ParsedPolicySetLists(std::move(replacements), std::move(additions));
-+    return ParsedPolicySetLists{std::move(replacements), std::move(additions)};
-   }();
- 
-   context.PostProcessSetLists(set_lists);
-diff -up chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h.me chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h
---- chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h.me	2024-01-21 19:30:00.536387844 +0100
-+++ chromium-121.0.6167.57/content/browser/interest_group/header_direct_from_seller_signals.h	2024-01-21 20:29:50.236287514 +0100
-@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel
- 
-     // The Ad-Auction-Signals response served by `origin`.
-     std::string response_json;
-+    UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { }
-   };
- 
-   // Information from ParseAndFind() calls used by ParseAndFindCompleted.
-diff -up chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.me chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
---- chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.me	2024-01-21 21:58:48.773366301 +0100
-+++ chromium-121.0.6167.57/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc	2024-01-21 22:02:17.956086167 +0100
-@@ -360,10 +360,10 @@ ServiceWorkerMainResourceLoaderIntercept
-   }
-   auto* storage_partition = process->GetStoragePartition();
- 
--  return absl::visit(base::Overloaded([&, this](auto token) {
-+  return absl::visit(base::Overloaded{[&, this](auto token) {
-                        return GetStorageKeyFromWorkerHost(storage_partition,
-                                                           token, origin);
--                     }),
-+                     }},
-                      *worker_token_);
- }
- 
-diff -up chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc.me chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc
---- chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc.me	2024-01-21 22:04:30.446454697 +0100
-+++ chromium-121.0.6167.57/content/browser/service_worker/service_worker_container_host.cc	2024-01-21 22:05:22.847391481 +0100
-@@ -870,7 +870,7 @@ ServiceWorkerContainerHost::GetClientTyp
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-   DCHECK(client_info_);
-   return absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [](GlobalRenderFrameHostId render_frame_host_id) {
-             return blink::mojom::ServiceWorkerClientType::kWindow;
-           },
-@@ -879,7 +879,7 @@ ServiceWorkerContainerHost::GetClientTyp
-           },
-           [](blink::SharedWorkerToken shared_worker_token) {
-             return blink::mojom::ServiceWorkerClientType::kSharedWorker;
--          }),
-+          }},
-       *client_info_);
- }
- 
-diff -up chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc.me chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc
---- chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc.me	2024-01-21 22:37:00.969416148 +0100
-+++ chromium-121.0.6167.57/content/browser/worker_host/dedicated_worker_host.cc	2024-01-21 22:38:07.754528335 +0100
-@@ -251,7 +251,7 @@ void DedicatedWorkerHost::StartScriptLoa
-   RenderFrameHostImpl* creator_render_frame_host = nullptr;
-   DedicatedWorkerHost* creator_worker = nullptr;
- 
--  absl::visit(base::Overloaded(
-+  absl::visit(base::Overloaded{
-                   [&](const GlobalRenderFrameHostId& render_frame_host_id) {
-                     creator_render_frame_host =
-                         RenderFrameHostImpl::FromID(render_frame_host_id);
-@@ -259,7 +259,7 @@ void DedicatedWorkerHost::StartScriptLoa
-                   [&](blink::DedicatedWorkerToken dedicated_worker_token) {
-                     creator_worker = service_->GetDedicatedWorkerHostFromToken(
-                         dedicated_worker_token);
--                  }),
-+                  }},
-               creator_);
- 
-   if (!creator_render_frame_host && !creator_worker) {
-diff -up chromium-121.0.6167.139/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.me chromium-121.0.6167.139/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
---- chromium-121.0.6167.139/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.me	2024-02-02 21:07:42.852096466 +0100
-+++ chromium-121.0.6167.139/chrome/browser/ui/autofill/autofill_context_menu_manager.cc	2024-02-02 21:07:49.336212697 +0100
-@@ -249,8 +249,8 @@ void AutofillContextMenuManager::Execute
-     AutofillManager& manager) {
-   auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
-   driver.browser_events().RendererShouldTriggerSuggestions(
--      FieldGlobalId(driver.GetFrameToken(),
--                    FieldRendererId(params_.field_renderer_id)),
-+      FieldGlobalId{driver.GetFrameToken(),
-+                    FieldRendererId(params_.field_renderer_id)},
-       AutofillSuggestionTriggerSource::kManualFallbackPayments);
- }
- 
-diff -up chromium-121.0.6167.139/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.me chromium-121.0.6167.139/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
---- chromium-121.0.6167.139/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.me	2024-02-02 22:24:28.167153031 +0100
-+++ chromium-121.0.6167.139/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-02-02 22:26:43.994144340 +0100
-@@ -102,7 +102,7 @@ AddOptionsFromMojo(
-                      ConvertPathToUrl(sub_app->manifest_id_path, origin));
-     ASSIGN_OR_RETURN(GURL install_url,
-                      ConvertPathToUrl(sub_app->install_url_path, origin));
--    sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
-+    sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
-   }
-   return sub_apps;
- }
-@@ -389,7 +389,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
-         base::BindOnce(
-             [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
-                webapps::InstallResultCode result_code) {
--              return SubAppInstallResult(manifest_id, app_id, result_code);
-+              return SubAppInstallResult{manifest_id, app_id, result_code};
-             },
-             manifest_id)
-             .Then(install_results_collector));

diff --git a/chromium-121-typename.patch b/chromium-121-typename.patch
deleted file mode 100644
index e83e62c..0000000
--- a/chromium-121-typename.patch
+++ /dev/null
@@ -1,259 +0,0 @@
---- chromium-120.0.6099.56/base/containers/map_util.h.me	2023-12-02 19:00:19.696801563 +0100
-+++ chromium-120.0.6099.56/base/containers/map_util.h	2023-12-02 19:00:47.049337547 +0100
-@@ -42,7 +42,7 @@
- template <typename Map,
-           typename Key,
-           typename MappedElementType =
--              std::pointer_traits<internal::MappedType<Map>>::element_type>
-+              typename std::pointer_traits<internal::MappedType<Map>>::element_type>
- constexpr const MappedElementType* FindPtrOrNull(const Map& map,
-                                                  const Key& key) {
-   auto it = map.find(key);
-@@ -58,7 +58,7 @@
- template <typename Map,
-           typename Key,
-           typename MappedElementType =
--              std::pointer_traits<internal::MappedType<Map>>::element_type>
-+              typename std::pointer_traits<internal::MappedType<Map>>::element_type>
- constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) {
-   auto it = map.find(key);
-   return it != map.end() ? std::to_address(it->second) : nullptr;
-diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc
---- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me	2023-06-17 14:50:56.342591702 +0200
-+++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc	2023-06-17 14:57:48.024377375 +0200
-@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item)
- // Helper to get an iterator to the last element in the cache. The cache
- // must not be empty.
- template <typename Item>
--SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
-+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
-   CHECK(!cache.empty());
-   auto it = cache.end();
-   return std::prev(it);
-@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM
- }
- 
- template <typename Id, typename Item>
--SortedItems<Item>::iterator
-+typename SortedItems<Item>::iterator
- DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
--    SortedItems<Item>::iterator iter,
-+    typename SortedItems<Item>::iterator iter,
-     SortedItems<Item>& cache,
-     IterMap<Id, Item>& iter_map) {
-   CHECK(iter != cache.end());
-diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h
---- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me	2023-06-18 21:52:53.515625237 +0200
-+++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h	2023-06-18 21:53:06.881881293 +0200
-@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model
-   void SendForBatchExecution(
-       BatchExecutionCallback callback_on_complete,
-       base::TimeTicks start_time,
--      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-+      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-       override {
-     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
---- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me	2023-06-19 10:03:32.319218678 +0200
-+++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc	2023-06-19 10:04:12.023942232 +0200
-@@ -169,7 +169,7 @@ class HTMLFastPathParser {
-   using Span = base::span<const Char>;
-   using USpan = base::span<const UChar>;
-   // 32 matches that used by HTMLToken::Attribute.
--  typedef std::conditional<std::is_same_v<Char, UChar>,
-+  typedef typename std::conditional<std::is_same_v<Char, UChar>,
-                            UCharLiteralBuffer<32>,
-                            LCharLiteralBuffer<32>>::type LiteralBufferType;
-   typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
-diff -up chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h
---- chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me	2023-08-02 16:18:30.380108125 +0200
-+++ chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h	2023-08-02 16:20:59.660024578 +0200
-@@ -127,10 +127,10 @@ class CONTENT_EXPORT WebUIBrowserInterfa
-   //
-   // TODO(crbug.com/1407936): Point to WebUIJsBridge documentation.
-   template <typename ControllerType>
--  JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
-+  typename JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
-     using Traits = JsBridgeTraits<ControllerType>;
--    using Interface = Traits::Interface;
--    using JsBridgeBinderInitializer = Traits::BinderInitializer;
-+    using Interface = typename Traits::Interface;
-+    using JsBridgeBinderInitializer = typename Traits::BinderInitializer;
- 
-     // WebUIController::GetType() requires an instantiated WebUIController
-     // (because it's a virtual method and can't be static). Here we only have
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
---- chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me	2023-08-02 20:41:23.984729462 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h	2023-08-02 20:41:53.737583093 +0200
-@@ -270,8 +270,8 @@ class CORE_EXPORT ObjectPaintPropertiesS
-       NodeList& nodes,
-       NodeId node_id,
-       const ParentType& parent,
--      NodeType::State&& state,
--      const NodeType::AnimationState& animation_state =
-+      typename NodeType::State&& state,
-+      const typename NodeType::AnimationState& animation_state =
-           NodeType::AnimationState()) {
-     // First, check if we need to add a new node.
-     if (!nodes.HasField(node_id)) {
-diff -up chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h
---- chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me	2023-09-15 10:22:51.889698402 +0200
-+++ chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h	2023-09-15 10:28:26.702716224 +0200
-@@ -234,7 +234,7 @@ class TFLiteModelExecutor : public Model
-   // Starts the synchronous execution of the model. Returns model outputs.
-   // Model needs to be loaded. Synchronous calls do not load or unload model.
-   std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
--      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-+      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
-       override {
-     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -389,7 +389,7 @@ class TFLiteModelExecutor : public Model
-   // executes it on the model execution thread.
-   void LoadModelFileAndBatchExecute(
-       BatchExecutionCallback callback_on_complete,
--      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
-+      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
-     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- 
-@@ -406,7 +406,7 @@ class TFLiteModelExecutor : public Model
- 
-   // Batch executes the loaded model for inputs.
-   void BatchExecuteLoadedModel(
--      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-+      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-       std::vector<absl::optional<OutputType>>* outputs) {
-     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -466,7 +466,7 @@ class TFLiteModelExecutor : public Model
-   // Unloads the model if needed.
-   void BatchExecuteLoadedModelAndRunCallback(
-       BatchExecutionCallback callback_on_complete,
--      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-+      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
-       ExecutionStatus execution_status) {
-     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc
---- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me	2023-09-15 17:20:22.550657586 +0200
-+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc	2023-09-15 17:24:11.396716734 +0200
-@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
-   RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
-   RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
- 
--  void Start(ProtoFetcher<Response>::Callback callback) override {
-+  void Start(typename ProtoFetcher<Response>::Callback callback) override {
-     callback_ = std::move(callback);
-     Retry();
-   }
-@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
-   }
- 
-   // Client callback.
--  ProtoFetcher<Response>::Callback callback_;
-+  typename ProtoFetcher<Response>::Callback callback_;
- 
-   // Retry controls.
-   base::OneShotTimer timer_;
-@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
- template <typename Request, typename Response>
- void ParallelFetchManager<Request, Response>::Fetch(
-     const Request& request,
--    Fetcher::Callback callback) {
-+    typename Fetcher::Callback callback) {
-   CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
-   KeyType key = requests_in_flight_.Add(MakeFetcher(request));
-   requests_in_flight_.Lookup(key)->Start(
-diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h
---- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me	2023-09-15 17:20:56.540460391 +0200
-+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h	2023-09-15 17:22:18.246237817 +0200
-@@ -165,10 +165,10 @@ class ParallelFetchManager {
- 
-   // Starts the fetch. Underlying fetcher is stored internally, and will be
-   // cleaned up after finish or when this manager is destroyed.
--  void Fetch(const Request& request, Fetcher::Callback callback);
-+  void Fetch(const Request& request, typename Fetcher::Callback callback);
- 
-  private:
--  using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
-+  using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
- 
-   // Remove fetcher under key from requests_in_flight_.
-   void Remove(KeyType key);
-diff -up chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h
---- chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me	2023-12-04 00:29:35.197209538 +0100
-+++ chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h	2023-12-04 00:30:24.436233249 +0100
-@@ -220,7 +220,7 @@ class PairAsyncIterable {
-  private:
-   virtual IterationSource* CreateIterationSource(
-       ScriptState* script_state,
--      IterationSource::Kind kind,
-+      typename IterationSource::Kind kind,
-       ExceptionState& exception_state) = 0;
- };
- 
-@@ -262,7 +262,7 @@ class ValueAsyncIterable {
-  private:
-   virtual IterationSource* CreateIterationSource(
-       ScriptState* script_state,
--      IterationSource::Kind kind,
-+      typename IterationSource::Kind kind,
-       ExceptionState& exception_state) = 0;
- };
- 
-diff -up chromium-121.0.6167.57/base/functional/bind_internal.h.me chromium-121.0.6167.57/base/functional/bind_internal.h
---- chromium-121.0.6167.57/base/functional/bind_internal.h.me	2024-01-21 16:10:09.809037581 +0100
-+++ chromium-121.0.6167.57/base/functional/bind_internal.h	2024-01-21 16:46:33.759397303 +0100
-@@ -1533,11 +1533,11 @@ template <int i,
-           typename Param>
- struct ParamCanBeBound {
-  private:
--  using UnwrappedParam = BindArgument<i>::template ForwardedAs<
-+  using UnwrappedParam = typename BindArgument<i>::template ForwardedAs<
-       Unwrapped>::template ToParamWithType<Param>;
--  using ParamStorage = BindArgument<i>::template ToParamWithType<
-+  using ParamStorage = typename BindArgument<i>::template ToParamWithType<
-       Param>::template StoredAs<Storage>;
--  using BoundStorage =
-+  using BoundStorage = typename
-       BindArgument<i>::template BoundAs<Arg>::template StoredAs<Storage>;
- 
-   // We forbid callbacks from using raw_ptr as a parameter. However, we allow
-diff -up chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h.me chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h
---- chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h.me	2024-01-21 17:23:37.786606428 +0100
-+++ chromium-121.0.6167.57/mojo/public/cpp/bindings/array_traits.h	2024-01-21 17:23:58.582127103 +0100
-@@ -90,7 +90,7 @@ template <typename Container>
-     { c[i] } -> std::same_as<typename Container::reference>;
-   }
- struct ArrayTraits<Container> {
--  using Element = Container::value_type;
-+  using Element = typename Container::value_type;
- 
-   // vector-like containers have no built-in null.
-   static bool IsNull(const Container& c) { return false; }
-diff -up chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h.me chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h
---- chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h.me	2024-01-21 17:33:40.030897838 +0100
-+++ chromium-121.0.6167.57/components/optimization_guide/core/model_execution/model_execution_util.h	2024-01-21 17:34:11.518705266 +0100
-@@ -25,7 +25,7 @@ void SetExecutionRequestTemplate(
- 
-   // Request is set by the feature and should always be typed.
-   auto typed_request =
--      static_cast<const FeatureType::Request&>(request_metadata);
-+      static_cast<const typename FeatureType::Request&>(request_metadata);
-   *(logging_data->mutable_request_data()) = typed_request;
- }
- 
-diff -up chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h.me chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h
---- chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h.me	2024-01-21 17:32:42.367417619 +0100
-+++ chromium-121.0.6167.57/components/optimization_guide/core/model_quality/model_quality_log_entry.h	2024-01-21 17:33:25.732531198 +0100
-@@ -29,7 +29,7 @@ class ModelQualityLogEntry {
-   }
- 
-   template <typename FeatureType>
--  FeatureType::Quality* quality_data() {
-+  typename FeatureType::Quality* quality_data() {
-     return FeatureType::GetLoggingData(*log_ai_data_request_)
-         ->mutable_quality_data();
-   }

diff --git a/chromium-121-workaround_clang_bug-structured_binding.patch b/chromium-121-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index 192b069..0000000
--- a/chromium-121-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,53 +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 --git a/chromium-122-el7-default-constructor-involving-anonymous-union.patch b/chromium-122-el7-default-constructor-involving-anonymous-union.patch
new file mode 100644
index 0000000..6e3cdf8
--- /dev/null
+++ b/chromium-122-el7-default-constructor-involving-anonymous-union.patch
@@ -0,0 +1,24 @@
+diff -up chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc
+--- chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc	2024-02-25 10:52:16.071602503 +0100
+@@ -12,7 +12,7 @@
+ 
+ namespace variations {
+ 
+-UIStringOverrider::UIStringOverrider() = default;
++UIStringOverrider::UIStringOverrider() {}
+ 
+ UIStringOverrider::UIStringOverrider(base::span<const uint32_t> resource_hashes,
+                                      base::span<const int> resource_indices)
+diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union	2024-02-25 10:52:16.070602478 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc	2024-02-25 11:20:36.583148226 +0100
+@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi
+ 
+ }  // namespace
+ 
+-HeaderDirectFromSellerSignals::Result::Result() = default;
++HeaderDirectFromSellerSignals::Result::Result() {}
+ 
+ HeaderDirectFromSellerSignals::Result::Result(
+     std::optional<std::string> seller_signals,

diff --git a/chromium-122-el7-extra-operator.patch b/chromium-122-el7-extra-operator.patch
new file mode 100644
index 0000000..0f65681
--- /dev/null
+++ b/chromium-122-el7-extra-operator.patch
@@ -0,0 +1,11 @@
+diff -up chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h
+--- chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me	2024-02-24 13:02:58.931586003 +0100
++++ chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h	2024-02-24 13:03:33.152251546 +0100
+@@ -82,6 +82,7 @@ struct FxPartitionAllocAllocator {
+   }
+ 
+   // There's no state, so they are all the same,
++  bool operator==(const FxPartitionAllocAllocator&) const { return true; }
+   bool operator==(const FxPartitionAllocAllocator& that) { return true; }
+   bool operator!=(const FxPartitionAllocAllocator& that) { return false; }
+ };

diff --git a/chromium-122-el7-inline-function.patch b/chromium-122-el7-inline-function.patch
new file mode 100644
index 0000000..fa3689c
--- /dev/null
+++ b/chromium-122-el7-inline-function.patch
@@ -0,0 +1,62 @@
+
+ld.lld: error: undefined symbol: unsigned long cc::PaintOpWriter::SerializedSize<unsigned long>()
+
+diff -up chromium-122.0.6261.69/cc/paint/paint_op_writer.h.me chromium-122.0.6261.69/cc/paint/paint_op_writer.h
+--- chromium-122.0.6261.69/cc/paint/paint_op_writer.h.me	2024-02-25 12:04:07.008177603 +0100
++++ chromium-122.0.6261.69/cc/paint/paint_op_writer.h	2024-02-25 12:14:45.972117522 +0100
+@@ -112,7 +112,17 @@ class CC_PAINT_EXPORT PaintOpWriter {
+ 
+  private:
+   template <typename T>
+-  static constexpr size_t SerializedSizeSimple();
++  static constexpr size_t SerializedSizeSimple() {
++    static_assert(!std::is_pointer_v<T>);
++    return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
++  }
++
++  // size_t is always serialized as two uint32_ts to make the serialized result
++  // portable between 32bit and 64bit processes.
++  template <>
++    constexpr size_t SerializedSizeSimple<size_t>() {
++    return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
++  }
+ 
+  public:
+   // SerializedSize() returns the maximum serialized size of the given type or
+@@ -123,7 +133,10 @@ class CC_PAINT_EXPORT PaintOpWriter {
+   // deserialization, and make it possible to allow dynamic sizing for some
+   // data types (see the specialized/overloaded functions).
+   template <typename T>
+-  static constexpr size_t SerializedSize();
++  static constexpr size_t SerializedSize() {
++    static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
++    return SerializedSizeSimple<T>();
++  }
+   template <typename T>
+   static constexpr size_t SerializedSize(const T& data);
+   static size_t SerializedSize(const PaintImage& image);
+@@ -439,24 +452,6 @@ class CC_PAINT_EXPORT PaintOpWriter {
+ };
+ 
+ template <typename T>
+-constexpr size_t PaintOpWriter::SerializedSizeSimple() {
+-  static_assert(!std::is_pointer_v<T>);
+-  return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
+-}
+-
+-// size_t is always serialized as two uint32_ts to make the serialized result
+-// portable between 32bit and 64bit processes.
+-template <>
+-constexpr size_t PaintOpWriter::SerializedSizeSimple<size_t>() {
+-  return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
+-}
+-
+-template <typename T>
+-constexpr size_t PaintOpWriter::SerializedSize() {
+-  static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
+-  return SerializedSizeSimple<T>();
+-}
+-template <typename T>
+ constexpr size_t PaintOpWriter::SerializedSize(const T& data) {
+   return SerializedSizeSimple<T>();
+ }

diff --git a/chromium-122-no_matching_constructor.patch b/chromium-122-no_matching_constructor.patch
new file mode 100644
index 0000000..58efe90
--- /dev/null
+++ b/chromium-122-no_matching_constructor.patch
@@ -0,0 +1,1116 @@
+diff -up chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc
+--- chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than	2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc	2024-02-24 13:13:32.484503735 +0100
+@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo
+     // The sample-record could be for any sparse histogram. Add the reference
+     // to the appropriate collection for later use.
+     if (found_id == match_id) {
+-      found_records.emplace_back(ref, value);
++      found_records.emplace_back() = {ref, value};
+       found = true;
+     } else {
+       std::vector<ReferenceAndSample>* samples =
+           GetSampleMapRecordsWhileLocked(found_id);
+       CHECK(samples);
+-      samples->emplace_back(ref, value);
++      samples->emplace_back() = {ref, value};
+     }
+   }
+ 
+diff -up chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than chromium-122.0.6261.69/base/nix/mime_util_xdg.cc
+--- chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than	2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/nix/mime_util_xdg.cc	2024-02-24 13:13:44.158712756 +0100
+@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap&
+   for (const auto& path : GetXDGDataSearchLocations(env.get())) {
+     FilePath mime_cache = path.Append("mime/mime.cache");
+     if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) {
+-      files.emplace_back(mime_cache, info.last_modified);
++      files.emplace_back() = {mime_cache, info.last_modified};
+     }
+   }
+ }
+diff -up chromium-122.0.6261.69/base/trace_event/trace_log.cc.than chromium-122.0.6261.69/base/trace_event/trace_log.cc
+--- chromium-122.0.6261.69/base/trace_event/trace_log.cc.than	2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/trace_event/trace_log.cc	2024-02-24 13:13:32.484503735 +0100
+@@ -2198,8 +2198,8 @@ void TraceLog::SetTraceBufferForTesting(
+ #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+   AutoLock lock(track_event_lock_);
+-  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+-                                     args.backend_type);
++  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++                                     args.backend_type};
+ }
+ 
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than	2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc	2024-02-24 13:13:32.485503752 +0100
+@@ -252,8 +252,8 @@ void OneTimePermissionProvider::OnSuspen
+ 
+       while (rule_iterator && rule_iterator->HasNext()) {
+         auto rule = rule_iterator->Next();
+-        patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
+-                                        rule->secondary_pattern);
++        patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
++                                        rule->secondary_pattern};
+         permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
+             setting_type,
+             permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
+@@ -355,8 +355,8 @@ void OneTimePermissionProvider::DeleteEn
+     auto rule = rule_iterator->Next();
+     if (rule->primary_pattern.Matches(origin_gurl) &&
+         rule->secondary_pattern.Matches(origin_gurl)) {
+-      patterns_to_delete.emplace_back(
+-          content_setting_type, rule->primary_pattern, rule->secondary_pattern);
++      patterns_to_delete.emplace_back() = {
++          content_setting_type, rule->primary_pattern, rule->secondary_pattern};
+       permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
+           content_setting_type, trigger_event);
+     }
+diff -up chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than	2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2024-02-24 13:13:32.485503752 +0100
+@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
+   // TODO(crbug.com/1445072): Add actual domains with attribute names.
+   profile_attributes->insert(std::make_pair(
+       "supported.test",
+-      SAMLProfileAttributes("placeholderName", "placeholderDomain",
+-                            "placeholderToken")));
++      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
++                            "placeholderToken"}));
+ 
+   // Extract domains and attributes from the command line switch.
+   const base::CommandLine& command_line =
+diff -up chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than	2024-02-22 22:42:54.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc	2024-02-24 13:13:44.159712774 +0100
+@@ -283,8 +283,8 @@ void AutofillContextMenuManager::Execute
+     AutofillManager& manager) {
+   auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
+   driver.browser_events().RendererShouldTriggerSuggestions(
+-      FieldGlobalId(driver.GetFrameToken(),
+-                    FieldRendererId(params_.field_renderer_id)),
++      FieldGlobalId{driver.GetFrameToken(),
++                    FieldRendererId(params_.field_renderer_id)},
+       AutofillSuggestionTriggerSource::kManualFallbackPayments);
+ }
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2024-02-24 13:13:32.485503752 +0100
+@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
+               alternative_nav_match);
+ 
+   // Store the details necessary to open the omnibox match via browser commands.
+-  location_bar_->set_navigation_params(LocationBar::NavigationParams(
++  location_bar_->set_navigation_params(LocationBar::NavigationParams{
+       destination_url, disposition, transition, match_selection_timestamp,
+       destination_url_entered_without_scheme,
+-      destination_url_entered_with_http_scheme));
++      destination_url_entered_with_http_scheme});
+ 
+   if (browser_) {
+     auto navigation = chrome::OpenCurrentURL(browser_);
+diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc.than chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2024-02-24 13:13:32.486503770 +0100
+@@ -60,12 +60,12 @@ std::vector<EmbeddedPermissionPromptAskV
+ EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
+-    buttons.emplace_back(
++    buttons.emplace_back() = {
+         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
+-        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
++        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
+   }
+-  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+-                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId);
++  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
++                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId};
+   return buttons;
+ }
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2024-02-24 13:13:32.486503770 +0100
+@@ -87,6 +87,7 @@ class EmbeddedPermissionPromptBaseView :
+   struct RequestLineConfiguration {
+     const raw_ptr<const gfx::VectorIcon> icon;
+     std::u16string message;
++    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+   };
+ 
+   struct ButtonConfiguration {
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2024-02-24 13:13:32.486503770 +0100
+@@ -64,8 +64,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
+-                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
++  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
++                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
+   return buttons;
+ }
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc	2024-02-24 13:13:44.153712667 +0100
+@@ -79,17 +79,17 @@ EmbeddedPermissionPromptPreviouslyDenied
+ std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
+-      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
+ 
+   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
+-    buttons.emplace_back(
++    buttons.emplace_back() = {
+         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
+-        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId);
++        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId};
+   } else {
+-    buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+-                         ButtonType::kAllow, ui::ButtonStyle::kTonal);
++    buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
++                         ButtonType::kAllow, ui::ButtonStyle::kTonal};
+   }
+   return buttons;
+ }
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2024-02-24 13:13:44.153712667 +0100
+@@ -74,12 +74,12 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
+-      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
+ 
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+-      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId);
++      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
+   return buttons;
+ }
+diff -up chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than	2024-02-22 22:42:55.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-02-24 13:13:44.159712774 +0100
+@@ -102,7 +102,7 @@ AddOptionsFromMojo(
+                      ConvertPathToUrl(sub_app->manifest_id_path, origin));
+     ASSIGN_OR_RETURN(GURL install_url,
+                      ConvertPathToUrl(sub_app->install_url_path, origin));
+-    sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
++    sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
+   }
+   return sub_apps;
+ }
+@@ -391,7 +391,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
+         base::BindOnce(
+             [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
+                webapps::InstallResultCode result_code) {
+-              return SubAppInstallResult(manifest_id, app_id, result_code);
++              return SubAppInstallResult{manifest_id, app_id, result_code};
+             },
+             manifest_id)
+             .Then(install_results_collector));
+diff -up chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc
+--- chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than	2024-02-22 22:42:56.000000000 +0100
++++ chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc	2024-02-24 13:13:32.486503770 +0100
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
+diff -up chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc
+--- chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than	2024-02-22 22:43:02.000000000 +0100
++++ chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc	2024-02-24 13:13:44.154712685 +0100
+@@ -673,7 +673,7 @@ void PasswordManager::OnUserModifiedNonP
+     it->second.last_change = base::Time::Now();
+   } else {
+     possible_usernames_.Put(
+-        PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++        PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+         PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+                              renderer_id, value, base::Time::Now(), driver_id,
+                              autocomplete_attribute_has_username,
+diff -up chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc
+--- chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than	2024-02-22 22:43:02.000000000 +0100
++++ chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc	2024-02-24 13:13:44.158712756 +0100
+@@ -239,7 +239,7 @@ void WorkerWatcher::OnWorkerCreated(
+   DCHECK(insertion_result.second);
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&,
+            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+             AddFrameClientConnection(insertion_result.first->second.get(),
+@@ -248,7 +248,7 @@ void WorkerWatcher::OnWorkerCreated(
+           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+             ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
+                                          dedicated_worker_token);
+-          }),
++          }},
+       creator);
+ }
+ 
+@@ -265,7 +265,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+   // First disconnect the creator's node from this worker node.
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&,
+            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+             RemoveFrameClientConnection(worker_node.get(),
+@@ -274,7 +274,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+             DisconnectDedicatedWorkerClient(worker_node.get(),
+                                             dedicated_worker_token);
+-          }),
++          }},
+       creator);
+ 
+   // Disconnect all child workers before destroying the node.
+@@ -446,7 +446,7 @@ void WorkerWatcher::OnControlleeAdded(
+     const std::string& client_uuid,
+     const content::ServiceWorkerClientInfo& client_info) {
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+             // For window clients, it is necessary to wait until the navigation
+             // has committed to a RenderFrameHost.
+@@ -484,7 +484,7 @@ void WorkerWatcher::OnControlleeAdded(
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+             }
+-          }),
++          }},
+       client_info);
+ }
+ 
+@@ -524,7 +524,7 @@ void WorkerWatcher::OnControlleeRemoved(
+     return;
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+             RemoveFrameClientConnection(worker_node, render_frame_host_id);
+           },
+@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved(
+           },
+           [&, this](blink::SharedWorkerToken shared_worker_token) {
+             DisconnectSharedWorkerClient(worker_node, shared_worker_token);
+-          }),
++          }},
+       client);
+ }
+ 
+@@ -810,7 +810,7 @@ void WorkerWatcher::ConnectAllServiceWor
+ 
+   for (const auto& kv : it->second) {
+     absl::visit(
+-        base::Overloaded(
++        base::Overloaded{
+             [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+               AddFrameClientConnection(service_worker_node,
+                                        render_frame_host_id);
+@@ -822,7 +822,7 @@ void WorkerWatcher::ConnectAllServiceWor
+             [&, this](blink::SharedWorkerToken shared_worker_token) {
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+@@ -837,7 +837,7 @@ void WorkerWatcher::DisconnectAllService
+ 
+   for (const auto& kv : it->second) {
+     absl::visit(
+-        base::Overloaded(
++        base::Overloaded{
+             [&, this](
+                 const content::GlobalRenderFrameHostId& render_frame_host_id) {
+               RemoveFrameClientConnection(service_worker_node,
+@@ -851,7 +851,7 @@ void WorkerWatcher::DisconnectAllService
+             [&, this](const blink::SharedWorkerToken& shared_worker_token) {
+               DisconnectSharedWorkerClient(service_worker_node,
+                                            shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+diff -up chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2024-02-24 13:13:44.151712632 +0100
+@@ -1573,7 +1573,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+ 
+       // Issue readbacks from the surfaces:
+       for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
+-        SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
++        SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
+         SkImageInfo dst_info = SkImageInfo::Make(
+             size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
+             kUnpremul_SkAlphaType);
+diff -up chromium-122.0.6261.69/content/browser/download/save_package.cc.than chromium-122.0.6261.69/content/browser/download/save_package.cc
+--- chromium-122.0.6261.69/content/browser/download/save_package.cc.than	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/download/save_package.cc	2024-02-24 13:13:44.151712632 +0100
+@@ -801,8 +801,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> files;
+     for (auto& item : saved_success_items_) {
+-      files.emplace_back(item.second->full_path(), item.second->url(),
+-                         item.second->referrer().url);
++      files.emplace_back() = {item.second->full_path(), item.second->url(),
++                         item.second->referrer().url};
+     }
+     download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
+   }
+diff -up chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc
+--- chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc	2024-02-24 13:13:44.158712756 +0100
+@@ -773,7 +773,7 @@ FirstPartySetParser::ParseSetsFromEnterp
+                      context.GetPolicySetsFromList(
+                          policy.FindList(kFirstPartySetPolicyAdditionsField),
+                          PolicySetType::kAddition));
+-    return ParsedPolicySetLists(std::move(replacements), std::move(additions));
++    return ParsedPolicySetLists{std::move(replacements), std::move(additions)};
+   }();
+ 
+   context.PostProcessSetLists(set_lists);
+diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h
+--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h	2024-02-24 13:13:44.158712756 +0100
+@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel
+ 
+     // The Ad-Auction-Signals response served by `origin`.
+     std::string response_json;
++    UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { }
+   };
+ 
+   // Information from ParseAndFind() calls used by ParseAndFindCompleted.
+diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than	2024-02-22 22:43:05.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc	2024-02-24 13:13:44.152712649 +0100
+@@ -3461,10 +3461,10 @@ DoGetKAnonymityData(sql::Database& db,
+ 
+   std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
+   while (interest_group_kanon_query.Step()) {
+-    k_anon_data.emplace_back(
++    k_anon_data.emplace_back() = {
+         /*key=*/interest_group_kanon_query.ColumnString(0),
+         /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
+-        /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
++        /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
+   }
+   if (!interest_group_kanon_query.Succeeded()) {
+     return std::nullopt;
+diff -up chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than	2024-02-24 13:13:44.157712739 +0100
++++ chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc	2024-02-24 13:18:39.480119447 +0100
+@@ -8632,7 +8632,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data), destination);
++        DestinationEnumEvent{event_type, event_data}, destination);
+   }
+ }
+ 
+@@ -8661,7 +8661,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url),
++      DestinationURLEvent{destination_url},
+       blink::FencedFrame::ReportingDestination::kBuyer);
+ }
+ 
+@@ -8792,7 +8792,7 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          AutomaticBeaconEvent(event_type, data), destination,
++          AutomaticBeaconEvent{event_type, data}, destination,
+           navigation_request.GetNavigationId());
+     }
+   } else {
+@@ -8803,7 +8803,7 @@ void RenderFrameHostImpl::MaybeSendFence
+     for (blink::FencedFrame::ReportingDestination destination :
+          info->destinations) {
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          AutomaticBeaconEvent(event_type, info->data), destination,
++          AutomaticBeaconEvent{event_type, info->data}, destination,
+           navigation_request.GetNavigationId());
+     }
+   }
+diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc
+--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than	2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc	2024-02-24 13:13:44.159712774 +0100
+@@ -870,7 +870,7 @@ ServiceWorkerContainerHost::GetClientTyp
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+   DCHECK(client_info_);
+   return absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [](GlobalRenderFrameHostId render_frame_host_id) {
+             return blink::mojom::ServiceWorkerClientType::kWindow;
+           },
+@@ -879,7 +879,7 @@ ServiceWorkerContainerHost::GetClientTyp
+           },
+           [](blink::SharedWorkerToken shared_worker_token) {
+             return blink::mojom::ServiceWorkerClientType::kSharedWorker;
+-          }),
++          }},
+       *client_info_);
+ }
+ 
+diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
+--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than	2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc	2024-02-24 13:13:44.159712774 +0100
+@@ -363,10 +363,10 @@ ServiceWorkerMainResourceLoaderIntercept
+   }
+   auto* storage_partition = process->GetStoragePartition();
+ 
+-  return absl::visit(base::Overloaded([&, this](auto token) {
++  return absl::visit(base::Overloaded{[&, this](auto token) {
+                        return GetStorageKeyFromWorkerHost(storage_partition,
+                                                           token, origin);
+-                     }),
++                     }},
+                      *worker_token_);
+ }
+ 
+diff -up chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc
+--- chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than	2024-02-22 22:43:06.000000000 +0100
++++ chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc	2024-02-24 13:13:44.159712774 +0100
+@@ -252,7 +252,7 @@ void DedicatedWorkerHost::StartScriptLoa
+   RenderFrameHostImpl* creator_render_frame_host = nullptr;
+   DedicatedWorkerHost* creator_worker = nullptr;
+ 
+-  absl::visit(base::Overloaded(
++  absl::visit(base::Overloaded{
+                   [&](const GlobalRenderFrameHostId& render_frame_host_id) {
+                     creator_render_frame_host =
+                         RenderFrameHostImpl::FromID(render_frame_host_id);
+@@ -260,7 +260,7 @@ void DedicatedWorkerHost::StartScriptLoa
+                   [&](blink::DedicatedWorkerToken dedicated_worker_token) {
+                     creator_worker = service_->GetDedicatedWorkerHostFromToken(
+                         dedicated_worker_token);
+-                  }),
++                  }},
+               creator_);
+ 
+   if (!creator_render_frame_host && !creator_worker) {
+diff -up chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than chromium-122.0.6261.69/net/dns/host_resolver_cache.cc
+--- chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than	2024-02-22 22:43:17.000000000 +0100
++++ chromium-122.0.6261.69/net/dns/host_resolver_cache.cc	2024-02-24 13:13:44.152712649 +0100
+@@ -368,7 +368,7 @@ void HostResolverCache::Set(
+ 
+   std::string domain_name = result->domain_name();
+   entries_.emplace(
+-      Key(std::move(domain_name), network_anonymization_key),
++      Key{std::move(domain_name), network_anonymization_key},
+       Entry(std::move(result), source, secure, staleness_generation));
+ 
+   if (entries_.size() > max_entries_) {
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h.than	2024-02-22 22:43:25.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h	2024-02-24 13:13:44.152712649 +0100
+@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
+       Color::ColorSpace color_interpolation_space,
+       absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
+     return base::AdoptRef(new FontPalette(
+-        start, end, NonNormalizedPercentages(start_percentage, end_percentage),
++        start, end, NonNormalizedPercentages{start_percentage, end_percentage},
+         normalized_percentage, alpha_multiplier, color_interpolation_space,
+         hue_interpolation_method));
+   }
+@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
+       double normalized_percentage) {
+     double end_percentage = normalized_percentage * 100.0;
+     double start_percentage = 100.0 - end_percentage;
+-    return NonNormalizedPercentages(start_percentage, end_percentage);
++    return NonNormalizedPercentages{start_percentage, end_percentage};
+   }
+ 
+   double GetAlphaMultiplier() const {
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than	2024-02-22 22:43:25.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2024-02-24 13:13:44.152712649 +0100
+@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
+         color_interpolation_space, hue_interpolation_method, start_color,
+         end_color, percentage, alpha_multiplier);
+ 
+-    FontPalette::FontPaletteOverride result_color_record(i, result_color);
++    FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
+     result_color_records.push_back(result_color_record);
+   }
+   return result_color_records;
+diff -up chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
+--- chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than	2024-02-22 22:45:02.000000000 +0100
++++ chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp	2024-02-24 13:13:44.153712667 +0100
+@@ -507,7 +507,7 @@ void CPDF_RenderStatus::ProcessClipPath(
+     } else {
+       m_pDevice->SetClip_PathFill(
+           *pPath, &mtObj2Device,
+-          CFX_FillRenderOptions(ClipPath.GetClipType(i)));
++          CFX_FillRenderOptions{ClipPath.GetClipType(i)});
+     }
+   }
+ 
+diff -up chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h
+--- chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than	2024-02-22 22:44:12.000000000 +0100
++++ chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h	2024-02-24 13:13:44.153712667 +0100
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+     zcr_color_manager_v1_chromaticity_names,
+     PrimaryVersion>(
+     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::BT470M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTE240M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::XYZ_D50,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::FILM,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+ 
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
+     zcr_color_manager_v1_eotf_names,
+     TransferVersion>({
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT709,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT709,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+      // This is ever so slightly inaccurate. The number ought to be
+      // 2.19921875f, not 2.2
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-     TransferVersion(gfx::ColorSpace::TransferID::HLG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::HLG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SMPTEST428_1,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::IEC61966_2_4,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+ 
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-         TransferFnVersion(
++         TransferFnVersion{
+              SkNamedTransferFnExt::kRec709,
+-             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-         TransferFnVersion(gamma24, kDefaultSinceVersion)},
++         TransferFnVersion{gamma24, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+-                           kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++                           kDefaultSinceVersion}},
+     });
+ 
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGB,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-          TransferFnVersion(SkNamedTransferFn::kHLG,
+-                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++          TransferFnVersion{SkNamedTransferFn::kHLG,
++                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGBExtended1023Over510,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+ 
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+-          MatrixVersion(
++          MatrixVersion{
+               gfx::ColorSpace::MatrixID::BT470BG,
+-              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+-                        kDefaultSinceVersion)}});
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++                        kDefaultSinceVersion}}});
+ 
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+-          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+-                       kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++                       kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+-          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+-          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+-                       kDefaultSinceVersion)}});
++          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++                       kDefaultSinceVersion}}});
+ 
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+     gfx::ColorSpace::PrimaryID primaryID,
+@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM
+ 
+ }  // namespace ui::wayland
+ 
+-#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than chromium-122.0.6261.69/ui/gtk/gtk_ui.cc
+--- chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than	2024-02-22 22:44:13.000000000 +0100
++++ chromium-122.0.6261.69/ui/gtk/gtk_ui.cc	2024-02-24 13:13:44.153712667 +0100
+@@ -1007,11 +1007,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc
+--- chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me	2024-02-24 18:06:46.509393032 +0100
++++ chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc	2024-02-24 18:07:11.258948241 +0100
+@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+   if (current_reclaim_event_) {
+     // Cache this kill event along with the time it took place.
+-    current_reclaim_event_kills_.emplace_back(memory_freed_kb,
+-                                              discard_complete_time);
++    current_reclaim_event_kills_.emplace_back() = {memory_freed_kb,
++                                              discard_complete_time};
+   }
+ }
+ 
+diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
+--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me	2024-02-24 19:58:09.929371791 +0100
++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc	2024-02-24 19:59:07.149524862 +0100
+@@ -631,10 +631,10 @@ std::unique_ptr<AutofillProfile> Address
+     }
+ 
+     base::span<const uint8_t> observations_data = s.ColumnBlob(3);
+-    field_type_values.emplace_back(
++    field_type_values.emplace_back() = {
+         type, s.ColumnString16(1), s.ColumnInt(2),
+         std::vector<uint8_t>(observations_data.begin(),
+-                             observations_data.end()));
++                             observations_data.end())};
+ 
+     if (type == ADDRESS_HOME_COUNTRY) {
+       country_code = base::UTF16ToUTF8(s.ColumnString16(1));
+diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
+--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me	2024-02-24 19:52:02.173682060 +0100
++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc	2024-02-24 19:52:25.247216329 +0100
+@@ -192,9 +192,9 @@ class ContactInfoProfileSetter {
+       CHECK(observations.empty());
+       for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+            metadata.observations()) {
+-        observations.emplace_back(proto_observation.type(),
++        observations.emplace_back() = {proto_observation.type(),
+                                   ProfileTokenQuality::FormSignatureHash(
+-                                      proto_observation.form_hash()));
++                                      proto_observation.form_hash())};
+       }
+     }
+   }
+diff -up chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc
+--- chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me	2024-02-25 00:14:26.830323365 +0100
++++ chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc	2024-02-25 00:15:17.939241091 +0100
+@@ -402,7 +402,7 @@ void FencedFrameProperties::UpdateParent
+         feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(),
+         allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc());
+   }
+-  parent_permissions_info_.emplace(parsed_policies, parent_origin);
++  parent_permissions_info_.emplace() = {parsed_policies, parent_origin};
+ }
+ 
+ }  // namespace content
+diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me	2024-02-25 00:17:31.799644691 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc	2024-02-25 00:18:54.157123519 +0100
+@@ -3332,9 +3332,9 @@ std::optional<DebugReportCooldown> DoGet
+     return std::nullopt;
+   }
+ 
+-  return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0),
++  return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0),
+                              static_cast<DebugReportCooldownType>(
+-                                 cooldown_debugging_only_report.ColumnInt(1)));
++                                 cooldown_debugging_only_report.ColumnInt(1))};
+ }
+ 
+ void DoGetDebugReportCooldowns(
+diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc
+--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me	2024-02-25 00:20:33.535907981 +0100
++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc	2024-02-25 00:21:01.082402610 +0100
+@@ -501,7 +501,7 @@ bool SampleDebugReport(
+           ? DebugReportCooldownType::kShortCooldown
+           : DebugReportCooldownType::kRestrictedCooldown;
+   new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
+-      DebugReportCooldown(now, cooldown_type);
++      DebugReportCooldown{now, cooldown_type};
+   base::UmaHistogramEnumeration(
+       "Ads.InterestGroup.Auction.ForDebuggingOnlyCooldownType", cooldown_type);
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h
+--- chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me	2024-02-25 15:34:16.140768445 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h	2024-02-25 15:37:47.789665835 +0100
+@@ -24,6 +24,7 @@ struct MenuNotificationEntry {
+   int command = 0;
+   std::u16string label;
+   safety_hub::SafetyHubModuleType module;
++  MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { }
+ };
+ 
+ namespace {
+diff -up chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc
+--- chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me	2024-02-25 16:22:46.601209269 +0100
++++ chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc	2024-02-25 16:24:48.110618475 +0100
+@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G
+ 
+     // Radii are clockwise from top left.
+     const SkVector radii[4] = {
+-        SkVector(top_content_corner_radius, top_content_corner_radius),
+-        SkVector(top_content_corner_radius, top_content_corner_radius),
+-        SkVector(bottom_content_corner_radius, bottom_content_corner_radius),
+-        SkVector(bottom_content_corner_radius, bottom_content_corner_radius)};
++        SkVector{top_content_corner_radius, top_content_corner_radius},
++        SkVector{top_content_corner_radius, top_content_corner_radius},
++        SkVector{bottom_content_corner_radius, bottom_content_corner_radius},
++        SkVector{bottom_content_corner_radius, bottom_content_corner_radius}};
+     SkRRect rrect;
+     rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii);
+     SkPath path;
+diff -up chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+--- chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me	2024-02-25 18:49:32.512080085 +0100
++++ chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc	2024-02-25 19:07:36.518711693 +0100
+@@ -386,7 +386,7 @@ bool ShouldBlockAccessToPath(const base:
+       DCHECK(block.path);
+       blocked_path = base::FilePath(block.path);
+     }
+-    rules.emplace_back(blocked_path, block.type);
++    rules.emplace_back() = {blocked_path, block.type};
+   }
+ 
+   base::FilePath nearest_ancestor;
+@@ -1575,11 +1575,11 @@ void ChromeFileSystemAccessPermissionCon
+   // profile's directory, assuming the profile dir is a child of the user data
+   // dir.
+   std::vector<BlockPathRule> extra_rules;
+-  extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren);
++  extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren};
+   if (g_browser_process->profile_manager()) {
+-    extra_rules.emplace_back(
++    extra_rules.emplace_back() = {
+         g_browser_process->profile_manager()->user_data_dir(),
+-        kBlockAllChildren);
++        kBlockAllChildren};
+   }
+ 
+   base::ThreadPool::PostTaskAndReplyWithResult(
+diff -up chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc
+--- chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me	2024-02-25 19:14:16.227843148 +0100
++++ chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc	2024-02-25 19:15:04.589307468 +0100
+@@ -53,7 +53,7 @@ std::vector<PageDiscarder::DiscardEvent>
+     if (lifecycle_unit->DiscardTab(
+             discard_reason,
+             /*memory_footprint_estimate=*/proxy.second)) {
+-      discard_events.emplace_back(base::TimeTicks::Now(), proxy.second);
++      discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second};
+     }
+   }
+   return discard_events;
+diff -up chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h
+--- chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me	2024-02-25 17:26:25.623572458 +0100
++++ chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h	2024-02-25 17:29:52.983345280 +0100
+@@ -204,6 +204,7 @@ class ServiceWorkerTaskQueue : public Ke
+     raw_ptr<content::BrowserContext> browser_context;
+     base::UnguessableToken token;
+ 
++    SequencedContextId(auto e, auto b, auto t) : extension_id(e), browser_context(b), token(t) { }
+     bool operator<(const SequencedContextId& rhs) const {
+       return std::tie(extension_id, browser_context, token) <
+              std::tie(rhs.extension_id, rhs.browser_context, rhs.token);
+diff -up chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+--- chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me	2024-02-25 20:05:40.567891077 +0100
++++ chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc	2024-02-25 20:05:46.407001997 +0100
+@@ -3993,10 +3993,10 @@ void RenderViewContextMenu::ExecOpenComp
+     autofill::LocalFrameToken frame_token = driver->GetFrameToken();
+     client->GetManager().OpenCompose(
+         *driver,
+-        autofill::FormGlobalId(
+-            frame_token, autofill::FormRendererId(params_.form_renderer_id)),
+-        autofill::FieldGlobalId(
+-            frame_token, autofill::FieldRendererId(params_.field_renderer_id)),
++        autofill::FormGlobalId{
++            frame_token, autofill::FormRendererId(params_.form_renderer_id)},
++        autofill::FieldGlobalId{
++            frame_token, autofill::FieldRendererId(params_.field_renderer_id)},
+         compose::ComposeManagerImpl::UiEntryPoint::kContextMenu);
+     new_badge_tracker_.ActionPerformed("compose_menu_item_activated");
+   } else {

diff --git a/chromium-122-typename.patch b/chromium-122-typename.patch
new file mode 100644
index 0000000..1fc8079
--- /dev/null
+++ b/chromium-122-typename.patch
@@ -0,0 +1,385 @@
+
+fixed error: missing 'typename' prior to dependent type name
+
+diff -up chromium-122.0.6261.69/base/containers/map_util.h.typename chromium-122.0.6261.69/base/containers/map_util.h
+--- chromium-122.0.6261.69/base/containers/map_util.h.typename	2024-02-22 22:42:43.000000000 +0100
++++ chromium-122.0.6261.69/base/containers/map_util.h	2024-02-24 15:05:00.882592705 +0100
+@@ -42,7 +42,7 @@ constexpr internal::MappedType<Map>* Fin
+ template <typename Map,
+           typename Key,
+           typename MappedElementType =
+-              std::pointer_traits<internal::MappedType<Map>>::element_type>
++              typename std::pointer_traits<internal::MappedType<Map>>::element_type>
+ constexpr const MappedElementType* FindPtrOrNull(const Map& map,
+                                                  const Key& key) {
+   auto it = map.find(key);
+@@ -58,7 +58,7 @@ constexpr const MappedElementType* FindP
+ template <typename Map,
+           typename Key,
+           typename MappedElementType =
+-              std::pointer_traits<internal::MappedType<Map>>::element_type>
++              typename std::pointer_traits<internal::MappedType<Map>>::element_type>
+ constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) {
+   auto it = map.find(key);
+   return it != map.end() ? std::to_address(it->second) : nullptr;
+diff -up chromium-122.0.6261.69/base/functional/bind_internal.h.typename chromium-122.0.6261.69/base/functional/bind_internal.h
+--- chromium-122.0.6261.69/base/functional/bind_internal.h.typename	2024-02-24 15:05:00.883592724 +0100
++++ chromium-122.0.6261.69/base/functional/bind_internal.h	2024-02-24 15:13:49.755223533 +0100
+@@ -1400,11 +1400,11 @@ template <int i,
+           typename Param>
+ struct ParamCanBeBound {
+  private:
+-  using UnwrappedParam = BindArgument<i>::template ForwardedAs<
++  using UnwrappedParam = typename BindArgument<i>::template ForwardedAs<
+       Unwrapped>::template ToParamWithType<Param>;
+-  using ParamStorage = BindArgument<i>::template ToParamWithType<
++  using ParamStorage = typename BindArgument<i>::template ToParamWithType<
+       Param>::template StoredAs<Storage>;
+-  using BoundStorage =
++  using BoundStorage = typename
+       BindArgument<i>::template BoundAs<Arg>::template StoredAs<Storage>;
+ 
+   template <bool v = !UnwrappedParam::kRawPtr ||
+diff -up chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc
+--- chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc.typename	2024-02-22 22:42:50.000000000 +0100
++++ chromium-122.0.6261.69/chrome/browser/download/bubble/download_bubble_update_service.cc	2024-02-24 15:05:00.882592705 +0100
+@@ -90,7 +90,7 @@ ItemSortKey GetSortKey(const Item& item)
+ // Helper to get an iterator to the last element in the cache. The cache
+ // must not be empty.
+ template <typename Item>
+-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
++typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
+   CHECK(!cache.empty());
+   auto it = cache.end();
+   return std::prev(it);
+@@ -1090,9 +1090,9 @@ bool DownloadBubbleUpdateService::CacheM
+ }
+ 
+ template <typename Id, typename Item>
+-SortedItems<Item>::iterator
++typename SortedItems<Item>::iterator
+ DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
+-    SortedItems<Item>::iterator iter,
++    typename SortedItems<Item>::iterator iter,
+     SortedItems<Item>& cache,
+     IterMap<Id, Item>& iter_map) {
+   CHECK(iter != cache.end());
+diff -up chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h
+--- chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename	2024-02-22 22:43:01.000000000 +0100
++++ chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h	2024-02-24 15:05:00.884592742 +0100
+@@ -25,7 +25,7 @@ void SetExecutionRequestTemplate(
+ 
+   // Request is set by the feature and should always be typed.
+   auto typed_request =
+-      static_cast<const FeatureType::Request&>(request_metadata);
++      static_cast<const typename FeatureType::Request&>(request_metadata);
+   *(logging_data->mutable_request_data()) = typed_request;
+ }
+ 
+diff -up chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h
+--- chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename	2024-02-22 22:43:01.000000000 +0100
++++ chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h	2024-02-24 15:05:00.884592742 +0100
+@@ -29,7 +29,7 @@ class ModelQualityLogEntry {
+   }
+ 
+   template <typename FeatureType>
+-  FeatureType::Quality* quality_data() {
++  typename FeatureType::Quality* quality_data() {
+     return FeatureType::GetLoggingData(*log_ai_data_request_)
+         ->mutable_quality_data();
+   }
+diff -up chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h
+--- chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename	2024-02-22 22:43:01.000000000 +0100
++++ chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h	2024-02-24 15:05:00.883592724 +0100
+@@ -241,7 +241,7 @@ class TFLiteModelExecutor : public Model
+   void SendForBatchExecution(
+       BatchExecutionCallback callback_on_complete,
+       base::TimeTicks start_time,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -263,7 +263,7 @@ class TFLiteModelExecutor : public Model
+   // Starts the synchronous execution of the model. Returns model outputs.
+   // Model needs to be loaded. Synchronous calls do not load or unload model.
+   std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -421,7 +421,7 @@ class TFLiteModelExecutor : public Model
+   // executes it on the model execution thread.
+   void LoadModelFileAndBatchExecute(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ 
+@@ -438,7 +438,7 @@ class TFLiteModelExecutor : public Model
+ 
+   // Batch executes the loaded model for inputs.
+   void BatchExecuteLoadedModel(
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       std::vector<absl::optional<OutputType>>* outputs) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+@@ -498,7 +498,7 @@ class TFLiteModelExecutor : public Model
+   // Unloads the model if needed.
+   void BatchExecuteLoadedModelAndRunCallback(
+       BatchExecutionCallback callback_on_complete,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+       ExecutionStatus execution_status) {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.typename chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
+diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h
+--- chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename	2024-02-22 22:43:15.000000000 +0100
++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h	2024-02-24 15:05:00.884592742 +0100
+@@ -90,7 +90,7 @@ template <typename Container>
+     { c[i] } -> std::same_as<typename Container::reference>;
+   }
+ struct ArrayTraits<Container> {
+-  using Element = Container::value_type;
++  using Element = typename Container::value_type;
+ 
+   // vector-like containers have no built-in null.
+   static bool IsNull(const Container& c) { return false; }
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename	2024-02-22 22:43:20.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h	2024-02-24 15:05:00.883592724 +0100
+@@ -218,7 +218,7 @@ class PairAsyncIterable {
+  private:
+   virtual IterationSource* CreateIterationSource(
+       ScriptState* script_state,
+-      IterationSource::Kind kind,
++      typename IterationSource::Kind kind,
+       ExceptionState& exception_state) = 0;
+ };
+ 
+@@ -260,7 +260,7 @@ class ValueAsyncIterable {
+  private:
+   virtual IterationSource* CreateIterationSource(
+       ScriptState* script_state,
+-      IterationSource::Kind kind,
++      typename IterationSource::Kind kind,
+       ExceptionState& exception_state) = 0;
+ };
+ 
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+--- chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename	2024-02-24 15:05:00.882592705 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc	2024-02-24 15:12:27.742724849 +0100
+@@ -211,7 +211,7 @@ class HTMLFastPathParser {
+   using Span = base::span<const Char>;
+   using USpan = base::span<const UChar>;
+   // 32 matches that used by HTMLToken::Attribute.
+-  typedef std::conditional<std::is_same_v<Char, UChar>,
++  typedef typename std::conditional<std::is_same_v<Char, UChar>,
+                            UCharLiteralBuffer<32>,
+                            LCharLiteralBuffer<32>>::type LiteralBufferType;
+   static_assert(std::is_same_v<Char, UChar> || std::is_same_v<Char, LChar>);
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename	2024-02-22 22:43:21.000000000 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h	2024-02-24 15:05:00.883592724 +0100
+@@ -272,8 +272,8 @@ class CORE_EXPORT ObjectPaintPropertiesS
+       NodeList& nodes,
+       NodeId node_id,
+       const ParentType& parent,
+-      NodeType::State&& state,
+-      const NodeType::AnimationState& animation_state =
++      typename NodeType::State&& state,
++      const typename NodeType::AnimationState& animation_state =
+           NodeType::AnimationState()) {
+     // First, check if we need to add a new node.
+     if (!nodes.HasField(node_id)) {
+diff -up chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h
+--- chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me	2024-02-24 16:51:41.292310554 +0100
++++ chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h	2024-02-24 16:52:10.022896063 +0100
+@@ -26,7 +26,7 @@ PartitionRoot& InternalAllocatorRoot();
+ 
+ // A class that meets C++ named requirements, Allocator.
+ template <typename T>
+-InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
++typename InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
+     std::size_t count) {
+   PA_CHECK(count <=
+            std::numeric_limits<std::size_t>::max() / sizeof(value_type));
+diff -up chromium-122.0.6261.69/base/functional/function_ref.h.me chromium-122.0.6261.69/base/functional/function_ref.h
+--- chromium-122.0.6261.69/base/functional/function_ref.h.me	2024-02-24 17:59:35.119582549 +0100
++++ chromium-122.0.6261.69/base/functional/function_ref.h	2024-02-24 18:00:27.107938399 +0100
+@@ -64,7 +64,7 @@ class FunctionRef;
+ template <typename R, typename... Args>
+ class FunctionRef<R(Args...)> {
+   template <typename Functor,
+-            typename RunType = internal::MakeFunctorTraits<Functor>::RunType>
++            typename RunType = typename internal::MakeFunctorTraits<Functor>::RunType>
+   static constexpr bool kCompatibleFunctor =
+       std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
+       std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
+diff -up chromium-122.0.6261.69/base/containers/heap_array.h.me chromium-122.0.6261.69/base/containers/heap_array.h
+--- chromium-122.0.6261.69/base/containers/heap_array.h.me	2024-02-24 18:02:34.463921568 +0100
++++ chromium-122.0.6261.69/base/containers/heap_array.h	2024-02-24 18:04:01.922850571 +0100
+@@ -32,8 +32,8 @@ class TRIVIAL_ABI GSL_OWNER HeapArray {
+   static_assert(!std::is_reference_v<T>,
+                 "HeapArray cannot hold reference types");
+ 
+-  using iterator = base::span<T>::iterator;
+-  using const_iterator = base::span<const T>::iterator;
++  using iterator = typename base::span<T>::iterator;
++  using const_iterator = typename base::span<const T>::iterator;
+ 
+   // Allocates initialized memory capable of holding `size` elements. No memory
+   // is allocated for zero-sized arrays.
+diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h
+--- chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me	2024-02-24 18:51:06.957087464 +0100
++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h	2024-02-24 18:51:27.778488490 +0100
+@@ -125,7 +125,7 @@ using VecValueType = typename Vec::value
+ 
+ template <typename Vec>
+ using VecPtrLikeUnderlyingValueType =
+-    std::pointer_traits<VecValueType<Vec>>::element_type;
++    typename std::pointer_traits<VecValueType<Vec>>::element_type;
+ 
+ }  // namespace internal
+ 
+diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h
+--- chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me	2024-02-24 19:45:13.620934215 +0100
++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h	2024-02-24 19:46:08.817940962 +0100
+@@ -2005,7 +2005,7 @@ struct HashTableConstIteratorAdapter {
+   static_assert(!IsTraceable<typename Traits::TraitType>::value);
+ 
+   using iterator_category = std::bidirectional_iterator_tag;
+-  using value_type = HashTableType::ValueType;
++  using value_type = typename HashTableType::ValueType;
+   using difference_type = ptrdiff_t;
+   using pointer = value_type*;
+   using reference = value_type&;
+@@ -2057,7 +2057,7 @@ struct HashTableConstIteratorAdapter<
+ 
+  public:
+   using iterator_category = std::bidirectional_iterator_tag;
+-  using value_type = HashTableType::ValueType;
++  using value_type = typename HashTableType::ValueType;
+   using difference_type = ptrdiff_t;
+   using pointer = value_type*;
+   using reference = value_type&;
+@@ -2111,7 +2111,7 @@ struct HashTableIteratorAdapter {
+   static_assert(!IsTraceable<typename Traits::TraitType>::value);
+ 
+   using iterator_category = std::bidirectional_iterator_tag;
+-  using value_type = HashTableType::ValueType;
++  using value_type = typename HashTableType::ValueType;
+   using difference_type = ptrdiff_t;
+   using pointer = value_type*;
+   using reference = value_type&;
+@@ -2159,7 +2159,7 @@ struct HashTableIteratorAdapter<
+ 
+  public:
+   using iterator_category = std::bidirectional_iterator_tag;
+-  using value_type = HashTableType::ValueType;
++  using value_type = typename HashTableType::ValueType;
+   using difference_type = ptrdiff_t;
+   using pointer = value_type*;
+   using reference = value_type&;
+diff -up chromium-122.0.6261.69/base/types/fixed_array.h.me chromium-122.0.6261.69/base/types/fixed_array.h
+--- chromium-122.0.6261.69/base/types/fixed_array.h.me	2024-02-25 11:22:59.819590529 +0100
++++ chromium-122.0.6261.69/base/types/fixed_array.h	2024-02-25 11:24:12.424953031 +0100
+@@ -27,8 +27,8 @@ template <typename T,
+ class FixedArray : public absl::FixedArray<T, N, A> {
+  public:
+   using absl::FixedArray<T, N, A>::FixedArray;
+-  explicit FixedArray(absl::FixedArray<T, N, A>::size_type n,
+-                      const absl::FixedArray<T, N, A>::allocator_type& a =
++  explicit FixedArray(typename absl::FixedArray<T, N, A>::size_type n,
++                      const typename absl::FixedArray<T, N, A>::allocator_type& a =
+                           typename absl::FixedArray<T, N, A>::allocator_type())
+       : FixedArray(n, T(), a) {}
+ };
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me	2024-02-25 15:04:56.775897713 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h	2024-02-25 15:05:34.884579279 +0100
+@@ -121,7 +121,7 @@ class CommandBase {
+ template <typename LockType>
+ class CommandWithLock : public CommandBase {
+  public:
+-  using LockDescription = LockType::LockDescription;
++  using LockDescription = typename LockType::LockDescription;
+   explicit CommandWithLock(const std::string& name,
+                            LockDescription initial_lock_request);
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me	2024-02-25 15:05:46.885793828 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h	2024-02-25 15:06:12.334248725 +0100
+@@ -106,7 +106,7 @@ class WebAppLockManager;
+ template <typename LockType, typename... CallbackArgs>
+ class WebAppCommand : public internal::CommandWithLock<LockType> {
+  public:
+-  using LockDescription = LockType::LockDescription;
++  using LockDescription = typename LockType::LockDescription;
+   using CallbackType = base::OnceCallback<void(CallbackArgs...)>;
+   using ShutdownArgumentsTuple = std::tuple<std::decay_t<CallbackArgs>...>;
+ 
+diff -up chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h
+--- chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me	2024-02-25 15:06:17.896348149 +0100
++++ chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h	2024-02-25 15:06:58.841076746 +0100
+@@ -355,7 +355,7 @@ class WebAppCommandScheduler {
+   // command system.
+   template <typename LockType>
+   void ScheduleCallback(const std::string& operation_name,
+-                        LockType::LockDescription lock_description,
++                        typename LockType::LockDescription lock_description,
+                         CallbackCommand<LockType, void> callback,
+                         base::OnceClosure on_complete,
+                         const base::Location& location = FROM_HERE) {
+@@ -373,7 +373,7 @@ class WebAppCommandScheduler {
+             typename CallbackReturnValue = std::decay_t<CompletionCallbackArg>>
+   void ScheduleCallbackWithResult(
+       const std::string& operation_name,
+-      LockType::LockDescription lock_description,
++      typename LockType::LockDescription lock_description,
+       CallbackCommand<LockType, CallbackReturnValue> callback,
+       base::OnceCallback<void(CompletionCallbackArg)> on_complete,
+       CallbackReturnValue arg_for_shutdown,
+diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
+--- chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me	2024-02-25 15:12:53.835409392 +0100
++++ chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h	2024-02-25 15:16:03.171931033 +0100
+@@ -424,7 +424,7 @@ class RetryingFetcherImpl final : public
+   RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
+   RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
+ 
+-  void Start(ProtoFetcher<Response>::Callback callback) override {
++  void Start(typename ProtoFetcher<Response>::Callback callback) override {
+     callback_ = std::move(callback);
+     Retry();
+   }
+@@ -469,7 +469,7 @@ class RetryingFetcherImpl final : public
+   }
+ 
+   // Client callback.
+-  TypedProtoFetcher<Response>::Callback callback_;
++  typename TypedProtoFetcher<Response>::Callback callback_;
+ 
+   // Retry controls.
+   base::OneShotTimer timer_;
+@@ -490,7 +490,7 @@ class ParallelFetchManager {
+   // Deferred fetcher is required because it should be started after it is
+   // stored internally.
+   using Fetcher = ProtoFetcher<Response>;
+-  using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
++  using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+ 
+  public:
+   // Provides fresh instances of a deferred fetcher for each fetch.
+@@ -506,7 +506,7 @@ class ParallelFetchManager {
+ 
+   // Starts the fetch. Underlying fetcher is stored internally, and will be
+   // cleaned up after finish or when this manager is destroyed.
+-  void Fetch(const Request& request, Fetcher::Callback callback) {
++  void Fetch(const Request& request, typename Fetcher::Callback callback) {
+     CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
+     KeyType key = requests_in_flight_.Add(MakeFetcher(request));
+     requests_in_flight_.Lookup(key)->Start(

diff --git a/chromium-122-unique_ptr.patch b/chromium-122-unique_ptr.patch
new file mode 100644
index 0000000..9462ae6
--- /dev/null
+++ b/chromium-122-unique_ptr.patch
@@ -0,0 +1,44 @@
+commit 5517d167c083885847a08a83b96da03b1eb2bc3e
+Author: Jose Dapena Paz <jdapena@igalia.com>
+Date:   Tue Jan 23 15:34:35 2024 +0000
+
+    libstdc++: do not require including unique_ptr in header
+    
+    Including std::unique_ptr declaration initial value requires
+    declaration of contained type.
+    
+    Bug: 957519
+    Change-Id: If9b0362b6cea48a395041faa82f83b6f48b98403
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5225137
+    Reviewed-by: Caroline Rising <corising@chromium.org>
+    Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1250826}
+
+diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h
+index ec3e34a86f4c5..32ca27b6d126b 100644
+--- a/chrome/browser/ui/views/toolbar/toolbar_view.h
++++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
+@@ -311,8 +311,7 @@ class ToolbarView : public views::AccessiblePaneView,
+   AppMenuIconController app_menu_icon_controller_;
+ 
+   std::unique_ptr<ChromeLabsModel> chrome_labs_model_;
+-  std::unique_ptr<ExtensionsToolbarCoordinator>
+-      extensions_toolbar_coordinator_ = nullptr;
++  std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
+ 
+   // Controls whether or not a home button should be shown on the toolbar.
+   BooleanPrefMember show_home_button_;
+diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
+index 3046c543c7c8e..46ff5d40ffad3 100644
+--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
++++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
+@@ -150,8 +150,7 @@ class WebAppToolbarButtonContainer : public views::View,
+   std::unique_ptr<PageActionIconController> page_action_icon_controller_;
+   int page_action_insertion_point_ = 0;
+ 
+-  std::unique_ptr<ExtensionsToolbarCoordinator>
+-      extensions_toolbar_coordinator_ = nullptr;
++  std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
+ 
+   // All remaining members are owned by the views hierarchy.
+   raw_ptr<WebAppOriginText> web_app_origin_text_ = nullptr;

diff --git a/chromium-122-workaround_clang_bug-structured_binding.patch b/chromium-122-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..6526e6a
--- /dev/null
+++ b/chromium-122-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,79 @@
+diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
+--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding	2023-06-07 21:48:37.000000000 +0200
++++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc	2023-06-17 16:53:20.216628557 +0200
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+   // Reject all outstanding promises.
+   DCHECK(thread_checker_.CalledOnValidThread());
+-  for (auto& [promise_id, promise] : promises_) {
++  for (auto& [p_i, p_e] : promises_) {
++    auto& promise_id = p_i;
++    auto& promise = p_e;
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+         "status", "cleared");
+diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
+--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me	2023-06-19 08:04:02.287072722 +0200
++++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc	2023-06-19 08:18:24.576814950 +0200
+@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
+     return;
+   }
+ 
+-  auto [document_url, key, callback] = std::move(*request);
++  auto [d_u, key, callback] = std::move(*request);
++  auto document_url = d_u;
+ 
+   DCHECK(document_url.is_valid());
+   TRACE_EVENT1("ServiceWorker",
+diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
+--- chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than	2023-12-19 17:57:56.205197246 +0100
++++ chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc	2023-12-19 18:10:13.778634531 +0100
+@@ -3527,8 +3527,8 @@ void GridLayoutAlgorithm::PlaceGridItems
+   DCHECK(out_row_break_between);
+ 
+   const auto& container_space = GetConstraintSpace();
+-  const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
+-
++  const auto& [grid_items, l_d, tree_size] = sizing_tree.TreeRootData();
++  const auto& layout_data = l_d;
+   const auto* cached_layout_subtree = container_space.GetGridLayoutSubtree();
+   const auto container_writing_direction =
+       container_space.GetWritingDirection();
+@@ -3691,8 +3691,9 @@ void GridLayoutAlgorithm::PlaceGridItems
+ 
+   // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true.
+   const auto& constraint_space = GetConstraintSpace();
+-  const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
+-
++  const auto& [g_i, l_d, tree_size] = sizing_tree.TreeRootData();
++  const auto& grid_items = g_i;
++  const auto& layout_data = l_d;
+   const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree();
+   const auto container_writing_direction =
+       constraint_space.GetWritingDirection();
+diff -up chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc
+--- chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me	2024-02-25 10:07:28.312646853 +0100
++++ chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc	2024-02-25 10:11:07.018481980 +0100
+@@ -416,7 +416,8 @@ void ServiceWorkerRaceNetworkRequestURLL
+   }
+ 
+   uint32_t num_bytes_to_consume = 0;
+-  auto [result, read_buffer] = BeginReadData();
++  auto [r, read_buffer] = BeginReadData();
++  auto result = r;
+   TRACE_EVENT_WITH_FLOW2(
+       "ServiceWorker",
+       "ServiceWorkerRaceNetworkRequestURLLoaderClient::ReadAndWrite",
+diff -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc
+--- chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me	2024-02-25 18:03:51.654579579 +0100
++++ chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc	2024-02-25 18:12:45.144287750 +0100
+@@ -136,7 +136,8 @@ void PrewarmHttpDiskCacheManager::MaybeP
+   std::pair<url::Origin, GURL> origin_and_url;
+   std::swap(origin_and_url, queued_jobs_.front());
+   queued_jobs_.pop();
+-  const auto& [origin, url] = origin_and_url;
++  const auto& [origin, u] = origin_and_url;
++  const auto& url = u;
+   TRACE_EVENT_WITH_FLOW1(
+       "loading", "PrewarmHttpDiskCacheManager::MaybeProcessNextQueuedJob",
+       TRACE_ID_LOCAL(this),

diff --git a/chromium.spec b/chromium.spec
index d3b58aa..d96191c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -366,7 +366,7 @@ Patch101: chromium-108-el7-wayland-strndup-error.patch
 
 # Workaround for old clang
 # error: defaulting this default constructor would delete it after its first declaration
-Patch102: chromium-121-el7-default-constructor-involving-anonymous-union.patch
+Patch102: chromium-122-el7-default-constructor-involving-anonymous-union.patch
 
 # Work around old and missing headers on EPEL7
 Patch103: chromium-110-epel7-old-headers-workarounds.patch
@@ -385,15 +385,13 @@ Patch105: chromium-120-el7-old-libdrm.patch
 Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch
 
 # Add additional operator== to make el7 happy.
-Patch107: chromium-120-el7-extra-operator.patch
+Patch107: chromium-122-el7-extra-operator.patch
 # old v4l2 on el7
 Patch108: chromium-118-el7_v4l2_quantization.patch 
-# workaround for clang bug on el7
+# workaround for old clang on el7
 Patch109: chromium-114-wireless-el7.patch
 Patch110: chromium-115-buildflag-el7.patch
-Patch111: chromium-116-constexpr.patch
-# old clang on el7
-
+Patch111: chromium-122-el7-inline-function.patch
 Patch113: chromium-121-el7-clang-version-warning.patch
 Patch114: chromium-120-el7-clang-build-failure.patch
 
@@ -415,14 +413,14 @@ Patch140: chromium-118-dma_buf_export_sync_file-conflict.patch
 
 # fixes for old clang version in fedora < 38 end epel < 8 (old clang <= 15)
 # compiler build errors, no matching constructor for initialization
-Patch300: chromium-121-no_matching_constructor.patch
+Patch300: chromium-122-no_matching_constructor.patch
 Patch301: chromium-115-compiler-SkColor4f.patch
 
 # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch302: chromium-121-workaround_clang_bug-structured_binding.patch
+Patch302: chromium-122-workaround_clang_bug-structured_binding.patch
 
 # missing typename
-Patch303: chromium-121-typename.patch
+Patch303: chromium-122-typename.patch
 
 # error: invalid operands to binary expression
 Patch304: chromium-117-string-convert.patch
@@ -448,8 +446,9 @@ Patch311: chromium-115-clang-warnings.patch
 # enable fstack-protector-strong
 Patch312: chromium-119-fstack-protector-strong.patch
 
-# fixed static assert error
+# upstream: libstdc++: fix static assertion in NodeUuidEquality
 Patch313: chromium-122-static-assert.patch
+
 Patch314: chromium-122-clang16-buildflags.patch
 
 # assignment-expressions not suport in python < 3.8 on el 7/8
@@ -458,6 +457,9 @@ Patch315: chromium-122-python3-assignment-expressions.patch
 # add -ftrivial-auto-var-init=zero and -fwrapv
 Patch316: chromium-122-clang-build-flags.patch
 
+# upstream: ibstdc++: do not require including unique_ptr in header
+Patch317: chromium-122-unique_ptr.patch
+
 # build error
 Patch351: chromium-121-mnemonic-error.patch
 
@@ -1097,22 +1099,22 @@ udev.
 %if 0%{?rhel} == 7
 %patch -P100 -p1 -b .el7-memfd-fcntl-include
 %patch -P101 -p1 -b .wayland-strndup-error
-#patch -P102 -p1 -b .default-constructor-involving-anonymous-union
+%patch -P102 -p1 -b .default-constructor-involving-anonymous-union
 %patch -P103 -p1 -b .epel7-header-workarounds
 %patch -P104 -p1 -b .el7cups
 %patch -P105 -p1 -b .el7-old-libdrm
 %patch -P106 -p1 -b .el7-erase-fix
-#patch -P107 -p1 -b .el7-extra-operator-equalequal
+%patch -P107 -p1 -b .el7-extra-operator-equalequal
 %patch -P108 -p1 -b .el7_v4l2_quantization
 %patch -P109 -p1 -b .wireless
 %patch -P110 -p1 -b .buildflag-el7
-#patch -P111 -p1 -b .constexpr
+%patch -P111 -p1 -b .inline-function-el7
 %patch -P113 -p1 -b .el7-clang-version-warning
 %patch -P114 -p1 -R -b .clang-build-failure
-#patch -P300 -p1 -b .no_matching_constructor
+%patch -P300 -p1 -b .no_matching_constructor
 %patch -P301 -p1 -b .workaround_clang-SkColor4f
 %patch -P302 -p1 -b .workaround_clang_bug-structured_binding
-#patch -P303 -p1 -b .typename
+%patch -P303 -p1 -b .typename
 %patch -P304 -p1 -b .string-convert
 %patch -P306 -p1 -b .assert
 %endif
@@ -1143,8 +1145,11 @@ udev.
 %patch -P310 -p1 -b .missing-header-files
 %patch -P311 -p1 -b .clang-warnings
 %patch -P312 -p1 -b .fstack-protector-strong
-%patch -P316 -p1 -b .clang-build-flags
+%patch -P317 -p1 -b .unique_ptr.patch
 
+%if 0%{?rhel} >= 8 || 0%{?fedora}
+%patch -P316 -p1 -b .clang-build-flags
+%endif
 %patch -P351 -p1 -b .mnemonic-error
 
 %if %{disable_bti}

^ 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: fixed many build failures 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