Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] chromium: update to 119.0.6045.105.
@ 2023-11-04 15:08 Duncaen
  2023-11-05 14:04 ` [PR PATCH] [Updated] " Duncaen
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Duncaen @ 2023-11-04 15:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 407 bytes --]

There is a new pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-119
https://github.com/void-linux/void-packages/pull/47058

chromium: update to 119.0.6045.105.
[ci skip]

* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/47058.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-119-47058.patch --]
[-- Type: text/x-diff, Size: 75166 bytes --]

From 8f923564d21f8c36c40511216497dd607870f237 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sat, 4 Nov 2023 16:02:39 +0100
Subject: [PATCH] chromium: update to 119.0.6045.105.

---
 .../chromium-118-use_system_freetype.patch    |  91 ---
 .../patches/chromium-119-assert.patch         |  12 +
 .../patches/chromium-119-constexpr.patch      |  12 +
 ....4.patch => chromium-119-ffmpeg-4.4.patch} |  14 +-
 ...tVideoDecoder-flag-on-VA-API-devices.patch | 195 ++++++
 ...> chromium-119-missing-header-files.patch} |  12 -
 ...hromium-119-no_matching_constructor.patch} | 608 +++++++++++-------
 ...-119-nullptr_t-without-namespace-std.patch |  21 +
 ...a-use-separate-bo-to-verify-modifier.patch | 164 +++++
 srcpkgs/chromium/template                     |   4 +-
 10 files changed, 784 insertions(+), 349 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-assert.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-constexpr.patch
 rename srcpkgs/chromium/patches/{chromium-118-ffmpeg-4.4.patch => chromium-119-ffmpeg-4.4.patch} (53%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
 rename srcpkgs/chromium/patches/{chromium-118-missing-header-files.patch => chromium-119-missing-header-files.patch} (97%)
 rename srcpkgs/chromium/patches/{chromium-118-no_matching_constructor.patch => chromium-119-no_matching_constructor.patch} (56%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch

diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
deleted file mode 100644
index ce9fbdebe2fb7..0000000000000
--- a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-commit ed354d00aeda84693611b14baa56a287557a26b5
-Author: Munira Tursunova <moonira@google.com>
-Date:   Tue Sep 12 11:54:48 2023 +0000
-
-    Add check for use_system_freetype when importing private freetype header
-    
-    In [0] the include of private freetype header was added, which caused
-    build breakage when use_system_freetype=true, see [1].
-    
-    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
-    
-    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
-    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
-    
-    Bug: 1429581
-    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
-    Commit-Queue: Munira Tursunova <moonira@google.com>
-    Reviewed-by: Dominik Röttsches <drott@chromium.org>
-    Reviewed-by: Rick Byers <rbyers@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1195323}
-
-diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
-index 7b086f95413ff..4ce797ebad722 100644
---- a/third_party/BUILD.gn
-+++ b/third_party/BUILD.gn
-@@ -2,6 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
-+import("//build/buildflag_header.gni")
- import("//build/config/features.gni")
- import("//build/config/freetype/freetype.gni")
- import("//third_party/harfbuzz-ng/harfbuzz.gni")
-@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
-     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
-   }
- }
-+
-+buildflag_header("freetype_buildflags") {
-+  header = "freetype_buildflags.h"
-+  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
-+}
-diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
-index 591d2f939605b..f6a2cd2168d1e 100644
---- a/third_party/blink/renderer/platform/BUILD.gn
-+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1717,6 +1717,7 @@ component("platform") {
-     "//services/viz/public/cpp/gpu",
-     "//skia",
-     "//skia:skcms",
-+    "//third_party:freetype_buildflags",
-     "//third_party:freetype_harfbuzz",
-     "//third_party/abseil-cpp:absl",
-     "//third_party/blink/public:image_resources",
-diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-index abe06f35c14a5..b2bfd88f0d85d 100644
---- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-+++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-@@ -48,7 +48,7 @@
- #include "third_party/blink/renderer/platform/wtf/math_extras.h"
- #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
- #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
--#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#include "third_party/freetype_buildflags.h"
- #include "third_party/skia/include/core/SkFontMetrics.h"
- #include "third_party/skia/include/core/SkPath.h"
- #include "third_party/skia/include/core/SkTypeface.h"
-@@ -57,12 +57,22 @@
- #include "ui/gfx/geometry/skia_conversions.h"
- #include "v8/include/v8.h"
- 
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
-+#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#endif
-+
- namespace blink {
- 
- constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
- constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
-+
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
- constexpr int32_t kFontObjectsMemoryConsumption =
-     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
-+#else
-+// sizeof(AF_LatinMetricsRec) = 2128
-+constexpr int32_t kFontObjectsMemoryConsumption = 2128;
-+#endif
- 
- SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
-                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-119-assert.patch b/srcpkgs/chromium/patches/chromium-119-assert.patch
new file mode 100644
index 0000000000000..6c502f13a5955
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-assert.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/v8/src/base/small-vector.h.than chromium-119.0.6045.59/v8/src/base/small-vector.h
+--- chromium-119.0.6045.59/v8/src/base/small-vector.h.than	2023-11-01 16:13:12.645301345 +0100
++++ chromium-119.0.6045.59/v8/src/base/small-vector.h	2023-11-01 16:13:29.660610182 +0100
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
++  //ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:
diff --git a/srcpkgs/chromium/patches/chromium-119-constexpr.patch b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
new file mode 100644
index 0000000000000..b195ff408ba81
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h
+--- chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me	2023-10-31 21:05:05.548565241 +0100
++++ chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h	2023-10-31 21:20:53.945532094 +0100
+@@ -93,7 +93,7 @@ class MiracleParameter {
+ template <>
+ class MiracleParameter<std::string> : public MiracleParameterBase<std::string> {
+  public:
+-  constexpr MiracleParameter(const base::Feature* feature,
++  MiracleParameter(const base::Feature* feature,
+                              const char* param_name,
+                              std::string default_value)
+       : MiracleParameterBase(feature, param_name, std::move(default_value)) {}
diff --git a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
similarity index 53%
rename from srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
index 556c734d4e02e..04d04b166ba37 100644
--- a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
@@ -1,17 +1,15 @@
-diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
-index ac4713b07268..492a9a37d096 100644
---- a/media/filters/ffmpeg_demuxer.cc
+--- a/media/filters/ffmpeg_demuxer.cc.orig
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
-                                      side_data.data(), side_data.size());
-   } else {
+@@ -390,7 +390,7 @@
+ 
+   scoped_refptr<DecoderBuffer> buffer;
+ 
 -    size_t side_data_size = 0;
 +    int side_data_size = 0;
      uint8_t* side_data = av_packet_get_side_data(
          packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
  
-@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+@@ -453,7 +453,7 @@
                                         packet->size - data_offset);
      }
  
diff --git a/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
new file mode 100644
index 0000000000000..88d675e8047f0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
@@ -0,0 +1,195 @@
+commit 87fca7f1759e800bd72b5ab6511eea17d6400a76
+Author: Pilar Molina Lopez <pmolinalopez@chromium.org>
+Date:   Tue Oct 24 19:57:55 2023 +0000
+
+    video: hide UseChromeOSDirectVideoDecoder flag on VA-API devices
+    
+    We are seeing crashes causes by this CHECK statement:
+    https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/gpu_utils.cc;l=151;drc=0e777ba9b6c34611705d5b145c92bcd09539011c
+    It's triggered when the user manually disables the UseChromeOSDirectVideoDecoder
+    flag on VA-API devices (Intel and AMD). This flag is supported only on
+    non-Intel and non-AMD devices. This CL adds this information to the flag
+    description and hides the flag in case VA-API is used.
+    
+    Bug: 1469285
+    Test: manual test on volteer
+    Change-Id: I153b9ccb3815498c91ce5eee966834060749e247
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4960919
+    Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+    Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
+    Reviewed-by: Avi Drissman <avi@chromium.org>
+    Commit-Queue: Pilar Molina Lopez <pmolinalopez@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1214411}
+
+diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
+index ee9fb206cde36..0fe18013ab044 100644
+--- a/chrome/browser/DEPS
++++ b/chrome/browser/DEPS
+@@ -418,6 +418,7 @@ include_rules = [
+   "+media/base",  # For media switches
+   "+media/capabilities", # For InMemoryVideoDecodeStatsDB
+   "+media/cdm",
++  "+media/gpu/buildflags.h",
+   "+media/remoting/device_capability_checker.h",
+   "+media/capture",
+   "+media/midi",  # For midi switches
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 84709afaa34d0..777bebeb33d9e 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -7578,11 +7578,13 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+     {"chromeos-direct-video-decoder",
+      flag_descriptions::kChromeOSDirectVideoDecoderName,
+      flag_descriptions::kChromeOSDirectVideoDecoderDescription,
+      kOsCrOS | kOsLacros,
+      FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)},
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+     {"enable-vbr-encode-acceleration",
+      flag_descriptions::kChromeOSHWVBREncodingName,
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 318a8be9ab1a6..d2497d0c403f3 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -7,6 +7,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "components/supervised_user/core/common/buildflags.h"
++#include "media/gpu/buildflags.h"
+ #include "pdf/buildflags.h"
+ 
+ // Keep in identical order as the header file, see the comment at the top
+@@ -7338,6 +7339,7 @@ const char kQuickOfficeForceFileDownloadDescription[] =
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSDirectVideoDecoderName[] = "ChromeOS Direct Video Decoder";
+ const char kChromeOSDirectVideoDecoderDescription[] =
+     "Enables the hardware-accelerated ChromeOS direct media::VideoDecoder "
+@@ -7345,7 +7347,8 @@ const char kChromeOSDirectVideoDecoderDescription[] =
+     "--platform-disallows-chromeos-direct-video-decoder command line switch "
+     "which is added for platforms where said direct VideoDecoder does not work "
+     "or is not well tested (see the disable_cros_video_decoder USE flag in "
+-    "ChromeOS)";
++    "ChromeOS). This flag is supported only on non-Intel and non-AMD devices.";
++#endif  // !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSHWVBREncodingName[] =
+     "ChromeOS Hardware Variable Bitrate Encoding";
+ const char kChromeOSHWVBREncodingDescription[] =
+diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
+index dceeca9659a85..3d091359777cc 100644
+--- a/content/public/browser/gpu_utils.cc
++++ b/content/public/browser/gpu_utils.cc
+@@ -133,20 +133,26 @@ const gpu::GpuPreferences GetGpuPreferencesFromCommandLine() {
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+   // The direct VideoDecoder is disallowed on some particular SoC/platforms.
+   const bool should_use_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      true;
++#else
+       !command_line->HasSwitch(
+           switches::kPlatformDisallowsChromeOSDirectVideoDecoder) &&
+       base::FeatureList::IsEnabled(media::kUseChromeOSDirectVideoDecoder);
++#endif  // BUILDFLAG(USE_VAAPI)
++
++  gpu_preferences.enable_chromeos_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      should_use_direct_video_decoder;
++#else
++      // For testing purposes, the following flag allows using the "other" video
++      // decoder implementation.
++      base::FeatureList::IsEnabled(
++          media::kUseAlternateVideoDecoderImplementation)
++          ? !should_use_direct_video_decoder
++          : should_use_direct_video_decoder;
++#endif  // BUILDFLAG(USE_VAAPI)
+ 
+-  // For testing purposes, the following flag allows using the "other" video
+-  // decoder implementation.
+-  if (base::FeatureList::IsEnabled(
+-          media::kUseAlternateVideoDecoderImplementation)) {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        !should_use_direct_video_decoder;
+-  } else {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        should_use_direct_video_decoder;
+-  }
+ #if BUILDFLAG(USE_VAAPI)
+   CHECK(gpu_preferences.enable_chromeos_direct_video_decoder);
+ #endif  // BUILDFLAG(USE_VAAPI)
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 1af4de46e2a02..3086b1bec2134 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -1192,6 +1192,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+              "ChromeOSHWVBREncoding",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
++#if !BUILDFLAG(USE_VAAPI)
+ // Enable the hardware-accelerated direct video decoder instead of the one
+ // needing the VdaVideoDecoder adapter. This flag is used mainly as a
+ // chrome:flag for developers debugging issues as well as to be able to
+@@ -1200,6 +1201,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+ BASE_FEATURE(kUseChromeOSDirectVideoDecoder,
+              "UseChromeOSDirectVideoDecoder",
+              base::FEATURE_ENABLED_BY_DEFAULT);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+ // Limit the number of concurrent hardware decoder instances on ChromeOS.
+ BASE_FEATURE(kLimitConcurrentDecoderInstances,
+@@ -1228,7 +1230,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+              "PreferSoftwareMT21",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ // ChromeOS has one of two VideoDecoder implementations active based on
+ // SoC/board specific configurations that are sent via command line flags. This
+ // switch allows using the non default implementation for testing.
+@@ -1236,7 +1238,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+ BASE_FEATURE(kUseAlternateVideoDecoderImplementation,
+              "UseAlternateVideoDecoderImplementation",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
+diff --git a/media/base/media_switches.h b/media/base/media_switches.h
+index 1d9c2c2d9df73..96d9595be110e 100644
+--- a/media/base/media_switches.h
++++ b/media/base/media_switches.h
+@@ -14,6 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "media/base/media_export.h"
++#include "media/gpu/buildflags.h"
+ #include "media/media_buildflags.h"
+ 
+ namespace base {
+@@ -381,16 +382,18 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kBuiltInHlsPlayer);
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWAV1Decoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWVBREncoding);
++#if !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseChromeOSDirectVideoDecoder);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kLimitConcurrentDecoderInstances);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUSeSequencedTaskRunnerForVEA);
+ #if defined(ARCH_CPU_ARM_FAMILY)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferGLImageProcessor);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferSoftwareMT21);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAlternateVideoDecoderImplementation);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
diff --git a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
similarity index 97%
rename from srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
index ea415df32835b..a2542ef420eaf 100644
--- a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
@@ -468,15 +468,3 @@ diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor
  #include <type_traits>
  
  namespace device {
-diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
---- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
-+++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
-@@ -5,6 +5,8 @@
- #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- 
-+#include <atomic>
-+
- #include "base/gtest_prod_util.h"
- #include "components/gwp_asan/client/export.h"
- #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
similarity index 56%
rename from srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
index 3d7748c3d5a26..a16c979c37f1c 100644
--- a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
@@ -1,19 +1,112 @@
-diff -up chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
---- chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me
-+++ chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
-@@ -161,7 +161,7 @@ void HostResolverCache::Set(
+diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor chromium-119.0.6045.59/base/trace_event/trace_log.cc
+--- chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor	2023-10-26 18:16:51.000000000 +0200
++++ chromium-119.0.6045.59/base/trace_event/trace_log.cc	2023-10-30 16:51:02.270151487 +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};
+ }
  
-   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_));
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc	2023-10-30 16:51:02.269151462 +0100
+@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
  
-   if (entries_.size() > max_entries_) {
-diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me	2023-08-02 15:17:52.613858423 +0200
-+++ chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-08-02 15:18:43.269790877 +0200
-@@ -1496,7 +1496,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+       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-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-10-30 16:51:02.267151412 +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-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2023-10-26 18:17:00.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc
+--- chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2023-10-26 18:17:01.000000000 +0200
++++ chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc	2023-10-30 16:51:02.268151437 +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-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor	2023-10-30 16:51:02.273151562 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-30 17:41:12.685887538 +0100
+@@ -195,9 +195,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-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-10-30 16:51:02.260151238 +0100
+@@ -1530,7 +1530,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
  
        // Issue readbacks from the surfaces:
        for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
@@ -22,9 +115,87 @@ diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_out
          SkImageInfo dst_info = SkImageInfo::Make(
              size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
              kUnpremul_SkAlphaType);
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me	2023-08-02 21:32:14.195705494 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-08-02 21:59:08.156532934 +0200
+diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/download/save_package.cc
+--- chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/download/save_package.cc	2023-10-30 16:51:02.271151512 +0100
+@@ -769,8 +769,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-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc	2023-10-30 17:38:09.351389984 +0100
+@@ -8567,7 +8567,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data), destination,
++        DestinationEnumEvent{event_type, event_data}, destination,
+         /*from_renderer=*/true, attribution_reporting_runtime_features,
+         GetFrameTreeNodeId());
+   }
+@@ -8603,7 +8603,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url),
++      DestinationURLEvent{destination_url},
+       blink::FencedFrame::ReportingDestination::kBuyer,
+       /*from_renderer=*/true, attribution_reporting_runtime_features,
+       GetFrameTreeNodeId());
+@@ -8703,8 +8703,8 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               data},
+           destination,
+           /*from_renderer=*/false, attribution_reporting_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+@@ -8717,8 +8717,8 @@ void RenderFrameHostImpl::MaybeSendFence
+     for (blink::FencedFrame::ReportingDestination destination :
+          info->destinations) {
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               info->data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               info->data},
+           destination,
+           /*from_renderer=*/false, info->attribution_reporting_runtime_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-10-30 16:51:02.261151263 +0100
 @@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
          color_interpolation_space, hue_interpolation_method, start_color,
          end_color, percentage, alpha_multiplier);
@@ -34,10 +205,113 @@ diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palett
      result_color_records.push_back(result_color_record);
    }
    return result_color_records;
-diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h
---- chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me	2023-08-03 08:27:11.371750178 +0200
-+++ chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h	2023-08-03 10:39:07.266989323 +0200
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+diff -up chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-119.0.6045.59/ui/gtk/gtk_ui.cc
+--- chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/gtk/gtk_ui.cc	2023-10-30 16:51:02.272151537 +0100
+@@ -993,11 +993,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-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc
+--- chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me	2023-10-31 18:14:49.275728099 +0100
++++ chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc	2023-10-31 18:19:54.599223239 +0100
+@@ -221,13 +221,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-119.0.6045.59/net/dns/host_resolver_cache.cc.me chromium-119.0.6045.59/net/dns/host_resolver_cache.cc
+--- chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me	2023-10-31 20:48:19.153868338 +0100
++++ chromium-119.0.6045.59/net/dns/host_resolver_cache.cc	2023-10-31 20:51:37.634526549 +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-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me	2023-10-31 22:32:58.995997897 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc	2023-10-31 22:33:28.290520601 +0100
+@@ -1733,10 +1733,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-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc
+--- chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than	2023-10-31 22:41:22.850233005 +0100
++++ chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc	2023-10-31 22:42:37.276931933 +0100
+@@ -625,7 +625,7 @@ void PasswordManager::OnUserModifiedNonP
+   // |driver| might be empty on iOS or in tests.
+   int driver_id = driver ? driver->GetId() : 0;
+   possible_usernames_.Put(
+-      PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++      PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+       PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+                            renderer_id, value, base::Time::Now(), driver_id,
+                            autocomplete_attribute_has_username, is_likely_otp));
+diff -up chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc
+--- chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than	2023-10-31 23:31:08.438267908 +0100
++++ chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc	2023-10-31 23:32:08.979358711 +0100
+@@ -2854,10 +2854,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-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc
+--- chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than	2023-11-01 11:19:42.745395797 +0100
++++ chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc	2023-11-01 11:22:16.670920679 +0100
+@@ -1881,7 +1881,7 @@ void FederatedAuthRequestImpl::ShowError
+       base::BindOnce(&FederatedAuthRequestImpl::CompleteRequestWithError,
+                      weak_ptr_factory_.GetWeakPtr()));
+   absl::optional<TokenError> token_error =
+-      error ? absl::make_optional<TokenError>(error->code, error->url)
++      error ? absl::make_optional<TokenError>({error->code, error->url})
+             : absl::nullopt;
+ 
+   // TODO(crbug.com/1485710): Refactor IdentityCredentialTokenError
+--- chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h	2023-11-01 17:29:54.269820415 +0100
+@@ -52,53 +52,53 @@
      zcr_color_manager_v1_chromaticity_names,
      PrimaryVersion>(
      {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
@@ -117,7 +391,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  // A map from the zcr_color_manager_v1 eotf_names enum values
  // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -107,68 +107,68 @@
      zcr_color_manager_v1_eotf_names,
      TransferVersion>({
      {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -128,6 +402,11 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      {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)},
@@ -219,7 +498,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  });
  
  // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -177,18 +177,18 @@
  constexpr auto kTransferMap =
      base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -245,15 +524,18 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      });
  
  // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+@@ -197,70 +197,70 @@
  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,
--          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFnExt::kSRGB, 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}},
@@ -346,222 +628,76 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
      gfx::ColorSpace::PrimaryID primaryID,
-diff -up chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me	2023-08-03 13:23:33.748394615 +0200
-+++ chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-08-03 13:25:01.140489840 +0200
-@@ -470,10 +470,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-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
-diff -up chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me	2023-09-15 10:48:41.330294241 +0200
-+++ chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h	2023-09-15 10:51:24.501324416 +0200
-@@ -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-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me	2023-09-15 12:17:35.664861257 +0200
-+++ chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc	2023-09-15 12:21:06.112694256 +0200
-@@ -8509,7 +8509,7 @@ void RenderFrameHostImpl::SendFencedFram
-   for (const blink::FencedFrame::ReportingDestination& destination :
-        destinations) {
-     SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(event_type, event_data), destination,
-+        DestinationEnumEvent{event_type, event_data}, destination,
-         /*from_renderer=*/true, attribution_reporting_runtime_features,
-         GetFrameTreeNodeId());
-   }
-@@ -8545,7 +8545,7 @@ void RenderFrameHostImpl::SendFencedFram
-   }
- 
-   SendFencedFrameReportingBeaconInternal(
--      DestinationURLEvent(destination_url),
-+      DestinationURLEvent{destination_url},
-       blink::FencedFrame::ReportingDestination::kBuyer,
-       /*from_renderer=*/true, attribution_reporting_runtime_features,
-       GetFrameTreeNodeId());
-@@ -8617,8 +8617,8 @@ void RenderFrameHostImpl::MaybeSendFence
-   for (blink::FencedFrame::ReportingDestination destination :
-        info->destinations) {
-     initiator_rfh->SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
--                             info->data),
-+        DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
-+                             info->data},
-         destination,
-         /*from_renderer=*/false, info->attribution_reporting_runtime_features,
-         GetFrameTreeNodeId(), navigation_request.GetNavigationId());
-diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me	2023-09-15 22:04:09.233356627 +0200
-+++ chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-09-15 22:05:44.126063992 +0200
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
-   // TODO(crbug.com/1445072): Add actual domains with attribute names.
-   profile_attributes->insert(std::make_pair(
-       "supported.test",
--      SAMLProfileAttributes("placeholderName", "placeholderDomain",
--                            "placeholderToken")));
-+      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+                            "placeholderToken"}));
- 
-   // Extract domains and attributes from the command line switch.
-   const base::CommandLine& command_line =
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::
-                         "a 'version' field of type string");
-         }
+@@ -283,4 +283,4 @@
  
--        full_version_list.emplace_back(*brand, *version);
-+        full_version_list.emplace_back() = {*brand, *version};
-       }
+ }  // namespace ui::wayland
  
-       client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,8 @@ void OneTimePermissionProvider::OnSuspen
+-#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me	2023-11-01 20:46:15.997861278 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2023-11-01 20:49:33.603371680 +0100
+@@ -58,13 +58,13 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() {
+   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};
  
-       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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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};
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+-      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal};
+   return buttons;
  }
  
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,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)};
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than	2023-11-01 20:52:29.005464494 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2023-11-01 21:14:12.741859604 +0100
+@@ -56,12 +56,12 @@ std::vector<EmbeddedPermissionPromptAskV
+ EmbeddedPermissionPromptAskView::GetButtonsConfiguration() {
+   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};
    }
-   return config;
+-  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-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
-@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
-     CHECK(observations.empty());
-     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
-          proto_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-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
-@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
-   base::StringToInt64(wallet_credential_specifics.instrument_id(),
-                       &instrument_id);
- 
--  return ServerCvc(
-+  return ServerCvc{
-       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
-       base::Time::UnixEpoch() +
-           base::Milliseconds(wallet_credential_specifics
--                                 .last_updated_time_unix_epoch_millis()));
-+                                 .last_updated_time_unix_epoch_millis())};
- }
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me	2023-11-01 21:22:02.222646903 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2023-11-01 21:19:58.769619393 +0100
+@@ -72,6 +72,7 @@ class EmbeddedPermissionPromptBaseView :
+   struct RequestLineConfiguration {
+     const raw_ptr<const gfx::VectorIcon> icon;
+     std::u16string message;
++    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+   };
  
- VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
-diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
---- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
-+++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
-@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
-     if (response_error) {
-       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
-       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
--      token_result.error = TokenError(error_code, error_url);
-+      token_result.error = TokenError{error_code, error_url};
-     }
-   }
+   struct ButtonConfiguration {
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than	2023-11-01 21:25:31.118626473 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2023-11-01 21:30:06.383340274 +0100
+@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() {
+   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 --git a/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
new file mode 100644
index 0000000000000..5cb969f4f40cf
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
@@ -0,0 +1,21 @@
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me	2023-10-27 20:07:16.421230815 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h	2023-10-27 20:07:36.883600085 +0200
+@@ -52,7 +52,7 @@ class FragmentDataIterator
+  public:
+   explicit FragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(&object.FirstFragment()) {}
+-  explicit FragmentDataIterator(nullptr_t)
++  explicit FragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
+@@ -63,7 +63,7 @@ class MutableFragmentDataIterator
+   explicit MutableFragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(
+             &object.GetMutableForPainting().FirstFragment()) {}
+-  explicit MutableFragmentDataIterator(nullptr_t)
++  explicit MutableFragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
diff --git a/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
new file mode 100644
index 0000000000000..717d897446c7c
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
@@ -0,0 +1,164 @@
+commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606
+Author: Nick Diego Yamane <nickdiego@igalia.com>
+Date:   Thu Nov 2 17:26:25 2023 +0000
+
+    gbm: nvidia: use separate bo to verify modifiers
+    
+    Buggy Nvidia drivers fail to return FDs for planes of a BO which had
+    already an imported BO destroyed before. This is a workaround for that
+    issue, which consists of creating/destroying a separate 1x1 BO for
+    validating the modifiers before actually creating the final requested
+    BO, which for now is limited to IS_LINUX builds.
+    
+    The Nvidia driver bug is being tracked under internal bug 4315529. There
+    seems to be other issues when running under Wayland with Nvidia, which
+    will be tracked and addressed in separate patches.
+    
+    R=dcastagna, msisov@igalia.com
+    
+      with ozone/wayland backend and verify GPU acceleration is not broken.
+    
+    Test: In a single Nvidia GPU setup, with proprietary driver, run Chrome
+    Bug: 1273758, 1478684, 1463851
+    Change-Id: I9f322bcf40b460bcd4ead02f05dd2e9a8d271cea
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989782
+    Reviewed-by: Maksim Sisov <msisov@igalia.com>
+    Commit-Queue: Nick Yamane <nickdiego@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1218924}
+
+diff --git a/ui/gfx/linux/gbm_wrapper.cc b/ui/gfx/linux/gbm_wrapper.cc
+index bf90b76605f68..14918c19c0ab0 100644
+--- a/ui/gfx/linux/gbm_wrapper.cc
++++ b/ui/gfx/linux/gbm_wrapper.cc
+@@ -11,6 +11,7 @@
+ #include "base/logging.h"
+ #include "base/memory/raw_ptr.h"
+ #include "base/memory/raw_ptr_exclusion.h"
++#include "base/numerics/safe_conversions.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "skia/ext/legacy_display_globals.h"
+ #include "third_party/skia/include/core/SkSurface.h"
+@@ -71,6 +72,7 @@ base::ScopedFD GetPlaneFdForBo(gbm_bo* bo, size_t plane) {
+   int ret;
+   // Use DRM_RDWR to allow the fd to be mappable in another process.
+   ret = drmPrimeHandleToFD(dev_fd, plane_handle, DRM_CLOEXEC | DRM_RDWR, &fd);
++  PLOG_IF(ERROR, ret != 0) << "Failed to get fd for plane.";
+ 
+   // Older DRM implementations blocked DRM_RDWR, but gave a read/write mapping
+   // anyways
+@@ -301,58 +303,82 @@ class Device final : public ui::GbmDevice {
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferWithModifiers(
+       uint32_t format,
+-      const gfx::Size& size,
++      const gfx::Size& requested_size,
+       uint32_t flags,
+       const std::vector<uint64_t>& modifiers) override {
+-    if (modifiers.empty())
+-      return CreateBuffer(format, size, flags);
+-
+-    std::vector<uint64_t> filtered_modifiers =
+-        GetFilteredModifiers(format, flags, modifiers);
+-    struct gbm_bo* bo = nullptr;
+-    while (filtered_modifiers.size() > 0) {
+-      bo = gbm_bo_create_with_modifiers(device_, size.width(), size.height(),
+-                                        format, filtered_modifiers.data(),
+-                                        filtered_modifiers.size());
+-      if (!bo) {
++    if (modifiers.empty()) {
++      return CreateBuffer(format, requested_size, flags);
++    }
++
++    // Buggy drivers prevent us from getting plane FDs from a BO which had its
++    // previously imported BO destroyed. E.g: Nvidia. Thus, on Linux Desktop, we
++    // do the create/import modifiers validation loop below using a separate set
++    // of 1x1 BOs which are destroyed before creating the final BO creation used
++    // to instantiate the returned GbmBuffer.
++    gfx::Size size =
++#if BUILDFLAG(IS_LINUX)
++        gfx::Size(1, 1);
++#else
++        requested_size;
++#endif
++    auto filtered_modifiers = GetFilteredModifiers(format, flags, modifiers);
++    struct gbm_bo* created_bo = nullptr;
++    bool valid_modifiers = false;
++
++    while (!valid_modifiers && !filtered_modifiers.empty()) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, size.width(), size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      if (!created_bo) {
+         return nullptr;
+       }
+ 
+-      struct gbm_import_fd_modifier_data fd_data;
+-      fd_data.width = size.width();
+-      fd_data.height = size.height();
+-      fd_data.format = format;
+-      fd_data.num_fds = gbm_bo_get_plane_count(bo);
+-      fd_data.modifier = gbm_bo_get_modifier(bo);
+-
+-      // Store fds in the vector of base::ScopedFDs. Will be released
+-      // automatically.
++      const int planes_count = gbm_bo_get_plane_count(created_bo);
++      struct gbm_import_fd_modifier_data fd_data = {
++          .width = base::checked_cast<uint32_t>(size.width()),
++          .height = base::checked_cast<uint32_t>(size.height()),
++          .format = format,
++          .num_fds = base::checked_cast<uint32_t>(planes_count),
++          .modifier = gbm_bo_get_modifier(created_bo)};
++      // Store fds in a base::ScopedFDs vector. Will be released automatically.
+       std::vector<base::ScopedFD> fds;
+       for (size_t i = 0; i < static_cast<size_t>(fd_data.num_fds); ++i) {
+-        fds.emplace_back(GetPlaneFdForBo(bo, i));
++        fds.emplace_back(GetPlaneFdForBo(created_bo, i));
+         fd_data.fds[i] = fds.back().get();
+-        fd_data.strides[i] = gbm_bo_get_stride_for_plane(bo, i);
+-        fd_data.offsets[i] = gbm_bo_get_offset(bo, i);
++        fd_data.strides[i] = gbm_bo_get_stride_for_plane(created_bo, i);
++        fd_data.offsets[i] = gbm_bo_get_offset(created_bo, i);
+       }
+ 
+-      struct gbm_bo* bo_import =
++      struct gbm_bo* imported_bo =
+           gbm_bo_import(device_, GBM_BO_IMPORT_FD_MODIFIER, &fd_data, flags);
+-      if (bo_import) {
+-        gbm_bo_destroy(bo_import);
+-        break;
++
++      if (imported_bo) {
++        valid_modifiers = true;
++        gbm_bo_destroy(imported_bo);
+       } else {
+-        gbm_bo_destroy(bo);
+-        bo = nullptr;
+         AddModifierToBlocklist(format, flags, fd_data.modifier);
+         filtered_modifiers =
+             GetFilteredModifiers(format, flags, filtered_modifiers);
+       }
++
++      if (!valid_modifiers || size != requested_size) {
++        gbm_bo_destroy(created_bo);
++        created_bo = nullptr;
++      }
+     }
+-    if (!bo) {
+-      return nullptr;
++
++    // If modifiers were successfully verified though `created_bo` is null here,
++    // it it means that the buffer created for verification could not be reused,
++    // ie: different size, so create it now with the `requested_size`.
++    if (valid_modifiers && !created_bo) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, requested_size.width(), requested_size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      PLOG_IF(ERROR, !created_bo) << "Failed to create BO with modifiers.";
+     }
+ 
+-    return CreateBufferForBO(bo, format, size, flags);
++    return created_bo ? CreateBufferForBO(created_bo, format, size, flags)
++                      : nullptr;
+   }
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferFromHandle(
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index cc36911cd338d..996f5a7eb67c6 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=118.0.5993.70
+version=119.0.6045.105
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
+checksum=73cb8c39e928f8c627d747d37a3b020f08913ef5508f893758d70bdbd545dbcf
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 119.0.6045.105.
  2023-11-04 15:08 [PR PATCH] chromium: update to 119.0.6045.105 Duncaen
@ 2023-11-05 14:04 ` Duncaen
  2023-11-05 14:34 ` Duncaen
  2023-11-05 23:15 ` [PR PATCH] [Merged]: " Duncaen
  2 siblings, 0 replies; 4+ messages in thread
From: Duncaen @ 2023-11-05 14:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 412 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-119
https://github.com/void-linux/void-packages/pull/47058

chromium: update to 119.0.6045.105.
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/47058.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-119-47058.patch --]
[-- Type: text/x-diff, Size: 75721 bytes --]

From 70c68eb323838505293f746fd95c816c2bffe2ee Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sat, 4 Nov 2023 16:02:39 +0100
Subject: [PATCH] chromium: update to 119.0.6045.105.

---
 .../chromium-118-use_system_freetype.patch    |  91 ---
 .../patches/chromium-119-assert.patch         |  12 +
 .../patches/chromium-119-constexpr.patch      |  12 +
 ....4.patch => chromium-119-ffmpeg-4.4.patch} |  14 +-
 ...tVideoDecoder-flag-on-VA-API-devices.patch | 195 ++++++
 ...> chromium-119-missing-header-files.patch} |  12 -
 ...hromium-119-no_matching_constructor.patch} | 608 +++++++++++-------
 ...-119-nullptr_t-without-namespace-std.patch |  21 +
 ...a-use-separate-bo-to-verify-modifier.patch | 164 +++++
 srcpkgs/chromium/template                     |   7 +-
 10 files changed, 786 insertions(+), 350 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-assert.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-constexpr.patch
 rename srcpkgs/chromium/patches/{chromium-118-ffmpeg-4.4.patch => chromium-119-ffmpeg-4.4.patch} (53%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
 rename srcpkgs/chromium/patches/{chromium-118-missing-header-files.patch => chromium-119-missing-header-files.patch} (97%)
 rename srcpkgs/chromium/patches/{chromium-118-no_matching_constructor.patch => chromium-119-no_matching_constructor.patch} (56%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch

diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
deleted file mode 100644
index ce9fbdebe2fb7..0000000000000
--- a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-commit ed354d00aeda84693611b14baa56a287557a26b5
-Author: Munira Tursunova <moonira@google.com>
-Date:   Tue Sep 12 11:54:48 2023 +0000
-
-    Add check for use_system_freetype when importing private freetype header
-    
-    In [0] the include of private freetype header was added, which caused
-    build breakage when use_system_freetype=true, see [1].
-    
-    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
-    
-    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
-    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
-    
-    Bug: 1429581
-    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
-    Commit-Queue: Munira Tursunova <moonira@google.com>
-    Reviewed-by: Dominik Röttsches <drott@chromium.org>
-    Reviewed-by: Rick Byers <rbyers@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1195323}
-
-diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
-index 7b086f95413ff..4ce797ebad722 100644
---- a/third_party/BUILD.gn
-+++ b/third_party/BUILD.gn
-@@ -2,6 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
-+import("//build/buildflag_header.gni")
- import("//build/config/features.gni")
- import("//build/config/freetype/freetype.gni")
- import("//third_party/harfbuzz-ng/harfbuzz.gni")
-@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
-     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
-   }
- }
-+
-+buildflag_header("freetype_buildflags") {
-+  header = "freetype_buildflags.h"
-+  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
-+}
-diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
-index 591d2f939605b..f6a2cd2168d1e 100644
---- a/third_party/blink/renderer/platform/BUILD.gn
-+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1717,6 +1717,7 @@ component("platform") {
-     "//services/viz/public/cpp/gpu",
-     "//skia",
-     "//skia:skcms",
-+    "//third_party:freetype_buildflags",
-     "//third_party:freetype_harfbuzz",
-     "//third_party/abseil-cpp:absl",
-     "//third_party/blink/public:image_resources",
-diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-index abe06f35c14a5..b2bfd88f0d85d 100644
---- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-+++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-@@ -48,7 +48,7 @@
- #include "third_party/blink/renderer/platform/wtf/math_extras.h"
- #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
- #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
--#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#include "third_party/freetype_buildflags.h"
- #include "third_party/skia/include/core/SkFontMetrics.h"
- #include "third_party/skia/include/core/SkPath.h"
- #include "third_party/skia/include/core/SkTypeface.h"
-@@ -57,12 +57,22 @@
- #include "ui/gfx/geometry/skia_conversions.h"
- #include "v8/include/v8.h"
- 
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
-+#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#endif
-+
- namespace blink {
- 
- constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
- constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
-+
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
- constexpr int32_t kFontObjectsMemoryConsumption =
-     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
-+#else
-+// sizeof(AF_LatinMetricsRec) = 2128
-+constexpr int32_t kFontObjectsMemoryConsumption = 2128;
-+#endif
- 
- SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
-                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-119-assert.patch b/srcpkgs/chromium/patches/chromium-119-assert.patch
new file mode 100644
index 0000000000000..6c502f13a5955
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-assert.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/v8/src/base/small-vector.h.than chromium-119.0.6045.59/v8/src/base/small-vector.h
+--- chromium-119.0.6045.59/v8/src/base/small-vector.h.than	2023-11-01 16:13:12.645301345 +0100
++++ chromium-119.0.6045.59/v8/src/base/small-vector.h	2023-11-01 16:13:29.660610182 +0100
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
++  //ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:
diff --git a/srcpkgs/chromium/patches/chromium-119-constexpr.patch b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
new file mode 100644
index 0000000000000..b195ff408ba81
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h
+--- chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me	2023-10-31 21:05:05.548565241 +0100
++++ chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h	2023-10-31 21:20:53.945532094 +0100
+@@ -93,7 +93,7 @@ class MiracleParameter {
+ template <>
+ class MiracleParameter<std::string> : public MiracleParameterBase<std::string> {
+  public:
+-  constexpr MiracleParameter(const base::Feature* feature,
++  MiracleParameter(const base::Feature* feature,
+                              const char* param_name,
+                              std::string default_value)
+       : MiracleParameterBase(feature, param_name, std::move(default_value)) {}
diff --git a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
similarity index 53%
rename from srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
index 556c734d4e02e..04d04b166ba37 100644
--- a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
@@ -1,17 +1,15 @@
-diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
-index ac4713b07268..492a9a37d096 100644
---- a/media/filters/ffmpeg_demuxer.cc
+--- a/media/filters/ffmpeg_demuxer.cc.orig
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
-                                      side_data.data(), side_data.size());
-   } else {
+@@ -390,7 +390,7 @@
+ 
+   scoped_refptr<DecoderBuffer> buffer;
+ 
 -    size_t side_data_size = 0;
 +    int side_data_size = 0;
      uint8_t* side_data = av_packet_get_side_data(
          packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
  
-@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+@@ -453,7 +453,7 @@
                                         packet->size - data_offset);
      }
  
diff --git a/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
new file mode 100644
index 0000000000000..88d675e8047f0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
@@ -0,0 +1,195 @@
+commit 87fca7f1759e800bd72b5ab6511eea17d6400a76
+Author: Pilar Molina Lopez <pmolinalopez@chromium.org>
+Date:   Tue Oct 24 19:57:55 2023 +0000
+
+    video: hide UseChromeOSDirectVideoDecoder flag on VA-API devices
+    
+    We are seeing crashes causes by this CHECK statement:
+    https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/gpu_utils.cc;l=151;drc=0e777ba9b6c34611705d5b145c92bcd09539011c
+    It's triggered when the user manually disables the UseChromeOSDirectVideoDecoder
+    flag on VA-API devices (Intel and AMD). This flag is supported only on
+    non-Intel and non-AMD devices. This CL adds this information to the flag
+    description and hides the flag in case VA-API is used.
+    
+    Bug: 1469285
+    Test: manual test on volteer
+    Change-Id: I153b9ccb3815498c91ce5eee966834060749e247
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4960919
+    Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+    Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
+    Reviewed-by: Avi Drissman <avi@chromium.org>
+    Commit-Queue: Pilar Molina Lopez <pmolinalopez@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1214411}
+
+diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
+index ee9fb206cde36..0fe18013ab044 100644
+--- a/chrome/browser/DEPS
++++ b/chrome/browser/DEPS
+@@ -418,6 +418,7 @@ include_rules = [
+   "+media/base",  # For media switches
+   "+media/capabilities", # For InMemoryVideoDecodeStatsDB
+   "+media/cdm",
++  "+media/gpu/buildflags.h",
+   "+media/remoting/device_capability_checker.h",
+   "+media/capture",
+   "+media/midi",  # For midi switches
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 84709afaa34d0..777bebeb33d9e 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -7578,11 +7578,13 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+     {"chromeos-direct-video-decoder",
+      flag_descriptions::kChromeOSDirectVideoDecoderName,
+      flag_descriptions::kChromeOSDirectVideoDecoderDescription,
+      kOsCrOS | kOsLacros,
+      FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)},
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+     {"enable-vbr-encode-acceleration",
+      flag_descriptions::kChromeOSHWVBREncodingName,
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 318a8be9ab1a6..d2497d0c403f3 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -7,6 +7,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "components/supervised_user/core/common/buildflags.h"
++#include "media/gpu/buildflags.h"
+ #include "pdf/buildflags.h"
+ 
+ // Keep in identical order as the header file, see the comment at the top
+@@ -7338,6 +7339,7 @@ const char kQuickOfficeForceFileDownloadDescription[] =
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSDirectVideoDecoderName[] = "ChromeOS Direct Video Decoder";
+ const char kChromeOSDirectVideoDecoderDescription[] =
+     "Enables the hardware-accelerated ChromeOS direct media::VideoDecoder "
+@@ -7345,7 +7347,8 @@ const char kChromeOSDirectVideoDecoderDescription[] =
+     "--platform-disallows-chromeos-direct-video-decoder command line switch "
+     "which is added for platforms where said direct VideoDecoder does not work "
+     "or is not well tested (see the disable_cros_video_decoder USE flag in "
+-    "ChromeOS)";
++    "ChromeOS). This flag is supported only on non-Intel and non-AMD devices.";
++#endif  // !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSHWVBREncodingName[] =
+     "ChromeOS Hardware Variable Bitrate Encoding";
+ const char kChromeOSHWVBREncodingDescription[] =
+diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
+index dceeca9659a85..3d091359777cc 100644
+--- a/content/public/browser/gpu_utils.cc
++++ b/content/public/browser/gpu_utils.cc
+@@ -133,20 +133,26 @@ const gpu::GpuPreferences GetGpuPreferencesFromCommandLine() {
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+   // The direct VideoDecoder is disallowed on some particular SoC/platforms.
+   const bool should_use_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      true;
++#else
+       !command_line->HasSwitch(
+           switches::kPlatformDisallowsChromeOSDirectVideoDecoder) &&
+       base::FeatureList::IsEnabled(media::kUseChromeOSDirectVideoDecoder);
++#endif  // BUILDFLAG(USE_VAAPI)
++
++  gpu_preferences.enable_chromeos_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      should_use_direct_video_decoder;
++#else
++      // For testing purposes, the following flag allows using the "other" video
++      // decoder implementation.
++      base::FeatureList::IsEnabled(
++          media::kUseAlternateVideoDecoderImplementation)
++          ? !should_use_direct_video_decoder
++          : should_use_direct_video_decoder;
++#endif  // BUILDFLAG(USE_VAAPI)
+ 
+-  // For testing purposes, the following flag allows using the "other" video
+-  // decoder implementation.
+-  if (base::FeatureList::IsEnabled(
+-          media::kUseAlternateVideoDecoderImplementation)) {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        !should_use_direct_video_decoder;
+-  } else {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        should_use_direct_video_decoder;
+-  }
+ #if BUILDFLAG(USE_VAAPI)
+   CHECK(gpu_preferences.enable_chromeos_direct_video_decoder);
+ #endif  // BUILDFLAG(USE_VAAPI)
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 1af4de46e2a02..3086b1bec2134 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -1192,6 +1192,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+              "ChromeOSHWVBREncoding",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
++#if !BUILDFLAG(USE_VAAPI)
+ // Enable the hardware-accelerated direct video decoder instead of the one
+ // needing the VdaVideoDecoder adapter. This flag is used mainly as a
+ // chrome:flag for developers debugging issues as well as to be able to
+@@ -1200,6 +1201,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+ BASE_FEATURE(kUseChromeOSDirectVideoDecoder,
+              "UseChromeOSDirectVideoDecoder",
+              base::FEATURE_ENABLED_BY_DEFAULT);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+ // Limit the number of concurrent hardware decoder instances on ChromeOS.
+ BASE_FEATURE(kLimitConcurrentDecoderInstances,
+@@ -1228,7 +1230,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+              "PreferSoftwareMT21",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ // ChromeOS has one of two VideoDecoder implementations active based on
+ // SoC/board specific configurations that are sent via command line flags. This
+ // switch allows using the non default implementation for testing.
+@@ -1236,7 +1238,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+ BASE_FEATURE(kUseAlternateVideoDecoderImplementation,
+              "UseAlternateVideoDecoderImplementation",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
+diff --git a/media/base/media_switches.h b/media/base/media_switches.h
+index 1d9c2c2d9df73..96d9595be110e 100644
+--- a/media/base/media_switches.h
++++ b/media/base/media_switches.h
+@@ -14,6 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "media/base/media_export.h"
++#include "media/gpu/buildflags.h"
+ #include "media/media_buildflags.h"
+ 
+ namespace base {
+@@ -381,16 +382,18 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kBuiltInHlsPlayer);
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWAV1Decoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWVBREncoding);
++#if !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseChromeOSDirectVideoDecoder);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kLimitConcurrentDecoderInstances);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUSeSequencedTaskRunnerForVEA);
+ #if defined(ARCH_CPU_ARM_FAMILY)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferGLImageProcessor);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferSoftwareMT21);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAlternateVideoDecoderImplementation);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
diff --git a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
similarity index 97%
rename from srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
index ea415df32835b..a2542ef420eaf 100644
--- a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
@@ -468,15 +468,3 @@ diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor
  #include <type_traits>
  
  namespace device {
-diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
---- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
-+++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
-@@ -5,6 +5,8 @@
- #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- 
-+#include <atomic>
-+
- #include "base/gtest_prod_util.h"
- #include "components/gwp_asan/client/export.h"
- #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
similarity index 56%
rename from srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
index 3d7748c3d5a26..a16c979c37f1c 100644
--- a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
@@ -1,19 +1,112 @@
-diff -up chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
---- chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me
-+++ chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
-@@ -161,7 +161,7 @@ void HostResolverCache::Set(
+diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor chromium-119.0.6045.59/base/trace_event/trace_log.cc
+--- chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor	2023-10-26 18:16:51.000000000 +0200
++++ chromium-119.0.6045.59/base/trace_event/trace_log.cc	2023-10-30 16:51:02.270151487 +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};
+ }
  
-   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_));
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc	2023-10-30 16:51:02.269151462 +0100
+@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
  
-   if (entries_.size() > max_entries_) {
-diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me	2023-08-02 15:17:52.613858423 +0200
-+++ chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-08-02 15:18:43.269790877 +0200
-@@ -1496,7 +1496,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+       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-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-10-30 16:51:02.267151412 +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-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2023-10-26 18:17:00.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc
+--- chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2023-10-26 18:17:01.000000000 +0200
++++ chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc	2023-10-30 16:51:02.268151437 +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-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor	2023-10-30 16:51:02.273151562 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-30 17:41:12.685887538 +0100
+@@ -195,9 +195,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-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-10-30 16:51:02.260151238 +0100
+@@ -1530,7 +1530,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
  
        // Issue readbacks from the surfaces:
        for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
@@ -22,9 +115,87 @@ diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_out
          SkImageInfo dst_info = SkImageInfo::Make(
              size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
              kUnpremul_SkAlphaType);
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me	2023-08-02 21:32:14.195705494 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-08-02 21:59:08.156532934 +0200
+diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/download/save_package.cc
+--- chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/download/save_package.cc	2023-10-30 16:51:02.271151512 +0100
+@@ -769,8 +769,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-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc	2023-10-30 17:38:09.351389984 +0100
+@@ -8567,7 +8567,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data), destination,
++        DestinationEnumEvent{event_type, event_data}, destination,
+         /*from_renderer=*/true, attribution_reporting_runtime_features,
+         GetFrameTreeNodeId());
+   }
+@@ -8603,7 +8603,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url),
++      DestinationURLEvent{destination_url},
+       blink::FencedFrame::ReportingDestination::kBuyer,
+       /*from_renderer=*/true, attribution_reporting_runtime_features,
+       GetFrameTreeNodeId());
+@@ -8703,8 +8703,8 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               data},
+           destination,
+           /*from_renderer=*/false, attribution_reporting_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+@@ -8717,8 +8717,8 @@ void RenderFrameHostImpl::MaybeSendFence
+     for (blink::FencedFrame::ReportingDestination destination :
+          info->destinations) {
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               info->data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               info->data},
+           destination,
+           /*from_renderer=*/false, info->attribution_reporting_runtime_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-10-30 16:51:02.261151263 +0100
 @@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
          color_interpolation_space, hue_interpolation_method, start_color,
          end_color, percentage, alpha_multiplier);
@@ -34,10 +205,113 @@ diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palett
      result_color_records.push_back(result_color_record);
    }
    return result_color_records;
-diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h
---- chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me	2023-08-03 08:27:11.371750178 +0200
-+++ chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h	2023-08-03 10:39:07.266989323 +0200
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+diff -up chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-119.0.6045.59/ui/gtk/gtk_ui.cc
+--- chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/gtk/gtk_ui.cc	2023-10-30 16:51:02.272151537 +0100
+@@ -993,11 +993,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-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc
+--- chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me	2023-10-31 18:14:49.275728099 +0100
++++ chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc	2023-10-31 18:19:54.599223239 +0100
+@@ -221,13 +221,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-119.0.6045.59/net/dns/host_resolver_cache.cc.me chromium-119.0.6045.59/net/dns/host_resolver_cache.cc
+--- chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me	2023-10-31 20:48:19.153868338 +0100
++++ chromium-119.0.6045.59/net/dns/host_resolver_cache.cc	2023-10-31 20:51:37.634526549 +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-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me	2023-10-31 22:32:58.995997897 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc	2023-10-31 22:33:28.290520601 +0100
+@@ -1733,10 +1733,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-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc
+--- chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than	2023-10-31 22:41:22.850233005 +0100
++++ chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc	2023-10-31 22:42:37.276931933 +0100
+@@ -625,7 +625,7 @@ void PasswordManager::OnUserModifiedNonP
+   // |driver| might be empty on iOS or in tests.
+   int driver_id = driver ? driver->GetId() : 0;
+   possible_usernames_.Put(
+-      PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++      PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+       PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+                            renderer_id, value, base::Time::Now(), driver_id,
+                            autocomplete_attribute_has_username, is_likely_otp));
+diff -up chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc
+--- chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than	2023-10-31 23:31:08.438267908 +0100
++++ chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc	2023-10-31 23:32:08.979358711 +0100
+@@ -2854,10 +2854,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-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc
+--- chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than	2023-11-01 11:19:42.745395797 +0100
++++ chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc	2023-11-01 11:22:16.670920679 +0100
+@@ -1881,7 +1881,7 @@ void FederatedAuthRequestImpl::ShowError
+       base::BindOnce(&FederatedAuthRequestImpl::CompleteRequestWithError,
+                      weak_ptr_factory_.GetWeakPtr()));
+   absl::optional<TokenError> token_error =
+-      error ? absl::make_optional<TokenError>(error->code, error->url)
++      error ? absl::make_optional<TokenError>({error->code, error->url})
+             : absl::nullopt;
+ 
+   // TODO(crbug.com/1485710): Refactor IdentityCredentialTokenError
+--- chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h	2023-11-01 17:29:54.269820415 +0100
+@@ -52,53 +52,53 @@
      zcr_color_manager_v1_chromaticity_names,
      PrimaryVersion>(
      {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
@@ -117,7 +391,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  // A map from the zcr_color_manager_v1 eotf_names enum values
  // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -107,68 +107,68 @@
      zcr_color_manager_v1_eotf_names,
      TransferVersion>({
      {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -128,6 +402,11 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      {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)},
@@ -219,7 +498,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  });
  
  // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -177,18 +177,18 @@
  constexpr auto kTransferMap =
      base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -245,15 +524,18 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      });
  
  // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+@@ -197,70 +197,70 @@
  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,
--          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFnExt::kSRGB, 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}},
@@ -346,222 +628,76 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
      gfx::ColorSpace::PrimaryID primaryID,
-diff -up chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me	2023-08-03 13:23:33.748394615 +0200
-+++ chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-08-03 13:25:01.140489840 +0200
-@@ -470,10 +470,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-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
-diff -up chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me	2023-09-15 10:48:41.330294241 +0200
-+++ chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h	2023-09-15 10:51:24.501324416 +0200
-@@ -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-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me	2023-09-15 12:17:35.664861257 +0200
-+++ chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc	2023-09-15 12:21:06.112694256 +0200
-@@ -8509,7 +8509,7 @@ void RenderFrameHostImpl::SendFencedFram
-   for (const blink::FencedFrame::ReportingDestination& destination :
-        destinations) {
-     SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(event_type, event_data), destination,
-+        DestinationEnumEvent{event_type, event_data}, destination,
-         /*from_renderer=*/true, attribution_reporting_runtime_features,
-         GetFrameTreeNodeId());
-   }
-@@ -8545,7 +8545,7 @@ void RenderFrameHostImpl::SendFencedFram
-   }
- 
-   SendFencedFrameReportingBeaconInternal(
--      DestinationURLEvent(destination_url),
-+      DestinationURLEvent{destination_url},
-       blink::FencedFrame::ReportingDestination::kBuyer,
-       /*from_renderer=*/true, attribution_reporting_runtime_features,
-       GetFrameTreeNodeId());
-@@ -8617,8 +8617,8 @@ void RenderFrameHostImpl::MaybeSendFence
-   for (blink::FencedFrame::ReportingDestination destination :
-        info->destinations) {
-     initiator_rfh->SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
--                             info->data),
-+        DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
-+                             info->data},
-         destination,
-         /*from_renderer=*/false, info->attribution_reporting_runtime_features,
-         GetFrameTreeNodeId(), navigation_request.GetNavigationId());
-diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me	2023-09-15 22:04:09.233356627 +0200
-+++ chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-09-15 22:05:44.126063992 +0200
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
-   // TODO(crbug.com/1445072): Add actual domains with attribute names.
-   profile_attributes->insert(std::make_pair(
-       "supported.test",
--      SAMLProfileAttributes("placeholderName", "placeholderDomain",
--                            "placeholderToken")));
-+      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+                            "placeholderToken"}));
- 
-   // Extract domains and attributes from the command line switch.
-   const base::CommandLine& command_line =
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::
-                         "a 'version' field of type string");
-         }
+@@ -283,4 +283,4 @@
  
--        full_version_list.emplace_back(*brand, *version);
-+        full_version_list.emplace_back() = {*brand, *version};
-       }
+ }  // namespace ui::wayland
  
-       client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,8 @@ void OneTimePermissionProvider::OnSuspen
+-#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me	2023-11-01 20:46:15.997861278 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2023-11-01 20:49:33.603371680 +0100
+@@ -58,13 +58,13 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() {
+   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};
  
-       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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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};
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+-      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal};
+   return buttons;
  }
  
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,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)};
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than	2023-11-01 20:52:29.005464494 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2023-11-01 21:14:12.741859604 +0100
+@@ -56,12 +56,12 @@ std::vector<EmbeddedPermissionPromptAskV
+ EmbeddedPermissionPromptAskView::GetButtonsConfiguration() {
+   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};
    }
-   return config;
+-  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-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
-@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
-     CHECK(observations.empty());
-     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
-          proto_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-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
-@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
-   base::StringToInt64(wallet_credential_specifics.instrument_id(),
-                       &instrument_id);
- 
--  return ServerCvc(
-+  return ServerCvc{
-       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
-       base::Time::UnixEpoch() +
-           base::Milliseconds(wallet_credential_specifics
--                                 .last_updated_time_unix_epoch_millis()));
-+                                 .last_updated_time_unix_epoch_millis())};
- }
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me	2023-11-01 21:22:02.222646903 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2023-11-01 21:19:58.769619393 +0100
+@@ -72,6 +72,7 @@ class EmbeddedPermissionPromptBaseView :
+   struct RequestLineConfiguration {
+     const raw_ptr<const gfx::VectorIcon> icon;
+     std::u16string message;
++    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+   };
  
- VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
-diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
---- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
-+++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
-@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
-     if (response_error) {
-       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
-       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
--      token_result.error = TokenError(error_code, error_url);
-+      token_result.error = TokenError{error_code, error_url};
-     }
-   }
+   struct ButtonConfiguration {
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than	2023-11-01 21:25:31.118626473 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2023-11-01 21:30:06.383340274 +0100
+@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() {
+   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 --git a/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
new file mode 100644
index 0000000000000..5cb969f4f40cf
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
@@ -0,0 +1,21 @@
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me	2023-10-27 20:07:16.421230815 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h	2023-10-27 20:07:36.883600085 +0200
+@@ -52,7 +52,7 @@ class FragmentDataIterator
+  public:
+   explicit FragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(&object.FirstFragment()) {}
+-  explicit FragmentDataIterator(nullptr_t)
++  explicit FragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
+@@ -63,7 +63,7 @@ class MutableFragmentDataIterator
+   explicit MutableFragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(
+             &object.GetMutableForPainting().FirstFragment()) {}
+-  explicit MutableFragmentDataIterator(nullptr_t)
++  explicit MutableFragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
diff --git a/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
new file mode 100644
index 0000000000000..717d897446c7c
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
@@ -0,0 +1,164 @@
+commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606
+Author: Nick Diego Yamane <nickdiego@igalia.com>
+Date:   Thu Nov 2 17:26:25 2023 +0000
+
+    gbm: nvidia: use separate bo to verify modifiers
+    
+    Buggy Nvidia drivers fail to return FDs for planes of a BO which had
+    already an imported BO destroyed before. This is a workaround for that
+    issue, which consists of creating/destroying a separate 1x1 BO for
+    validating the modifiers before actually creating the final requested
+    BO, which for now is limited to IS_LINUX builds.
+    
+    The Nvidia driver bug is being tracked under internal bug 4315529. There
+    seems to be other issues when running under Wayland with Nvidia, which
+    will be tracked and addressed in separate patches.
+    
+    R=dcastagna, msisov@igalia.com
+    
+      with ozone/wayland backend and verify GPU acceleration is not broken.
+    
+    Test: In a single Nvidia GPU setup, with proprietary driver, run Chrome
+    Bug: 1273758, 1478684, 1463851
+    Change-Id: I9f322bcf40b460bcd4ead02f05dd2e9a8d271cea
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989782
+    Reviewed-by: Maksim Sisov <msisov@igalia.com>
+    Commit-Queue: Nick Yamane <nickdiego@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1218924}
+
+diff --git a/ui/gfx/linux/gbm_wrapper.cc b/ui/gfx/linux/gbm_wrapper.cc
+index bf90b76605f68..14918c19c0ab0 100644
+--- a/ui/gfx/linux/gbm_wrapper.cc
++++ b/ui/gfx/linux/gbm_wrapper.cc
+@@ -11,6 +11,7 @@
+ #include "base/logging.h"
+ #include "base/memory/raw_ptr.h"
+ #include "base/memory/raw_ptr_exclusion.h"
++#include "base/numerics/safe_conversions.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "skia/ext/legacy_display_globals.h"
+ #include "third_party/skia/include/core/SkSurface.h"
+@@ -71,6 +72,7 @@ base::ScopedFD GetPlaneFdForBo(gbm_bo* bo, size_t plane) {
+   int ret;
+   // Use DRM_RDWR to allow the fd to be mappable in another process.
+   ret = drmPrimeHandleToFD(dev_fd, plane_handle, DRM_CLOEXEC | DRM_RDWR, &fd);
++  PLOG_IF(ERROR, ret != 0) << "Failed to get fd for plane.";
+ 
+   // Older DRM implementations blocked DRM_RDWR, but gave a read/write mapping
+   // anyways
+@@ -301,58 +303,82 @@ class Device final : public ui::GbmDevice {
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferWithModifiers(
+       uint32_t format,
+-      const gfx::Size& size,
++      const gfx::Size& requested_size,
+       uint32_t flags,
+       const std::vector<uint64_t>& modifiers) override {
+-    if (modifiers.empty())
+-      return CreateBuffer(format, size, flags);
+-
+-    std::vector<uint64_t> filtered_modifiers =
+-        GetFilteredModifiers(format, flags, modifiers);
+-    struct gbm_bo* bo = nullptr;
+-    while (filtered_modifiers.size() > 0) {
+-      bo = gbm_bo_create_with_modifiers(device_, size.width(), size.height(),
+-                                        format, filtered_modifiers.data(),
+-                                        filtered_modifiers.size());
+-      if (!bo) {
++    if (modifiers.empty()) {
++      return CreateBuffer(format, requested_size, flags);
++    }
++
++    // Buggy drivers prevent us from getting plane FDs from a BO which had its
++    // previously imported BO destroyed. E.g: Nvidia. Thus, on Linux Desktop, we
++    // do the create/import modifiers validation loop below using a separate set
++    // of 1x1 BOs which are destroyed before creating the final BO creation used
++    // to instantiate the returned GbmBuffer.
++    gfx::Size size =
++#if BUILDFLAG(IS_LINUX)
++        gfx::Size(1, 1);
++#else
++        requested_size;
++#endif
++    auto filtered_modifiers = GetFilteredModifiers(format, flags, modifiers);
++    struct gbm_bo* created_bo = nullptr;
++    bool valid_modifiers = false;
++
++    while (!valid_modifiers && !filtered_modifiers.empty()) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, size.width(), size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      if (!created_bo) {
+         return nullptr;
+       }
+ 
+-      struct gbm_import_fd_modifier_data fd_data;
+-      fd_data.width = size.width();
+-      fd_data.height = size.height();
+-      fd_data.format = format;
+-      fd_data.num_fds = gbm_bo_get_plane_count(bo);
+-      fd_data.modifier = gbm_bo_get_modifier(bo);
+-
+-      // Store fds in the vector of base::ScopedFDs. Will be released
+-      // automatically.
++      const int planes_count = gbm_bo_get_plane_count(created_bo);
++      struct gbm_import_fd_modifier_data fd_data = {
++          .width = base::checked_cast<uint32_t>(size.width()),
++          .height = base::checked_cast<uint32_t>(size.height()),
++          .format = format,
++          .num_fds = base::checked_cast<uint32_t>(planes_count),
++          .modifier = gbm_bo_get_modifier(created_bo)};
++      // Store fds in a base::ScopedFDs vector. Will be released automatically.
+       std::vector<base::ScopedFD> fds;
+       for (size_t i = 0; i < static_cast<size_t>(fd_data.num_fds); ++i) {
+-        fds.emplace_back(GetPlaneFdForBo(bo, i));
++        fds.emplace_back(GetPlaneFdForBo(created_bo, i));
+         fd_data.fds[i] = fds.back().get();
+-        fd_data.strides[i] = gbm_bo_get_stride_for_plane(bo, i);
+-        fd_data.offsets[i] = gbm_bo_get_offset(bo, i);
++        fd_data.strides[i] = gbm_bo_get_stride_for_plane(created_bo, i);
++        fd_data.offsets[i] = gbm_bo_get_offset(created_bo, i);
+       }
+ 
+-      struct gbm_bo* bo_import =
++      struct gbm_bo* imported_bo =
+           gbm_bo_import(device_, GBM_BO_IMPORT_FD_MODIFIER, &fd_data, flags);
+-      if (bo_import) {
+-        gbm_bo_destroy(bo_import);
+-        break;
++
++      if (imported_bo) {
++        valid_modifiers = true;
++        gbm_bo_destroy(imported_bo);
+       } else {
+-        gbm_bo_destroy(bo);
+-        bo = nullptr;
+         AddModifierToBlocklist(format, flags, fd_data.modifier);
+         filtered_modifiers =
+             GetFilteredModifiers(format, flags, filtered_modifiers);
+       }
++
++      if (!valid_modifiers || size != requested_size) {
++        gbm_bo_destroy(created_bo);
++        created_bo = nullptr;
++      }
+     }
+-    if (!bo) {
+-      return nullptr;
++
++    // If modifiers were successfully verified though `created_bo` is null here,
++    // it it means that the buffer created for verification could not be reused,
++    // ie: different size, so create it now with the `requested_size`.
++    if (valid_modifiers && !created_bo) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, requested_size.width(), requested_size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      PLOG_IF(ERROR, !created_bo) << "Failed to create BO with modifiers.";
+     }
+ 
+-    return CreateBufferForBO(bo, format, size, flags);
++    return created_bo ? CreateBufferForBO(created_bo, format, size, flags)
++                      : nullptr;
+   }
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferFromHandle(
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index cc36911cd338d..c4b76486570e2 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=118.0.5993.70
+version=119.0.6045.105
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
+checksum=73cb8c39e928f8c627d747d37a3b020f08913ef5508f893758d70bdbd545dbcf
 
 lib32disabled=yes
 
@@ -52,7 +52,8 @@ if [ "$CROSS_BUILD" ]; then
 	 $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
 	 libcurl-devel snappy-devel libXrandr-devel libXcomposite-devel cups-devel
 	 mit-krb5-devel alsa-lib-devel libXdamage-devel libepoxy-devel libevdev-devel
-	 libavif-devel libaom-devel jsoncpp-devel woff2-devel libdav1d-devel libflac-devel"
+	 libavif-devel libaom-devel jsoncpp-devel woff2-devel libdav1d-devel libflac-devel
+	 libdrm-devel libgbm-devel"
 fi
 
 if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 119.0.6045.105.
  2023-11-04 15:08 [PR PATCH] chromium: update to 119.0.6045.105 Duncaen
  2023-11-05 14:04 ` [PR PATCH] [Updated] " Duncaen
@ 2023-11-05 14:34 ` Duncaen
  2023-11-05 23:15 ` [PR PATCH] [Merged]: " Duncaen
  2 siblings, 0 replies; 4+ messages in thread
From: Duncaen @ 2023-11-05 14:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 412 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-119
https://github.com/void-linux/void-packages/pull/47058

chromium: update to 119.0.6045.105.
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/47058.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-119-47058.patch --]
[-- Type: text/x-diff, Size: 76433 bytes --]

From 2f59b8237b45f42bebb566aaf56f8f3f70d10e77 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sat, 4 Nov 2023 16:02:39 +0100
Subject: [PATCH] chromium: update to 119.0.6045.105.

---
 .../chromium-118-use_system_freetype.patch    |  91 ---
 .../patches/chromium-119-assert.patch         |  12 +
 .../patches/chromium-119-constexpr.patch      |  12 +
 ....4.patch => chromium-119-ffmpeg-4.4.patch} |  14 +-
 .../chromium-119-fix-aarch64-musl.patch       |  11 +
 ...tVideoDecoder-flag-on-VA-API-devices.patch | 195 ++++++
 ...> chromium-119-missing-header-files.patch} |  12 -
 ...hromium-119-no_matching_constructor.patch} | 608 +++++++++++-------
 ...-119-nullptr_t-without-namespace-std.patch |  21 +
 ...a-use-separate-bo-to-verify-modifier.patch | 164 +++++
 srcpkgs/chromium/template                     |   7 +-
 11 files changed, 797 insertions(+), 350 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-assert.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-constexpr.patch
 rename srcpkgs/chromium/patches/{chromium-118-ffmpeg-4.4.patch => chromium-119-ffmpeg-4.4.patch} (53%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-fix-aarch64-musl.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
 rename srcpkgs/chromium/patches/{chromium-118-missing-header-files.patch => chromium-119-missing-header-files.patch} (97%)
 rename srcpkgs/chromium/patches/{chromium-118-no_matching_constructor.patch => chromium-119-no_matching_constructor.patch} (56%)
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch

diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
deleted file mode 100644
index ce9fbdebe2fb7..0000000000000
--- a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-commit ed354d00aeda84693611b14baa56a287557a26b5
-Author: Munira Tursunova <moonira@google.com>
-Date:   Tue Sep 12 11:54:48 2023 +0000
-
-    Add check for use_system_freetype when importing private freetype header
-    
-    In [0] the include of private freetype header was added, which caused
-    build breakage when use_system_freetype=true, see [1].
-    
-    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
-    
-    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
-    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
-    
-    Bug: 1429581
-    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
-    Commit-Queue: Munira Tursunova <moonira@google.com>
-    Reviewed-by: Dominik Röttsches <drott@chromium.org>
-    Reviewed-by: Rick Byers <rbyers@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1195323}
-
-diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
-index 7b086f95413ff..4ce797ebad722 100644
---- a/third_party/BUILD.gn
-+++ b/third_party/BUILD.gn
-@@ -2,6 +2,7 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
-+import("//build/buildflag_header.gni")
- import("//build/config/features.gni")
- import("//build/config/freetype/freetype.gni")
- import("//third_party/harfbuzz-ng/harfbuzz.gni")
-@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
-     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
-   }
- }
-+
-+buildflag_header("freetype_buildflags") {
-+  header = "freetype_buildflags.h"
-+  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
-+}
-diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
-index 591d2f939605b..f6a2cd2168d1e 100644
---- a/third_party/blink/renderer/platform/BUILD.gn
-+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1717,6 +1717,7 @@ component("platform") {
-     "//services/viz/public/cpp/gpu",
-     "//skia",
-     "//skia:skcms",
-+    "//third_party:freetype_buildflags",
-     "//third_party:freetype_harfbuzz",
-     "//third_party/abseil-cpp:absl",
-     "//third_party/blink/public:image_resources",
-diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-index abe06f35c14a5..b2bfd88f0d85d 100644
---- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-+++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
-@@ -48,7 +48,7 @@
- #include "third_party/blink/renderer/platform/wtf/math_extras.h"
- #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
- #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
--#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#include "third_party/freetype_buildflags.h"
- #include "third_party/skia/include/core/SkFontMetrics.h"
- #include "third_party/skia/include/core/SkPath.h"
- #include "third_party/skia/include/core/SkTypeface.h"
-@@ -57,12 +57,22 @@
- #include "ui/gfx/geometry/skia_conversions.h"
- #include "v8/include/v8.h"
- 
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
-+#include "third_party/freetype/src/src/autofit/afws-decl.h"
-+#endif
-+
- namespace blink {
- 
- constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
- constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
-+
-+#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
- constexpr int32_t kFontObjectsMemoryConsumption =
-     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
-+#else
-+// sizeof(AF_LatinMetricsRec) = 2128
-+constexpr int32_t kFontObjectsMemoryConsumption = 2128;
-+#endif
- 
- SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
-                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-119-assert.patch b/srcpkgs/chromium/patches/chromium-119-assert.patch
new file mode 100644
index 0000000000000..6c502f13a5955
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-assert.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/v8/src/base/small-vector.h.than chromium-119.0.6045.59/v8/src/base/small-vector.h
+--- chromium-119.0.6045.59/v8/src/base/small-vector.h.than	2023-11-01 16:13:12.645301345 +0100
++++ chromium-119.0.6045.59/v8/src/base/small-vector.h	2023-11-01 16:13:29.660610182 +0100
+@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
+ class SmallVector {
+   // Currently only support trivially copyable and trivially destructible data
+   // types, as it uses memcpy to copy elements and never calls destructors.
+-  ASSERT_TRIVIALLY_COPYABLE(T);
++  //ASSERT_TRIVIALLY_COPYABLE(T);
+   static_assert(std::is_trivially_destructible<T>::value);
+ 
+  public:
diff --git a/srcpkgs/chromium/patches/chromium-119-constexpr.patch b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
new file mode 100644
index 0000000000000..b195ff408ba81
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h
+--- chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me	2023-10-31 21:05:05.548565241 +0100
++++ chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h	2023-10-31 21:20:53.945532094 +0100
+@@ -93,7 +93,7 @@ class MiracleParameter {
+ template <>
+ class MiracleParameter<std::string> : public MiracleParameterBase<std::string> {
+  public:
+-  constexpr MiracleParameter(const base::Feature* feature,
++  MiracleParameter(const base::Feature* feature,
+                              const char* param_name,
+                              std::string default_value)
+       : MiracleParameterBase(feature, param_name, std::move(default_value)) {}
diff --git a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
similarity index 53%
rename from srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
index 556c734d4e02e..04d04b166ba37 100644
--- a/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-119-ffmpeg-4.4.patch
@@ -1,17 +1,15 @@
-diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
-index ac4713b07268..492a9a37d096 100644
---- a/media/filters/ffmpeg_demuxer.cc
+--- a/media/filters/ffmpeg_demuxer.cc.orig
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
-                                      side_data.data(), side_data.size());
-   } else {
+@@ -390,7 +390,7 @@
+ 
+   scoped_refptr<DecoderBuffer> buffer;
+ 
 -    size_t side_data_size = 0;
 +    int side_data_size = 0;
      uint8_t* side_data = av_packet_get_side_data(
          packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
  
-@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+@@ -453,7 +453,7 @@
                                         packet->size - data_offset);
      }
  
diff --git a/srcpkgs/chromium/patches/chromium-119-fix-aarch64-musl.patch b/srcpkgs/chromium/patches/chromium-119-fix-aarch64-musl.patch
new file mode 100644
index 0000000000000..cbb2ec14c90fb
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-fix-aarch64-musl.patch
@@ -0,0 +1,11 @@
+--- a/v8/src/base/cpu.cc
++++ b/v8/src/base/cpu.cc
+@@ -14,7 +14,7 @@
+ #if V8_OS_LINUX
+ #include <linux/auxvec.h>  // AT_HWCAP
+ #endif
+-#if V8_GLIBC_PREREQ(2, 16) || V8_OS_ANDROID
++#if V8_OS_LINUX || V8_OS_ANDROID
+ #include <sys/auxv.h>  // getauxval()
+ #endif
+ #if V8_OS_QNX
diff --git a/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
new file mode 100644
index 0000000000000..88d675e8047f0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch
@@ -0,0 +1,195 @@
+commit 87fca7f1759e800bd72b5ab6511eea17d6400a76
+Author: Pilar Molina Lopez <pmolinalopez@chromium.org>
+Date:   Tue Oct 24 19:57:55 2023 +0000
+
+    video: hide UseChromeOSDirectVideoDecoder flag on VA-API devices
+    
+    We are seeing crashes causes by this CHECK statement:
+    https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/gpu_utils.cc;l=151;drc=0e777ba9b6c34611705d5b145c92bcd09539011c
+    It's triggered when the user manually disables the UseChromeOSDirectVideoDecoder
+    flag on VA-API devices (Intel and AMD). This flag is supported only on
+    non-Intel and non-AMD devices. This CL adds this information to the flag
+    description and hides the flag in case VA-API is used.
+    
+    Bug: 1469285
+    Test: manual test on volteer
+    Change-Id: I153b9ccb3815498c91ce5eee966834060749e247
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4960919
+    Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+    Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
+    Reviewed-by: Avi Drissman <avi@chromium.org>
+    Commit-Queue: Pilar Molina Lopez <pmolinalopez@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1214411}
+
+diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS
+index ee9fb206cde36..0fe18013ab044 100644
+--- a/chrome/browser/DEPS
++++ b/chrome/browser/DEPS
+@@ -418,6 +418,7 @@ include_rules = [
+   "+media/base",  # For media switches
+   "+media/capabilities", # For InMemoryVideoDecodeStatsDB
+   "+media/cdm",
++  "+media/gpu/buildflags.h",
+   "+media/remoting/device_capability_checker.h",
+   "+media/capture",
+   "+media/midi",  # For midi switches
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 84709afaa34d0..777bebeb33d9e 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -7578,11 +7578,13 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+     {"chromeos-direct-video-decoder",
+      flag_descriptions::kChromeOSDirectVideoDecoderName,
+      flag_descriptions::kChromeOSDirectVideoDecoderDescription,
+      kOsCrOS | kOsLacros,
+      FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)},
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+     {"enable-vbr-encode-acceleration",
+      flag_descriptions::kChromeOSHWVBREncodingName,
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 318a8be9ab1a6..d2497d0c403f3 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -7,6 +7,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "components/supervised_user/core/common/buildflags.h"
++#include "media/gpu/buildflags.h"
+ #include "pdf/buildflags.h"
+ 
+ // Keep in identical order as the header file, see the comment at the top
+@@ -7338,6 +7339,7 @@ const char kQuickOfficeForceFileDownloadDescription[] =
+ #endif  // BUILDFLAG(IS_CHROMEOS)
+ 
+ #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSDirectVideoDecoderName[] = "ChromeOS Direct Video Decoder";
+ const char kChromeOSDirectVideoDecoderDescription[] =
+     "Enables the hardware-accelerated ChromeOS direct media::VideoDecoder "
+@@ -7345,7 +7347,8 @@ const char kChromeOSDirectVideoDecoderDescription[] =
+     "--platform-disallows-chromeos-direct-video-decoder command line switch "
+     "which is added for platforms where said direct VideoDecoder does not work "
+     "or is not well tested (see the disable_cros_video_decoder USE flag in "
+-    "ChromeOS)";
++    "ChromeOS). This flag is supported only on non-Intel and non-AMD devices.";
++#endif  // !BUILDFLAG(USE_VAAPI)
+ const char kChromeOSHWVBREncodingName[] =
+     "ChromeOS Hardware Variable Bitrate Encoding";
+ const char kChromeOSHWVBREncodingDescription[] =
+diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
+index dceeca9659a85..3d091359777cc 100644
+--- a/content/public/browser/gpu_utils.cc
++++ b/content/public/browser/gpu_utils.cc
+@@ -133,20 +133,26 @@ const gpu::GpuPreferences GetGpuPreferencesFromCommandLine() {
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+   // The direct VideoDecoder is disallowed on some particular SoC/platforms.
+   const bool should_use_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      true;
++#else
+       !command_line->HasSwitch(
+           switches::kPlatformDisallowsChromeOSDirectVideoDecoder) &&
+       base::FeatureList::IsEnabled(media::kUseChromeOSDirectVideoDecoder);
++#endif  // BUILDFLAG(USE_VAAPI)
++
++  gpu_preferences.enable_chromeos_direct_video_decoder =
++#if BUILDFLAG(USE_VAAPI)
++      should_use_direct_video_decoder;
++#else
++      // For testing purposes, the following flag allows using the "other" video
++      // decoder implementation.
++      base::FeatureList::IsEnabled(
++          media::kUseAlternateVideoDecoderImplementation)
++          ? !should_use_direct_video_decoder
++          : should_use_direct_video_decoder;
++#endif  // BUILDFLAG(USE_VAAPI)
+ 
+-  // For testing purposes, the following flag allows using the "other" video
+-  // decoder implementation.
+-  if (base::FeatureList::IsEnabled(
+-          media::kUseAlternateVideoDecoderImplementation)) {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        !should_use_direct_video_decoder;
+-  } else {
+-    gpu_preferences.enable_chromeos_direct_video_decoder =
+-        should_use_direct_video_decoder;
+-  }
+ #if BUILDFLAG(USE_VAAPI)
+   CHECK(gpu_preferences.enable_chromeos_direct_video_decoder);
+ #endif  // BUILDFLAG(USE_VAAPI)
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 1af4de46e2a02..3086b1bec2134 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -1192,6 +1192,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+              "ChromeOSHWVBREncoding",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ 
++#if !BUILDFLAG(USE_VAAPI)
+ // Enable the hardware-accelerated direct video decoder instead of the one
+ // needing the VdaVideoDecoder adapter. This flag is used mainly as a
+ // chrome:flag for developers debugging issues as well as to be able to
+@@ -1200,6 +1201,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
+ BASE_FEATURE(kUseChromeOSDirectVideoDecoder,
+              "UseChromeOSDirectVideoDecoder",
+              base::FEATURE_ENABLED_BY_DEFAULT);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ 
+ // Limit the number of concurrent hardware decoder instances on ChromeOS.
+ BASE_FEATURE(kLimitConcurrentDecoderInstances,
+@@ -1228,7 +1230,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+              "PreferSoftwareMT21",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ // ChromeOS has one of two VideoDecoder implementations active based on
+ // SoC/board specific configurations that are sent via command line flags. This
+ // switch allows using the non default implementation for testing.
+@@ -1236,7 +1238,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
+ BASE_FEATURE(kUseAlternateVideoDecoderImplementation,
+              "UseAlternateVideoDecoderImplementation",
+              base::FEATURE_DISABLED_BY_DEFAULT);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
+diff --git a/media/base/media_switches.h b/media/base/media_switches.h
+index 1d9c2c2d9df73..96d9595be110e 100644
+--- a/media/base/media_switches.h
++++ b/media/base/media_switches.h
+@@ -14,6 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromeos_buildflags.h"
+ #include "media/base/media_export.h"
++#include "media/gpu/buildflags.h"
+ #include "media/media_buildflags.h"
+ 
+ namespace base {
+@@ -381,16 +382,18 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kBuiltInHlsPlayer);
+ #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWAV1Decoder);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWVBREncoding);
++#if !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseChromeOSDirectVideoDecoder);
++#endif  // !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kLimitConcurrentDecoderInstances);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUSeSequencedTaskRunnerForVEA);
+ #if defined(ARCH_CPU_ARM_FAMILY)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferGLImageProcessor);
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferSoftwareMT21);
+ #endif  // defined(ARCH_CPU_ARM_FAMILY)
+-#if BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAlternateVideoDecoderImplementation);
+-#endif  // BUILDFLAG(IS_CHROMEOS)
++#endif  // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
+ #endif  // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+ 
+ #if BUILDFLAG(IS_WIN)
diff --git a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
similarity index 97%
rename from srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
index ea415df32835b..a2542ef420eaf 100644
--- a/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-119-missing-header-files.patch
@@ -468,15 +468,3 @@ diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor
  #include <type_traits>
  
  namespace device {
-diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
---- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
-+++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
-@@ -5,6 +5,8 @@
- #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
- 
-+#include <atomic>
-+
- #include "base/gtest_prod_util.h"
- #include "components/gwp_asan/client/export.h"
- #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
similarity index 56%
rename from srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
index 3d7748c3d5a26..a16c979c37f1c 100644
--- a/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-119-no_matching_constructor.patch
@@ -1,19 +1,112 @@
-diff -up chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
---- chromium-116.0.5845.50/net/dns/host_resolver_cache.cc.me
-+++ chromium-116.0.5845.50/net/dns/host_resolver_cache.cc
-@@ -161,7 +161,7 @@ void HostResolverCache::Set(
+diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor chromium-119.0.6045.59/base/trace_event/trace_log.cc
+--- chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor	2023-10-26 18:16:51.000000000 +0200
++++ chromium-119.0.6045.59/base/trace_event/trace_log.cc	2023-10-30 16:51:02.270151487 +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};
+ }
  
-   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_));
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc	2023-10-30 16:51:02.269151462 +0100
+@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
  
-   if (entries_.size() > max_entries_) {
-diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.me	2023-08-02 15:17:52.613858423 +0200
-+++ chromium-116.0.5845.50/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-08-02 15:18:43.269790877 +0200
-@@ -1496,7 +1496,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+       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-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2023-10-26 18:16:57.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-10-30 16:51:02.267151412 +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-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2023-10-26 18:17:00.000000000 +0200
++++ chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc
+--- chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2023-10-26 18:17:01.000000000 +0200
++++ chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc	2023-10-30 16:51:02.268151437 +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-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor	2023-10-30 16:51:02.273151562 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-30 17:41:12.685887538 +0100
+@@ -195,9 +195,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-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2023-10-30 16:51:02.260151238 +0100
+@@ -1530,7 +1530,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
  
        // Issue readbacks from the surfaces:
        for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
@@ -22,9 +115,87 @@ diff -up chromium-116.0.5845.50/components/viz/service/display_embedder/skia_out
          SkImageInfo dst_info = SkImageInfo::Make(
              size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
              kUnpremul_SkAlphaType);
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.me	2023-08-02 21:32:14.195705494 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-08-02 21:59:08.156532934 +0200
+diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/download/save_package.cc
+--- chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/download/save_package.cc	2023-10-30 16:51:02.271151512 +0100
+@@ -769,8 +769,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-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2023-10-26 18:17:12.000000000 +0200
++++ chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc	2023-10-30 17:38:09.351389984 +0100
+@@ -8567,7 +8567,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data), destination,
++        DestinationEnumEvent{event_type, event_data}, destination,
+         /*from_renderer=*/true, attribution_reporting_runtime_features,
+         GetFrameTreeNodeId());
+   }
+@@ -8603,7 +8603,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url),
++      DestinationURLEvent{destination_url},
+       blink::FencedFrame::ReportingDestination::kBuyer,
+       /*from_renderer=*/true, attribution_reporting_runtime_features,
+       GetFrameTreeNodeId());
+@@ -8703,8 +8703,8 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               data},
+           destination,
+           /*from_renderer=*/false, attribution_reporting_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+@@ -8717,8 +8717,8 @@ void RenderFrameHostImpl::MaybeSendFence
+     for (blink::FencedFrame::ReportingDestination destination :
+          info->destinations) {
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
+-                               info->data),
++          DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
++                               info->data},
+           destination,
+           /*from_renderer=*/false, info->attribution_reporting_runtime_features,
+           GetFrameTreeNodeId(), navigation_request.GetNavigationId());
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h	2023-10-30 16:51:02.262151288 +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-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2023-10-26 18:17:24.000000000 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2023-10-30 16:51:02.261151263 +0100
 @@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
          color_interpolation_space, hue_interpolation_method, start_color,
          end_color, percentage, alpha_multiplier);
@@ -34,10 +205,113 @@ diff -up chromium-116.0.5845.50/third_party/blink/renderer/platform/fonts/palett
      result_color_records.push_back(result_color_record);
    }
    return result_color_records;
-diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h
---- chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me	2023-08-03 08:27:11.371750178 +0200
-+++ chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h	2023-08-03 10:39:07.266989323 +0200
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+diff -up chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-119.0.6045.59/ui/gtk/gtk_ui.cc
+--- chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/gtk/gtk_ui.cc	2023-10-30 16:51:02.272151537 +0100
+@@ -993,11 +993,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-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc
+--- chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me	2023-10-31 18:14:49.275728099 +0100
++++ chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc	2023-10-31 18:19:54.599223239 +0100
+@@ -221,13 +221,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-119.0.6045.59/net/dns/host_resolver_cache.cc.me chromium-119.0.6045.59/net/dns/host_resolver_cache.cc
+--- chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me	2023-10-31 20:48:19.153868338 +0100
++++ chromium-119.0.6045.59/net/dns/host_resolver_cache.cc	2023-10-31 20:51:37.634526549 +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-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc
+--- chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me	2023-10-31 22:32:58.995997897 +0100
++++ chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc	2023-10-31 22:33:28.290520601 +0100
+@@ -1733,10 +1733,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-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc
+--- chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than	2023-10-31 22:41:22.850233005 +0100
++++ chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc	2023-10-31 22:42:37.276931933 +0100
+@@ -625,7 +625,7 @@ void PasswordManager::OnUserModifiedNonP
+   // |driver| might be empty on iOS or in tests.
+   int driver_id = driver ? driver->GetId() : 0;
+   possible_usernames_.Put(
+-      PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++      PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+       PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+                            renderer_id, value, base::Time::Now(), driver_id,
+                            autocomplete_attribute_has_username, is_likely_otp));
+diff -up chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc
+--- chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than	2023-10-31 23:31:08.438267908 +0100
++++ chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc	2023-10-31 23:32:08.979358711 +0100
+@@ -2854,10 +2854,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-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc
+--- chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than	2023-11-01 11:19:42.745395797 +0100
++++ chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc	2023-11-01 11:22:16.670920679 +0100
+@@ -1881,7 +1881,7 @@ void FederatedAuthRequestImpl::ShowError
+       base::BindOnce(&FederatedAuthRequestImpl::CompleteRequestWithError,
+                      weak_ptr_factory_.GetWeakPtr()));
+   absl::optional<TokenError> token_error =
+-      error ? absl::make_optional<TokenError>(error->code, error->url)
++      error ? absl::make_optional<TokenError>({error->code, error->url})
+             : absl::nullopt;
+ 
+   // TODO(crbug.com/1485710): Refactor IdentityCredentialTokenError
+--- chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h.no_matching_constructor	2023-10-26 18:18:14.000000000 +0200
++++ chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h	2023-11-01 17:29:54.269820415 +0100
+@@ -52,53 +52,53 @@
      zcr_color_manager_v1_chromaticity_names,
      PrimaryVersion>(
      {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
@@ -117,7 +391,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  // A map from the zcr_color_manager_v1 eotf_names enum values
  // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -107,68 +107,68 @@
      zcr_color_manager_v1_eotf_names,
      TransferVersion>({
      {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -128,6 +402,11 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      {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)},
@@ -219,7 +498,7 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  });
  
  // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixe
+@@ -177,18 +177,18 @@
  constexpr auto kTransferMap =
      base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@@ -245,15 +524,18 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
      });
  
  // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -194,68 +194,68 @@ constexpr auto kTransferMap =
+@@ -197,70 +197,70 @@
  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,
--          TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFnExt::kSRGB, 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}},
@@ -346,222 +628,76 @@ diff -up chromium-116.0.5845.50/ui/base/wayland/color_manager_util.h.me chromium
  
  zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
      gfx::ColorSpace::PrimaryID primaryID,
-diff -up chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me	2023-08-03 13:23:33.748394615 +0200
-+++ chromium-116.0.5845.50/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2023-08-03 13:25:01.140489840 +0200
-@@ -470,10 +470,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-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
-diff -up chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h.me	2023-09-15 10:48:41.330294241 +0200
-+++ chromium-117.0.5938.62/third_party/blink/renderer/platform/fonts/font_palette.h	2023-09-15 10:51:24.501324416 +0200
-@@ -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-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc.me	2023-09-15 12:17:35.664861257 +0200
-+++ chromium-117.0.5938.62/content/browser/renderer_host/render_frame_host_impl.cc	2023-09-15 12:21:06.112694256 +0200
-@@ -8509,7 +8509,7 @@ void RenderFrameHostImpl::SendFencedFram
-   for (const blink::FencedFrame::ReportingDestination& destination :
-        destinations) {
-     SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(event_type, event_data), destination,
-+        DestinationEnumEvent{event_type, event_data}, destination,
-         /*from_renderer=*/true, attribution_reporting_runtime_features,
-         GetFrameTreeNodeId());
-   }
-@@ -8545,7 +8545,7 @@ void RenderFrameHostImpl::SendFencedFram
-   }
- 
-   SendFencedFrameReportingBeaconInternal(
--      DestinationURLEvent(destination_url),
-+      DestinationURLEvent{destination_url},
-       blink::FencedFrame::ReportingDestination::kBuyer,
-       /*from_renderer=*/true, attribution_reporting_runtime_features,
-       GetFrameTreeNodeId());
-@@ -8617,8 +8617,8 @@ void RenderFrameHostImpl::MaybeSendFence
-   for (blink::FencedFrame::ReportingDestination destination :
-        info->destinations) {
-     initiator_rfh->SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
--                             info->data),
-+        DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
-+                             info->data},
-         destination,
-         /*from_renderer=*/false, info->attribution_reporting_runtime_features,
-         GetFrameTreeNodeId(), navigation_request.GetNavigationId());
-diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.me	2023-09-15 22:04:09.233356627 +0200
-+++ chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2023-09-15 22:05:44.126063992 +0200
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
-   // TODO(crbug.com/1445072): Add actual domains with attribute names.
-   profile_attributes->insert(std::make_pair(
-       "supported.test",
--      SAMLProfileAttributes("placeholderName", "placeholderDomain",
--                            "placeholderToken")));
-+      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+                            "placeholderToken"}));
- 
-   // Extract domains and attributes from the command line switch.
-   const base::CommandLine& command_line =
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::
-                         "a 'version' field of type string");
-         }
+@@ -283,4 +283,4 @@
  
--        full_version_list.emplace_back(*brand, *version);
-+        full_version_list.emplace_back() = {*brand, *version};
-       }
+ }  // namespace ui::wayland
  
-       client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,8 @@ void OneTimePermissionProvider::OnSuspen
+-#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me	2023-11-01 20:46:15.997861278 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2023-11-01 20:49:33.603371680 +0100
+@@ -58,13 +58,13 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() {
+   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};
  
-       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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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};
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+-      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal};
+   return buttons;
  }
  
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,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)};
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than	2023-11-01 20:52:29.005464494 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2023-11-01 21:14:12.741859604 +0100
+@@ -56,12 +56,12 @@ std::vector<EmbeddedPermissionPromptAskV
+ EmbeddedPermissionPromptAskView::GetButtonsConfiguration() {
+   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};
    }
-   return config;
+-  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-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
-@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
-     CHECK(observations.empty());
-     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
-          proto_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-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
---- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
-+++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
-@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
-   base::StringToInt64(wallet_credential_specifics.instrument_id(),
-                       &instrument_id);
- 
--  return ServerCvc(
-+  return ServerCvc{
-       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
-       base::Time::UnixEpoch() +
-           base::Milliseconds(wallet_credential_specifics
--                                 .last_updated_time_unix_epoch_millis()));
-+                                 .last_updated_time_unix_epoch_millis())};
- }
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me	2023-11-01 21:22:02.222646903 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2023-11-01 21:19:58.769619393 +0100
+@@ -72,6 +72,7 @@ class EmbeddedPermissionPromptBaseView :
+   struct RequestLineConfiguration {
+     const raw_ptr<const gfx::VectorIcon> icon;
+     std::u16string message;
++    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+   };
  
- VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
-diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
---- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
-+++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
-@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
-     if (response_error) {
-       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
-       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
--      token_result.error = TokenError(error_code, error_url);
-+      token_result.error = TokenError{error_code, error_url};
-     }
-   }
+   struct ButtonConfiguration {
+diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than	2023-11-01 21:25:31.118626473 +0100
++++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2023-11-01 21:30:06.383340274 +0100
+@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() {
+   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 --git a/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
new file mode 100644
index 0000000000000..5cb969f4f40cf
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nullptr_t-without-namespace-std.patch
@@ -0,0 +1,21 @@
+diff -up chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me	2023-10-27 20:07:16.421230815 +0200
++++ chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h	2023-10-27 20:07:36.883600085 +0200
+@@ -52,7 +52,7 @@ class FragmentDataIterator
+  public:
+   explicit FragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(&object.FirstFragment()) {}
+-  explicit FragmentDataIterator(nullptr_t)
++  explicit FragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
+@@ -63,7 +63,7 @@ class MutableFragmentDataIterator
+   explicit MutableFragmentDataIterator(const LayoutObject& object)
+       : FragmentDataIteratorBase(
+             &object.GetMutableForPainting().FirstFragment()) {}
+-  explicit MutableFragmentDataIterator(nullptr_t)
++  explicit MutableFragmentDataIterator(std::nullptr_t)
+       : FragmentDataIteratorBase(nullptr) {}
+ };
+ 
diff --git a/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
new file mode 100644
index 0000000000000..717d897446c7c
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch
@@ -0,0 +1,164 @@
+commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606
+Author: Nick Diego Yamane <nickdiego@igalia.com>
+Date:   Thu Nov 2 17:26:25 2023 +0000
+
+    gbm: nvidia: use separate bo to verify modifiers
+    
+    Buggy Nvidia drivers fail to return FDs for planes of a BO which had
+    already an imported BO destroyed before. This is a workaround for that
+    issue, which consists of creating/destroying a separate 1x1 BO for
+    validating the modifiers before actually creating the final requested
+    BO, which for now is limited to IS_LINUX builds.
+    
+    The Nvidia driver bug is being tracked under internal bug 4315529. There
+    seems to be other issues when running under Wayland with Nvidia, which
+    will be tracked and addressed in separate patches.
+    
+    R=dcastagna, msisov@igalia.com
+    
+      with ozone/wayland backend and verify GPU acceleration is not broken.
+    
+    Test: In a single Nvidia GPU setup, with proprietary driver, run Chrome
+    Bug: 1273758, 1478684, 1463851
+    Change-Id: I9f322bcf40b460bcd4ead02f05dd2e9a8d271cea
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989782
+    Reviewed-by: Maksim Sisov <msisov@igalia.com>
+    Commit-Queue: Nick Yamane <nickdiego@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1218924}
+
+diff --git a/ui/gfx/linux/gbm_wrapper.cc b/ui/gfx/linux/gbm_wrapper.cc
+index bf90b76605f68..14918c19c0ab0 100644
+--- a/ui/gfx/linux/gbm_wrapper.cc
++++ b/ui/gfx/linux/gbm_wrapper.cc
+@@ -11,6 +11,7 @@
+ #include "base/logging.h"
+ #include "base/memory/raw_ptr.h"
+ #include "base/memory/raw_ptr_exclusion.h"
++#include "base/numerics/safe_conversions.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "skia/ext/legacy_display_globals.h"
+ #include "third_party/skia/include/core/SkSurface.h"
+@@ -71,6 +72,7 @@ base::ScopedFD GetPlaneFdForBo(gbm_bo* bo, size_t plane) {
+   int ret;
+   // Use DRM_RDWR to allow the fd to be mappable in another process.
+   ret = drmPrimeHandleToFD(dev_fd, plane_handle, DRM_CLOEXEC | DRM_RDWR, &fd);
++  PLOG_IF(ERROR, ret != 0) << "Failed to get fd for plane.";
+ 
+   // Older DRM implementations blocked DRM_RDWR, but gave a read/write mapping
+   // anyways
+@@ -301,58 +303,82 @@ class Device final : public ui::GbmDevice {
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferWithModifiers(
+       uint32_t format,
+-      const gfx::Size& size,
++      const gfx::Size& requested_size,
+       uint32_t flags,
+       const std::vector<uint64_t>& modifiers) override {
+-    if (modifiers.empty())
+-      return CreateBuffer(format, size, flags);
+-
+-    std::vector<uint64_t> filtered_modifiers =
+-        GetFilteredModifiers(format, flags, modifiers);
+-    struct gbm_bo* bo = nullptr;
+-    while (filtered_modifiers.size() > 0) {
+-      bo = gbm_bo_create_with_modifiers(device_, size.width(), size.height(),
+-                                        format, filtered_modifiers.data(),
+-                                        filtered_modifiers.size());
+-      if (!bo) {
++    if (modifiers.empty()) {
++      return CreateBuffer(format, requested_size, flags);
++    }
++
++    // Buggy drivers prevent us from getting plane FDs from a BO which had its
++    // previously imported BO destroyed. E.g: Nvidia. Thus, on Linux Desktop, we
++    // do the create/import modifiers validation loop below using a separate set
++    // of 1x1 BOs which are destroyed before creating the final BO creation used
++    // to instantiate the returned GbmBuffer.
++    gfx::Size size =
++#if BUILDFLAG(IS_LINUX)
++        gfx::Size(1, 1);
++#else
++        requested_size;
++#endif
++    auto filtered_modifiers = GetFilteredModifiers(format, flags, modifiers);
++    struct gbm_bo* created_bo = nullptr;
++    bool valid_modifiers = false;
++
++    while (!valid_modifiers && !filtered_modifiers.empty()) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, size.width(), size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      if (!created_bo) {
+         return nullptr;
+       }
+ 
+-      struct gbm_import_fd_modifier_data fd_data;
+-      fd_data.width = size.width();
+-      fd_data.height = size.height();
+-      fd_data.format = format;
+-      fd_data.num_fds = gbm_bo_get_plane_count(bo);
+-      fd_data.modifier = gbm_bo_get_modifier(bo);
+-
+-      // Store fds in the vector of base::ScopedFDs. Will be released
+-      // automatically.
++      const int planes_count = gbm_bo_get_plane_count(created_bo);
++      struct gbm_import_fd_modifier_data fd_data = {
++          .width = base::checked_cast<uint32_t>(size.width()),
++          .height = base::checked_cast<uint32_t>(size.height()),
++          .format = format,
++          .num_fds = base::checked_cast<uint32_t>(planes_count),
++          .modifier = gbm_bo_get_modifier(created_bo)};
++      // Store fds in a base::ScopedFDs vector. Will be released automatically.
+       std::vector<base::ScopedFD> fds;
+       for (size_t i = 0; i < static_cast<size_t>(fd_data.num_fds); ++i) {
+-        fds.emplace_back(GetPlaneFdForBo(bo, i));
++        fds.emplace_back(GetPlaneFdForBo(created_bo, i));
+         fd_data.fds[i] = fds.back().get();
+-        fd_data.strides[i] = gbm_bo_get_stride_for_plane(bo, i);
+-        fd_data.offsets[i] = gbm_bo_get_offset(bo, i);
++        fd_data.strides[i] = gbm_bo_get_stride_for_plane(created_bo, i);
++        fd_data.offsets[i] = gbm_bo_get_offset(created_bo, i);
+       }
+ 
+-      struct gbm_bo* bo_import =
++      struct gbm_bo* imported_bo =
+           gbm_bo_import(device_, GBM_BO_IMPORT_FD_MODIFIER, &fd_data, flags);
+-      if (bo_import) {
+-        gbm_bo_destroy(bo_import);
+-        break;
++
++      if (imported_bo) {
++        valid_modifiers = true;
++        gbm_bo_destroy(imported_bo);
+       } else {
+-        gbm_bo_destroy(bo);
+-        bo = nullptr;
+         AddModifierToBlocklist(format, flags, fd_data.modifier);
+         filtered_modifiers =
+             GetFilteredModifiers(format, flags, filtered_modifiers);
+       }
++
++      if (!valid_modifiers || size != requested_size) {
++        gbm_bo_destroy(created_bo);
++        created_bo = nullptr;
++      }
+     }
+-    if (!bo) {
+-      return nullptr;
++
++    // If modifiers were successfully verified though `created_bo` is null here,
++    // it it means that the buffer created for verification could not be reused,
++    // ie: different size, so create it now with the `requested_size`.
++    if (valid_modifiers && !created_bo) {
++      created_bo = gbm_bo_create_with_modifiers(
++          device_, requested_size.width(), requested_size.height(), format,
++          filtered_modifiers.data(), filtered_modifiers.size());
++      PLOG_IF(ERROR, !created_bo) << "Failed to create BO with modifiers.";
+     }
+ 
+-    return CreateBufferForBO(bo, format, size, flags);
++    return created_bo ? CreateBufferForBO(created_bo, format, size, flags)
++                      : nullptr;
+   }
+ 
+   std::unique_ptr<ui::GbmBuffer> CreateBufferFromHandle(
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index cc36911cd338d..c4b76486570e2 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=118.0.5993.70
+version=119.0.6045.105
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
+checksum=73cb8c39e928f8c627d747d37a3b020f08913ef5508f893758d70bdbd545dbcf
 
 lib32disabled=yes
 
@@ -52,7 +52,8 @@ if [ "$CROSS_BUILD" ]; then
 	 $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
 	 libcurl-devel snappy-devel libXrandr-devel libXcomposite-devel cups-devel
 	 mit-krb5-devel alsa-lib-devel libXdamage-devel libepoxy-devel libevdev-devel
-	 libavif-devel libaom-devel jsoncpp-devel woff2-devel libdav1d-devel libflac-devel"
+	 libavif-devel libaom-devel jsoncpp-devel woff2-devel libdav1d-devel libflac-devel
+	 libdrm-devel libgbm-devel"
 fi
 
 if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PR PATCH] [Merged]: chromium: update to 119.0.6045.105.
  2023-11-04 15:08 [PR PATCH] chromium: update to 119.0.6045.105 Duncaen
  2023-11-05 14:04 ` [PR PATCH] [Updated] " Duncaen
  2023-11-05 14:34 ` Duncaen
@ 2023-11-05 23:15 ` Duncaen
  2 siblings, 0 replies; 4+ messages in thread
From: Duncaen @ 2023-11-05 23:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 251 bytes --]

There's a merged pull request on the void-packages repository

chromium: update to 119.0.6045.105.
https://github.com/void-linux/void-packages/pull/47058

Description:
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [x] aarch64-musl
* [x] i686

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-11-05 23:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-04 15:08 [PR PATCH] chromium: update to 119.0.6045.105 Duncaen
2023-11-05 14:04 ` [PR PATCH] [Updated] " Duncaen
2023-11-05 14:34 ` Duncaen
2023-11-05 23:15 ` [PR PATCH] [Merged]: " Duncaen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).