public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: - update to 126.0.6478.55
@ 2026-08-07 16:06 Than Ngo
  0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:06 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/chromium
            Branch : epel9-next
            Commit : 53321af48cdbb4d1409f5942ec7c38826098db31
            Author : Than Ngo <than@redhat.com>
            Date   : 2024-06-12T11:59:36+02:00
            Stats  : +5782/-4090 in 32 file(s)
            URL    : https://src.fedoraproject.org/rpms/chromium/c/53321af48cdbb4d1409f5942ec7c38826098db31?branch=epel9-next

            Log:
            - update to 126.0.6478.55
  * High CVE-2024-5830: Type Confusion in V8
  * High CVE-2024-5831: Use after free in Dawn
  * High CVE-2024-5832: Use after free in Dawn
  * High CVE-2024-5833: Type Confusion in V8
  * High CVE-2024-5834: Inappropriate implementation in Dawn
  * High CVE-2024-5835: Heap buffer overflow in Tab Groups
  * High CVE-2024-5836: Inappropriate Implementation in DevTools
  * High CVE-2024-5837: Type Confusion in V8
  * High CVE-2024-5838: Type Confusion in V8
  * Medium CVE-2024-5839: Inappropriate Implementation in Memory Allocator
  * Medium CVE-2024-5840: Policy Bypass in CORS
  * Medium CVE-2024-5841: Use after free in V8
  * Medium CVE-2024-5842: Use after free in Browser UI
  * Medium CVE-2024-5843: Inappropriate implementation in Downloads
  * Medium CVE-2024-5844: Heap buffer overflow in Tab Strip
  * Medium CVE-2024-5845: Use after free in Audio
  * Medium CVE-2024-5846: Use after free in PDFium
  * Medium CVE-2024-5847: Use after free in PDFium
- refreshed patches
- dropped a workaround for a bug in new llvm on f40/rawhide (ppc64le)
- tweaked system build flags

---
diff --git a/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch b/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
index 8591c28..2927b87 100644
--- a/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
+++ b/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
@@ -1,8 +1,8 @@
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
-@@ -0,0 +1,93 @@
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.asm
+@@ -0,0 +1,95 @@
 +;
 +; Copyright (c) 2024, Alliance for Open Media. All rights reserved
 +;
@@ -20,7 +20,7 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +AOM_ARCH_X86_64 equ 0
 +CONFIG_ACCOUNTING equ 0
 +CONFIG_ANALYZER equ 0
-+CONFIG_AV1_DECODER equ 1
++CONFIG_AV1_DECODER equ 0
 +CONFIG_AV1_ENCODER equ 1
 +CONFIG_AV1_HIGHBITDEPTH equ 0
 +CONFIG_AV1_TEMPORAL_DENOISING equ 1
@@ -47,16 +47,17 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +CONFIG_INTER_STATS_ONLY equ 0
 +CONFIG_LIBVMAF_PSNR_PEAK equ 1
 +CONFIG_LIBYUV equ 0
-+CONFIG_MAX_DECODE_PROFILE equ 0
++CONFIG_MAX_DECODE_PROFILE equ 2
 +CONFIG_MISMATCH_DEBUG equ 0
 +CONFIG_MULTITHREAD equ 1
 +CONFIG_NN_V2 equ 0
-+CONFIG_NORMAL_TILE_MODE equ 1
++CONFIG_NORMAL_TILE_MODE equ 0
 +CONFIG_OPTICAL_FLOW_API equ 0
 +CONFIG_OS_SUPPORT equ 1
 +CONFIG_OUTPUT_FRAME_SIZE equ 0
 +CONFIG_PARTITION_SEARCH_ORDER equ 0
 +CONFIG_PIC equ 1
++CONFIG_QUANT_MATRIX equ 0
 +CONFIG_RATECTRL_LOG equ 0
 +CONFIG_RD_COMMAND equ 0
 +CONFIG_RD_DEBUG equ 0
@@ -92,14 +93,15 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +HAVE_SSE4_2 equ 0
 +HAVE_SSSE3 equ 0
 +HAVE_SVE equ 0
++HAVE_SVE2 equ 0
 +HAVE_UNISTD_H equ 1
 +HAVE_VSX equ 1
 +HAVE_WXWIDGETS equ 0
 +STATIC_LINK_JXL equ 0
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.c
 @@ -0,0 +1,13 @@
 +/*
 + * Copyright (c) 2024, Alliance for Open Media. All rights reserved
@@ -112,13 +114,13 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 + * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 + */
 +#include "aom/aom_codec.h"
-+static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/ppc-linux-gcc.cmake\" -DCONFIG_AV1_ENCODER=1 -DCONFIG_LIBYUV=0 -DCONFIG_AV1_HIGHBITDEPTH=0 -DCONFIG_AV1_TEMPORAL_DENOISING=1 -DCONFIG_REALTIME_ONLY=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384";
++static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/ppc-linux-gcc.cmake\" -DCONFIG_AV1_DECODER=0 -DCONFIG_AV1_ENCODER=1 -DCONFIG_LIBYUV=0 -DCONFIG_AV1_HIGHBITDEPTH=0 -DCONFIG_AV1_TEMPORAL_DENOISING=1 -DCONFIG_QUANT_MATRIX=0 -DCONFIG_REALTIME_ONLY=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384";
 +const char *aom_codec_build_config(void) {return cfg;}
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
-@@ -0,0 +1,97 @@
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_config.h
+@@ -0,0 +1,99 @@
 +/*
 + * Copyright (c) 2024, Alliance for Open Media. All rights reserved
 + *
@@ -138,7 +140,7 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +#define AOM_ARCH_X86_64 0
 +#define CONFIG_ACCOUNTING 0
 +#define CONFIG_ANALYZER 0
-+#define CONFIG_AV1_DECODER 1
++#define CONFIG_AV1_DECODER 0
 +#define CONFIG_AV1_ENCODER 1
 +#define CONFIG_AV1_HIGHBITDEPTH 0
 +#define CONFIG_AV1_TEMPORAL_DENOISING 1
@@ -165,16 +167,17 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +#define CONFIG_INTER_STATS_ONLY 0
 +#define CONFIG_LIBVMAF_PSNR_PEAK 1
 +#define CONFIG_LIBYUV 0
-+#define CONFIG_MAX_DECODE_PROFILE 0
++#define CONFIG_MAX_DECODE_PROFILE 2
 +#define CONFIG_MISMATCH_DEBUG 0
 +#define CONFIG_MULTITHREAD 1
 +#define CONFIG_NN_V2 0
-+#define CONFIG_NORMAL_TILE_MODE 1
++#define CONFIG_NORMAL_TILE_MODE 0
 +#define CONFIG_OPTICAL_FLOW_API 0
 +#define CONFIG_OS_SUPPORT 1
 +#define CONFIG_OUTPUT_FRAME_SIZE 0
 +#define CONFIG_PARTITION_SEARCH_ORDER 0
 +#define CONFIG_PIC 1
++#define CONFIG_QUANT_MATRIX 0
 +#define CONFIG_RATECTRL_LOG 0
 +#define CONFIG_RD_COMMAND 0
 +#define CONFIG_RD_DEBUG 0
@@ -210,16 +213,17 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +#define HAVE_SSE4_2 0
 +#define HAVE_SSSE3 0
 +#define HAVE_SVE 0
++#define HAVE_SVE2 0
 +#define HAVE_UNISTD_H 1
 +#define HAVE_VSX 1
 +#define HAVE_WXWIDGETS 0
 +#define INLINE inline
 +#define STATIC_LINK_JXL 0
 +#endif  // AOM_CONFIG_H_
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_dsp_rtcd.h
 @@ -0,0 +1,1541 @@
 +// This file is generated. Do not edit.
 +#ifndef AOM_DSP_RTCD_H_
@@ -1762,10 +1766,10 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +#endif
 +
 +#endif
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/aom_scale_rtcd.h
 @@ -0,0 +1,107 @@
 +// This file is generated. Do not edit.
 +#ifndef AOM_SCALE_RTCD_H_
@@ -1785,7 +1789,7 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +extern "C" {
 +#endif
 +
-+void aom_extend_frame_borders_c(struct yv12_buffer_config *ybf, const int num_planes);
++void aom_extend_frame_borders_c(struct yv12_buffer_config *ybf, int num_planes);
 +#define aom_extend_frame_borders aom_extend_frame_borders_c
 +
 +void aom_extend_frame_borders_plane_row_c(const struct yv12_buffer_config *ybf, int plane, int v_start, int v_end);
@@ -1874,11 +1878,11 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +#endif
 +
 +#endif
-Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
+Index: chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
 ===================================================================
 --- /dev/null
-+++ chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
-@@ -0,0 +1,478 @@
++++ chromium-126.0.6478.57/third_party/libaom/source/config/linux/ppc64/config/av1_rtcd.h
+@@ -0,0 +1,484 @@
 +// This file is generated. Do not edit.
 +#ifndef AV1_RTCD_H_
 +#define AV1_RTCD_H_
@@ -2256,6 +2260,12 @@ Index: chromium-123.0.6312.58/third_party/libaom/source/config/linux/ppc64/confi
 +void av1_resize_and_extend_frame_c(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst, const InterpFilter filter, const int phase, const int num_planes);
 +#define av1_resize_and_extend_frame av1_resize_and_extend_frame_c
 +
++void av1_resize_horz_dir_c(const uint8_t *const input, int in_stride, uint8_t *intbuf, int height, int filteredlength, int width2);
++#define av1_resize_horz_dir av1_resize_horz_dir_c
++
++bool av1_resize_vert_dir_c(uint8_t *intbuf, uint8_t *output, int out_stride, int height, int height2, int width2, int start_col);
++#define av1_resize_vert_dir av1_resize_vert_dir_c
++
 +void av1_round_shift_array_c(int32_t *arr, int size, int bit);
 +#define av1_round_shift_array av1_round_shift_array_c
 +

diff --git a/0002-Add-PPC64-generated-files-for-boringssl.patch b/0002-Add-PPC64-generated-files-for-boringssl.patch
index 5ab5f16..4d1355f 100644
--- a/0002-Add-PPC64-generated-files-for-boringssl.patch
+++ b/0002-Add-PPC64-generated-files-for-boringssl.patch
@@ -1,6 +1,7 @@
-diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/aesp8-ppc-linux.S chromium-125.0.6422.41/third_party/boringssl/src/gen/bcm/aesp8-ppc-linux.S
---- chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/aesp8-ppc-linux.S	1970-01-01 00:00:00.000000000 +0000
-+++ chromium-125.0.6422.41/third_party/boringssl/src/gen/bcm/aesp8-ppc-linux.S	2024-05-14 17:55:16.198250869 +0000
+Index: chromium-126.0.6478.57/third_party/boringssl/src/gen/bcm/aesp8-ppc-linux.S
+===================================================================
+--- /dev/null
++++ chromium-126.0.6478.57/third_party/boringssl/src/gen/bcm/aesp8-ppc-linux.S
 @@ -0,0 +1,3673 @@
 +// This file is generated from a similarly-named Perl script in the BoringSSL
 +// source tree. Do not edit by hand.
@@ -3675,9 +3676,10 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/aesp8-pp
 +// See https://www.airs.com/blog/archives/518.
 +.section .note.GNU-stack,"",%progbits
 +#endif
-diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/ghashp8-ppc-linux.S chromium-125.0.6422.41/third_party/boringssl/src/gen/bcm/ghashp8-ppc-linux.S
---- chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/ghashp8-ppc-linux.S	1970-01-01 00:00:00.000000000 +0000
-+++ chromium-125.0.6422.41/third_party/boringssl/src/gen/bcm/ghashp8-ppc-linux.S	2024-05-14 17:55:16.086263678 +0000
+Index: chromium-126.0.6478.57/third_party/boringssl/src/gen/bcm/ghashp8-ppc-linux.S
+===================================================================
+--- /dev/null
++++ chromium-126.0.6478.57/third_party/boringssl/src/gen/bcm/ghashp8-ppc-linux.S
 @@ -0,0 +1,590 @@
 +// This file is generated from a similarly-named Perl script in the BoringSSL
 +// source tree. Do not edit by hand.
@@ -4269,10 +4271,11 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/bcm/ghashp8-
 +// See https://www.airs.com/blog/archives/518.
 +.section .note.GNU-stack,"",%progbits
 +#endif
-diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmake chromium-125.0.6422.41/third_party/boringssl/src/gen/sources.cmake
---- chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmake	2024-05-08 20:30:38.000000000 +0000
-+++ chromium-125.0.6422.41/third_party/boringssl/src/gen/sources.cmake	2024-05-14 17:55:16.018271455 +0000
-@@ -110,6 +110,7 @@
+Index: chromium-126.0.6478.57/third_party/boringssl/src/gen/sources.cmake
+===================================================================
+--- chromium-126.0.6478.57.orig/third_party/boringssl/src/gen/sources.cmake
++++ chromium-126.0.6478.57/third_party/boringssl/src/gen/sources.cmake
+@@ -110,6 +110,7 @@ set(
    gen/bcm/aesni-x86-linux.S
    gen/bcm/aesni-x86_64-apple.S
    gen/bcm/aesni-x86_64-linux.S
@@ -4280,7 +4283,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    gen/bcm/aesv8-armv7-linux.S
    gen/bcm/aesv8-armv8-apple.S
    gen/bcm/aesv8-armv8-linux.S
-@@ -141,6 +142,7 @@
+@@ -141,6 +142,7 @@ set(
    gen/bcm/ghash-x86-linux.S
    gen/bcm/ghash-x86_64-apple.S
    gen/bcm/ghash-x86_64-linux.S
@@ -4288,7 +4291,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    gen/bcm/ghashv8-armv7-linux.S
    gen/bcm/ghashv8-armv8-apple.S
    gen/bcm/ghashv8-armv8-linux.S
-@@ -336,6 +338,7 @@
+@@ -336,6 +338,7 @@ set(
    crypto/cpu_arm_freebsd.c
    crypto/cpu_arm_linux.c
    crypto/cpu_intel.c
@@ -4296,7 +4299,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    crypto/crypto.c
    crypto/curve25519/curve25519.c
    crypto/curve25519/curve25519_64_adx.c
-@@ -775,37 +778,6 @@
+@@ -775,37 +778,6 @@ set(
    CRYPTO_TEST_DATA
  
    crypto/blake2/blake2b256_tests.txt
@@ -4334,7 +4337,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    crypto/curve25519/ed25519_tests.txt
    crypto/ecdh_extra/ecdh_tests.txt
    crypto/evp/evp_tests.txt
-@@ -1182,1401 +1154,6 @@
+@@ -1189,1413 +1161,6 @@ set(
  set(
    PKI_TEST_DATA
  
@@ -5306,14 +5309,18 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/main.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/any.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth.test
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/any.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth.test
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-chain.pem
@@ -5328,6 +5335,8 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/main.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/chain.pem
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/main.test
 -  pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/chain.pem
@@ -5527,8 +5536,10 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
 -  pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/any.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth.test
+-  pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/any.test
@@ -5539,12 +5550,15 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/any.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth.test
+-  pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-none/any.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-none/chain.pem
+-  pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth.test
 -  pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth-strict.test
@@ -5567,6 +5581,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
 -  pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/main.test
 -  pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/chain.pem
 -  pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/main.test
+-  pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict-leaf.test
 -  pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict.test
 -  pki/testdata/verify_certificate_chain_unittest/target-only/chain.pem
 -  pki/testdata/verify_certificate_chain_unittest/target-only/trusted_anchor.test
@@ -5736,7 +5751,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    pki/testdata/verify_unittest/google-leaf.der
    pki/testdata/verify_unittest/self-issued.pem
  )
-@@ -2689,6 +1266,7 @@
+@@ -2708,6 +1273,7 @@ set(
    gen/test_support/trampoline-armv8-apple.S
    gen/test_support/trampoline-armv8-linux.S
    gen/test_support/trampoline-armv8-win.S
@@ -5744,9 +5759,10 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.cmak
    gen/test_support/trampoline-x86-apple.S
    gen/test_support/trampoline-x86-linux.S
    gen/test_support/trampoline-x86_64-apple.S
-diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json chromium-125.0.6422.41/third_party/boringssl/src/gen/sources.json
---- chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json	2024-05-08 20:30:38.000000000 +0000
-+++ chromium-125.0.6422.41/third_party/boringssl/src/gen/sources.json	2024-05-14 17:55:16.022270997 +0000
+Index: chromium-126.0.6478.57/third_party/boringssl/src/gen/sources.json
+===================================================================
+--- chromium-126.0.6478.57.orig/third_party/boringssl/src/gen/sources.json
++++ chromium-126.0.6478.57/third_party/boringssl/src/gen/sources.json
 @@ -88,6 +88,7 @@
        "gen/bcm/aesni-x86-linux.S",
        "gen/bcm/aesni-x86_64-apple.S",
@@ -5809,7 +5825,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
        "crypto/curve25519/ed25519_tests.txt",
        "crypto/ecdh_extra/ecdh_tests.txt",
        "crypto/evp/evp_tests.txt",
-@@ -1123,1401 +1095,6 @@
+@@ -1127,1413 +1099,6 @@
        "pki/verify_signed_data_unittest.cc"
      ],
      "data": [
@@ -6781,14 +6797,18 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/main.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/any.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth.test",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/any.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth.test",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-chain.pem",
@@ -6803,6 +6823,8 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/main.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/chain.pem",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/main.test",
 -      "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/chain.pem",
@@ -7002,8 +7024,10 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
 -      "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/any.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth.test",
+-      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/any.test",
@@ -7014,12 +7038,15 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/any.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth.test",
+-      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/any.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/chain.pem",
+-      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth-strict.test",
@@ -7042,6 +7069,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
 -      "pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/main.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/chain.pem",
 -      "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/main.test",
+-      "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict-leaf.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict.test",
 -      "pki/testdata/verify_certificate_chain_unittest/target-only/chain.pem",
 -      "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_anchor.test",
@@ -7211,7 +7239,7 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
        "pki/testdata/verify_unittest/google-leaf.der",
        "pki/testdata/verify_unittest/self-issued.pem"
      ]
-@@ -2615,6 +1192,7 @@
+@@ -2631,6 +1196,7 @@
        "gen/test_support/trampoline-armv8-apple.S",
        "gen/test_support/trampoline-armv8-linux.S",
        "gen/test_support/trampoline-armv8-win.S",
@@ -7219,9 +7247,10 @@ diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/sources.json
        "gen/test_support/trampoline-x86-apple.S",
        "gen/test_support/trampoline-x86-linux.S",
        "gen/test_support/trampoline-x86_64-apple.S",
-diff -urN chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/test_support/trampoline-ppc-linux.S chromium-125.0.6422.41/third_party/boringssl/src/gen/test_support/trampoline-ppc-linux.S
---- chromium-125.0.6422.41/third_party/boringssl/src/gen.orig/test_support/trampoline-ppc-linux.S	1970-01-01 00:00:00.000000000 +0000
-+++ chromium-125.0.6422.41/third_party/boringssl/src/gen/test_support/trampoline-ppc-linux.S	2024-05-14 17:55:16.090263221 +0000
+Index: chromium-126.0.6478.57/third_party/boringssl/src/gen/test_support/trampoline-ppc-linux.S
+===================================================================
+--- /dev/null
++++ chromium-126.0.6478.57/third_party/boringssl/src/gen/test_support/trampoline-ppc-linux.S
 @@ -0,0 +1,1413 @@
 +// This file is generated from a similarly-named Perl script in the BoringSSL
 +// source tree. Do not edit by hand.

diff --git a/0008-sandbox-fix-ppc64le-glibc234.patch b/0008-sandbox-fix-ppc64le-glibc234.patch
index 185aefc..dfda9e8 100644
--- a/0008-sandbox-fix-ppc64le-glibc234.patch
+++ b/0008-sandbox-fix-ppc64le-glibc234.patch
@@ -1,7 +1,7 @@
-Index: chromium-120.0.6099.71/sandbox/policy/linux/bpf_utility_policy_linux.cc
+Index: chromium-126.0.6478.57/sandbox/policy/linux/bpf_utility_policy_linux.cc
 ===================================================================
---- chromium-120.0.6099.71.orig/sandbox/policy/linux/bpf_utility_policy_linux.cc
-+++ chromium-120.0.6099.71/sandbox/policy/linux/bpf_utility_policy_linux.cc
+--- chromium-126.0.6478.57.orig/sandbox/policy/linux/bpf_utility_policy_linux.cc
++++ chromium-126.0.6478.57/sandbox/policy/linux/bpf_utility_policy_linux.cc
 @@ -34,7 +34,7 @@ ResultExpr UtilityProcessPolicy::Evaluat
      case __NR_fdatasync:
      case __NR_fsync:
@@ -11,10 +11,10 @@ Index: chromium-120.0.6099.71/sandbox/policy/linux/bpf_utility_policy_linux.cc
      case __NR_getrlimit:
  #endif
  #if defined(__i386__) || defined(__arm__)
-Index: chromium-120.0.6099.71/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+Index: chromium-126.0.6478.57/sandbox/policy/linux/bpf_renderer_policy_linux.cc
 ===================================================================
---- chromium-120.0.6099.71.orig/sandbox/policy/linux/bpf_renderer_policy_linux.cc
-+++ chromium-120.0.6099.71/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+--- chromium-126.0.6478.57.orig/sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ chromium-126.0.6478.57/sandbox/policy/linux/bpf_renderer_policy_linux.cc
 @@ -87,7 +87,7 @@ ResultExpr RendererProcessPolicy::Evalua
      case __NR_ftruncate64:
  #endif
@@ -24,10 +24,10 @@ Index: chromium-120.0.6099.71/sandbox/policy/linux/bpf_renderer_policy_linux.cc
      case __NR_getrlimit:
      case __NR_setrlimit:
  // We allow setrlimit to dynamically adjust the address space limit as
-Index: chromium-120.0.6099.71/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+Index: chromium-126.0.6478.57/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
 ===================================================================
---- chromium-120.0.6099.71.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
-+++ chromium-120.0.6099.71/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+--- chromium-126.0.6478.57.orig/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
++++ chromium-126.0.6478.57/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
 @@ -58,9 +58,9 @@
  
  #elif defined(__powerpc64__)
@@ -40,37 +40,36 @@ Index: chromium-120.0.6099.71/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
  #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
  
  #else
-Index: chromium-120.0.6099.71/sandbox/linux/services/credentials.cc
+Index: chromium-126.0.6478.57/sandbox/linux/services/credentials.cc
 ===================================================================
---- chromium-120.0.6099.71.orig/sandbox/linux/services/credentials.cc
-+++ chromium-120.0.6099.71/sandbox/linux/services/credentials.cc
-@@ -89,7 +89,9 @@ bool ChrootToSafeEmptyDir() {
+--- chromium-126.0.6478.57.orig/sandbox/linux/services/credentials.cc
++++ chromium-126.0.6478.57/sandbox/linux/services/credentials.cc
+@@ -89,7 +89,8 @@ bool ChrootToSafeEmptyDir() {
  
    int clone_flags = CLONE_FS | LINUX_SIGCHLD;
    void* tls = nullptr;
 -#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
-+// RAJA this might be it...
 +#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY) || \
 +    defined(ARCH_CPU_PPC64_FAMILY)) && \
      !defined(MEMORY_SANITIZER)
    // Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
    // Since clone writes to the new child's TLS before returning, we must set a
-@@ -97,6 +99,11 @@ bool ChrootToSafeEmptyDir() {
+@@ -97,6 +98,11 @@ bool ChrootToSafeEmptyDir() {
    // glibc performs syscalls by calling a function pointer in TLS, so we do not
    // attempt this optimization.
-   // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
+   // TODO(crbug.com/40196869) Broken in MSan builds after LLVM f1bb30a4956f.
 +  //
 +  // NOTE: Without CLONE_VM, fontconfig will attempt to reload configuration
 +  // in every thread.  Since the rendered threads are sandboxed without
 +  // filesystem access (e.g. to /etc/fonts/fonts.conf) this will cause font
-+  // configuraiton loading failures and no fonts will be displayed!
++  // configuration loading failures and no fonts will be displayed!
    clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
  
    // PTHREAD_STACK_MIN can be dynamic in glibc2.34+, so it is not possible to
-Index: chromium-120.0.6099.71/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+Index: chromium-126.0.6478.57/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
 ===================================================================
---- chromium-120.0.6099.71.orig/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
-+++ chromium-120.0.6099.71/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+--- chromium-126.0.6478.57.orig/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
++++ chromium-126.0.6478.57/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
 @@ -357,7 +357,16 @@ intptr_t SIGSYSFstatatHandler(const stru
    if (args.nr == __NR_fstatat_default) {
      if (*reinterpret_cast<const char*>(args.args[1]) == '\0' &&

diff --git a/chromium-116-el7-include-fcntl-memfd.patch b/chromium-116-el7-include-fcntl-memfd.patch
deleted file mode 100644
index d23745e..0000000
--- a/chromium-116-el7-include-fcntl-memfd.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c
---- chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me	2022-12-24 11:08:03.212333476 +0100
-+++ chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c	2022-12-24 11:08:18.316606155 +0100
-@@ -44,7 +44,7 @@
- #include <signal.h>
- #include <pthread.h>
- #include <errno.h>
--#include <fcntl.h>
-+#include <linux/fcntl.h>
- 
- #include "wayland-os.h"
- #include "wayland-util.h"
-diff -up chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc
---- chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include	2022-06-15 10:52:49.553817031 -0400
-+++ chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc	2022-06-15 10:56:15.775173013 -0400
-@@ -56,6 +56,7 @@
- 
- #if V8_OS_LINUX
- #include <sys/prctl.h>  // for prctl
-+#include <linux/memfd.h> // for MFD_CLOEXEC
- #endif
- 
- #if defined(V8_OS_FUCHSIA)
-diff -up iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c
---- iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me	2022-12-08 21:59:43.502200984 +0100
-+++ iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c	2022-12-08 22:13:53.375653343 +0100
-@@ -29,7 +29,8 @@
- 
- #include <sys/types.h>
- #include <unistd.h>
--#include <fcntl.h>
-+#include <linux/fcntl.h> // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
-+#include <linux/memfd.h> // for MFD_CLOEXEC
- #include <errno.h>
- #include <signal.h>
- #include <string.h>
-diff -up chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.me chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
---- chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.me	2023-08-17 06:32:32.484538849 +0200
-+++ chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc	2023-08-17 07:02:01.965168328 +0200
-@@ -5,6 +5,7 @@
- #include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.h"
- 
- #include <sys/mman.h>
-+#include <linux/memfd.h>
- 
- #include <string>
- #include <utility>

diff --git a/chromium-120-split-threshold-for-reg-with-hint.patch b/chromium-120-split-threshold-for-reg-with-hint.patch
deleted file mode 100644
index e80ed71..0000000
--- a/chromium-120-split-threshold-for-reg-with-hint.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up chromium-120.0.6099.35/build/config/compiler/BUILD.gn.than chromium-120.0.6099.35/build/config/compiler/BUILD.gn
---- chromium-120.0.6099.35/build/config/compiler/BUILD.gn.than	2023-11-26 17:02:25.647022746 +0100
-+++ chromium-120.0.6099.35/build/config/compiler/BUILD.gn	2023-11-26 17:15:58.025585358 +0100
-@@ -616,24 +616,6 @@ config("compiler") {
-       }
-     }
- 
--    # TODO(crbug.com/1488374): This causes binary size growth and potentially
--    # other problems.
--    # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version.
--    if (default_toolchain != "//build/toolchain/cros:target" &&
--        !llvm_android_mainline) {
--      cflags += [
--        "-mllvm",
--        "-split-threshold-for-reg-with-hint=0",
--      ]
--      if (use_thin_lto && is_a_target_toolchain) {
--        if (is_win) {
--          ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
--        } else {
--          ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
--        }
--      }
--    }
--
-     # TODO(crbug.com/1235145): Investigate why/if this should be needed.
-     if (is_win) {
-       cflags += [ "/clang:-ffp-contract=off" ]

diff --git a/chromium-122-clang16-disable-auto-upgrade-debug-info.patch b/chromium-122-clang16-disable-auto-upgrade-debug-info.patch
deleted file mode 100644
index c830caa..0000000
--- a/chromium-122-clang16-disable-auto-upgrade-debug-info.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-122.0.6261.29/build/config/compiler/BUILD.gn.me chromium-122.0.6261.29/build/config/compiler/BUILD.gn
---- chromium-122.0.6261.29/build/config/compiler/BUILD.gn.me	2024-02-12 14:46:52.691992282 +0100
-+++ chromium-122.0.6261.29/build/config/compiler/BUILD.gn	2024-02-12 14:48:54.256274068 +0100
-@@ -787,7 +787,7 @@ config("compiler") {
- 
-       # We only use one version of LLVM within a build so there's no need to
-       # upgrade debug info, which can be expensive since it runs the verifier.
--      ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
-+      ldflags += [ "" ]
-     }
- 
-     # TODO(https://crbug.com/1211155): investigate why this isn't effective on

diff --git a/chromium-124-clang16-buildflags.patch b/chromium-124-clang16-buildflags.patch
deleted file mode 100644
index b53b2a8..0000000
--- a/chromium-124-clang16-buildflags.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up chromium-124.0.6367.49/build/config/compiler/BUILD.gn.orig chromium-124.0.6367.49/build/config/compiler/BUILD.gn
---- chromium-124.0.6367.49/build/config/compiler/BUILD.gn.orig	2024-04-14 22:43:02.906578948 +0200
-+++ chromium-124.0.6367.49/build/config/compiler/BUILD.gn	2024-04-14 22:46:19.513353809 +0200
-@@ -1890,9 +1890,6 @@ config("default_warnings") {
- 
-         # TODO(crbug.com/1494809): Evaluate and possibly enable.
-         "-Wno-vla-extension",
--
--        # TODO(https://crbug.com/1490607): Fix and re-enable.
--        "-Wno-thread-safety-reference-return",
-       ]
- 
-       cflags_cc += [
-@@ -1903,7 +1900,7 @@ config("default_warnings") {
-       if (!is_nacl) {
-         cflags_cc += [
-           # TODO(https://crbug.com/1513724): Fix and re-enable.
--          "-Wno-c++11-narrowing-const-reference",
-+          "-Wno-c++11-narrowing",
-         ]
-       }
-     }

diff --git a/chromium-124-libavif-deps.patch b/chromium-124-libavif-deps.patch
deleted file mode 100644
index 6298217..0000000
--- a/chromium-124-libavif-deps.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-124.0.6367.49/third_party/libavif/BUILD.gn.me chromium-124.0.6367.49/third_party/libavif/BUILD.gn
---- chromium-124.0.6367.49/third_party/libavif/BUILD.gn.me	2024-04-15 22:29:28.024287328 +0200
-+++ chromium-124.0.6367.49/third_party/libavif/BUILD.gn	2024-04-15 22:29:33.205411066 +0200
-@@ -85,7 +85,6 @@ component("libavif_enc") {
-   configs += [ ":avif_config" ]
- 
-   deps = [
--    "//third_party/libwebp:libwebp_sharpyuv",
-     "//third_party/libyuv",
-   ]
-   defines = [ "AVIF_LIBSHARPYUV_ENABLED" ]

diff --git a/chromium-125-devtools-build-dependency.patch b/chromium-125-devtools-build-dependency.patch
deleted file mode 100644
index 1f16ac1..0000000
--- a/chromium-125-devtools-build-dependency.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-commit a976cb05b4024b7a6452d1541378d718cdfe33e6
-Author: Takuto Ikuta <tikuta@chromium.org>
-Date:   Thu Apr 25 07:25:32 2024 +0000
-
-    [devtools] fix a missing build dependency to a generated file
-    
-    Bug: 336911498
-    Change-Id: I6e6d3afaf33ace53a68271b70165b8c3ab596340
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5487538
-    Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
-    Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
-    Reviewed-by: Danil Somsikov <dsv@chromium.org>
-    Commit-Queue: Danil Somsikov <dsv@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1292300}
-
-diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn
-index f0c07cad8cfb4..053199e462f55 100644
---- a/chrome/browser/devtools/BUILD.gn
-+++ b/chrome/browser/devtools/BUILD.gn
-@@ -117,6 +117,7 @@ static_library("devtools") {
-     "//chrome/browser/autofill:autofill",
-     "//components/autofill/content/browser:browser",
-     "//components/autofill/core/browser:browser",
-+    "//components/enterprise/buildflags",
-     "//components/paint_preview/buildflags:buildflags",
-     "//components/variations/service:service",
-     "//components/webapps/common:common",

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

diff --git a/chromium-125-el7-no_matching_constructor.patch b/chromium-125-el7-no_matching_constructor.patch
deleted file mode 100644
index e6acca4..0000000
--- a/chromium-125-el7-no_matching_constructor.patch
+++ /dev/null
@@ -1,1754 +0,0 @@
-diff -up chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
---- chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor	2024-05-15 23:45:49.000000000 +0200
-+++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc	2024-05-17 12:33:58.707650385 +0200
-@@ -73,7 +73,7 @@ bool LightweightQuarantineBranch::Quaran
-     // synchronization between the root and branch, so `branch_size_in_bytes_`
-     // may be larger than `root_.capacity_in_bytes_` at this point.
- 
--    slots_.emplace_back(slot_start, usable_size);
-+    slots_.emplace_back() = {slot_start, usable_size};
- 
-     // Swap randomly so that the quarantine list remain shuffled.
-     // This is not uniformly random, but sufficiently random.
-diff -up chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc
---- chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
-+++ chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc	2024-05-17 12:33:58.708650406 +0200
-@@ -220,13 +220,13 @@ PersistentSparseHistogramDataManager::Lo
-     // The sample-record could be for any sparse histogram. Add the reference
-     // to the appropriate collection for later use.
-     if (found_id == match_id) {
--      found_records.emplace_back(ref, value);
-+      found_records.emplace_back() = {ref, value};
-       found = true;
-     } else {
-       std::vector<ReferenceAndSample>* samples =
-           GetSampleMapRecordsWhileLocked(found_id);
-       CHECK(samples);
--      samples->emplace_back(ref, value);
-+      samples->emplace_back() = {ref, value};
-     }
-   }
- 
-diff -up chromium-125.0.6422.60/base/nix/mime_util_xdg.cc.no_matching_constructor chromium-125.0.6422.60/base/nix/mime_util_xdg.cc
---- chromium-125.0.6422.60/base/nix/mime_util_xdg.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
-+++ chromium-125.0.6422.60/base/nix/mime_util_xdg.cc	2024-05-17 12:33:58.708650406 +0200
-@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap&
-   for (const auto& path : GetXDGDataSearchLocations(env.get())) {
-     FilePath mime_cache = path.Append("mime/mime.cache");
-     if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) {
--      files.emplace_back(mime_cache, info.last_modified);
-+      files.emplace_back() = {mime_cache, info.last_modified};
-     }
-   }
- }
-diff -up chromium-125.0.6422.60/base/trace_event/trace_log.cc.no_matching_constructor chromium-125.0.6422.60/base/trace_event/trace_log.cc
---- chromium-125.0.6422.60/base/trace_event/trace_log.cc.no_matching_constructor	2024-05-15 23:45:50.000000000 +0200
-+++ chromium-125.0.6422.60/base/trace_event/trace_log.cc	2024-05-17 12:33:58.709650427 +0200
-@@ -2198,8 +2198,8 @@ void TraceLog::SetTraceBufferForTesting(
- #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
- void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
-   AutoLock lock(track_event_lock_);
--  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
--                                     args.backend_type);
-+  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
-+                                     args.backend_type};
- }
- 
- void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
-diff -up chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2024-05-15 23:46:00.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permission_provider.cc	2024-05-17 12:33:58.709650427 +0200
-@@ -258,8 +258,8 @@ void OneTimePermissionProvider::OnSuspen
- 
-       while (rule_iterator && rule_iterator->HasNext()) {
-         auto rule = rule_iterator->Next();
--        patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
--                                        rule->secondary_pattern);
-+        patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
-+                                        rule->secondary_pattern};
-         permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
-             setting_type,
-             permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
-@@ -361,8 +361,8 @@ void OneTimePermissionProvider::DeleteEn
-     auto rule = rule_iterator->Next();
-     if (rule->primary_pattern.Matches(origin_gurl) &&
-         rule->secondary_pattern.Matches(origin_gurl)) {
--      patterns_to_delete.emplace_back(
--          content_setting_type, rule->primary_pattern, rule->secondary_pattern);
-+      patterns_to_delete.emplace_back() = {
-+          content_setting_type, rule->primary_pattern, rule->secondary_pattern};
-       permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
-           content_setting_type, trigger_event);
-     }
-diff -up chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
---- chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2024-05-15 23:46:00.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2024-05-17 12:33:58.709650427 +0200
-@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
-   // TODO(crbug.com/1445072): Add actual domains with attribute names.
-   profile_attributes->insert(std::make_pair(
-       "supported.test",
--      SAMLProfileAttributes("placeholderName", "placeholderDomain",
--                            "placeholderToken")));
-+      SAMLProfileAttributes{"placeholderName", "placeholderDomain",
-+                            "placeholderToken"}));
- 
-   // Extract domains and attributes from the command line switch.
-   const base::CommandLine& command_line =
-diff -up chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
---- chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor	2024-05-15 23:46:01.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc	2024-05-17 12:33:58.710650447 +0200
-@@ -387,7 +387,7 @@ bool ShouldBlockAccessToPath(const base:
-       DCHECK(block.path);
-       blocked_path = base::FilePath(block.path);
-     }
--    rules.emplace_back(blocked_path, block.type);
-+    rules.emplace_back() = {blocked_path, block.type};
-   }
- 
-   base::FilePath nearest_ancestor;
-@@ -1688,11 +1688,11 @@ void ChromeFileSystemAccessPermissionCon
-   // profile's directory, assuming the profile dir is a child of the user data
-   // dir.
-   std::vector<BlockPathRule> extra_rules;
--  extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren);
-+  extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren};
-   if (g_browser_process->profile_manager()) {
--    extra_rules.emplace_back(
-+    extra_rules.emplace_back() = {
-         g_browser_process->profile_manager()->user_data_dir(),
--        kBlockAllChildren);
-+        kBlockAllChildren};
-   }
- 
-   base::ThreadPool::PostTaskAndReplyWithResult(
-diff -up chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc
---- chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor	2024-05-18 19:08:35.415026823 +0200
-+++ chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/page_discarder.cc	2024-05-18 19:10:05.527644708 +0200
-@@ -53,7 +53,7 @@ std::vector<PageDiscarder::DiscardEvent>
-     if (lifecycle_unit->DiscardTab(
-             discard_reason,
-             /*memory_footprint_estimate=*/proxy.second)) {
--      discard_events.emplace_back(base::TimeTicks::Now(), proxy.second);
-+      discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second};
-     }
-   }
-   return discard_events;
-diff -up chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc
---- chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor	2024-05-15 23:46:02.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view_context_menu.cc	2024-05-17 12:33:58.711650468 +0200
-@@ -4049,10 +4049,10 @@ void RenderViewContextMenu::ExecOpenComp
-     autofill::LocalFrameToken frame_token = driver->GetFrameToken();
-     client->GetManager().OpenCompose(
-         *driver,
--        autofill::FormGlobalId(
--            frame_token, autofill::FormRendererId(params_.form_renderer_id)),
--        autofill::FieldGlobalId(
--            frame_token, autofill::FieldRendererId(params_.field_renderer_id)),
-+        autofill::FormGlobalId{
-+            frame_token, autofill::FormRendererId(params_.form_renderer_id)},
-+        autofill::FieldGlobalId{
-+            frame_token, autofill::FieldRendererId(params_.field_renderer_id)},
-         compose::ComposeManagerImpl::UiEntryPoint::kContextMenu);
-     GetBrowser()->window()->NotifyPromoFeatureUsed(
-         compose::features::kEnableCompose);
-diff -up chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
---- chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu_manager.cc	2024-05-17 12:33:58.711650468 +0200
-@@ -365,8 +365,8 @@ void AutofillContextMenuManager::Execute
-     AutofillManager& manager) {
-   auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
-   driver.browser_events().RendererShouldTriggerSuggestions(
--      FieldGlobalId(driver.GetFrameToken(),
--                    FieldRendererId(params_.field_renderer_id)),
-+      FieldGlobalId{driver.GetFrameToken(),
-+                    FieldRendererId(params_.field_renderer_id)},
-       AutofillSuggestionTriggerSource::kManualFallbackPayments);
-   LogManualFallbackContextMenuEntryAccepted(
-       static_cast<BrowserAutofillManager&>(manager),
-diff -up chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
---- chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2024-05-17 12:33:58.712650489 +0200
-@@ -513,10 +513,10 @@ void ChromeOmniboxClient::OnAutocomplete
-               alternative_nav_match);
- 
-   // Store the details necessary to open the omnibox match via browser commands.
--  location_bar_->set_navigation_params(LocationBar::NavigationParams(
-+  location_bar_->set_navigation_params(LocationBar::NavigationParams{
-       destination_url, disposition, transition, match_selection_timestamp,
-       destination_url_entered_without_scheme,
--      destination_url_entered_with_http_scheme, match.extra_headers));
-+      destination_url_entered_with_http_scheme, match.extra_headers});
- 
-   if (browser_) {
-     auto navigation = chrome::OpenCurrentURL(browser_);
-diff -up chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h
---- chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor	2024-05-15 23:46:05.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_service.h	2024-05-17 12:33:58.712650489 +0200
-@@ -24,6 +24,7 @@ struct MenuNotificationEntry {
-   int command = 0;
-   std::u16string label;
-   safety_hub::SafetyHubModuleType module;
-+  MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { }
- };
- 
- namespace {
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor	2024-05-18 19:53:04.665382949 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_manager.cc	2024-05-18 19:54:39.601643890 +0200
-@@ -44,20 +44,20 @@ views::ProposedLayout ContentsLayoutMana
- 
-   // DevTools cares about the specific position, so we have to compensate RTL
-   // layout here.
--  layouts.child_layouts.emplace_back(
-+  layouts.child_layouts.emplace_back() = {
-       devtools_view_.get(), devtools_view_->GetVisible(),
-       host_view()->GetMirroredRect(new_devtools_bounds),
--      views::SizeBounds(container_size));
--  layouts.child_layouts.emplace_back(
-+      views::SizeBounds(container_size)};
-+  layouts.child_layouts.emplace_back() = {
-       contents_view_.get(), contents_view_->GetVisible(),
-       host_view()->GetMirroredRect(new_contents_bounds),
--      views::SizeBounds(container_size));
-+      views::SizeBounds(container_size)};
- 
-   // Enterprise watermark view is always overlaid, even when empty.
-   if (watermark_view_) {
--    layouts.child_layouts.emplace_back(
-+    layouts.child_layouts.emplace_back() = {
-         watermark_view_.get(), watermark_view_->GetVisible(),
--        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size));
-+        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size)};
-   }
-   layouts.host_size = gfx::Size(width, height);
-   return layouts;
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2024-05-17 12:33:58.713650509 +0200
-@@ -60,12 +60,12 @@ std::vector<EmbeddedPermissionPromptAskV
- EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
-   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
--    buttons.emplace_back(
-+    buttons.emplace_back() = {
-         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
--        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
-+        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
-   }
--  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
--                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId);
-+  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-+                       ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId};
-   return buttons;
- }
- 
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
---- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2024-05-17 12:33:58.713650509 +0200
-@@ -87,6 +87,7 @@ class EmbeddedPermissionPromptBaseView :
-   struct RequestLineConfiguration {
-     const raw_ptr<const gfx::VectorIcon> icon;
-     std::u16string message;
-+    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
-   };
- 
-   struct ButtonConfiguration {
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2024-05-17 12:33:58.713650509 +0200
-@@ -64,8 +64,8 @@ EmbeddedPermissionPromptPolicyView::GetR
- std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
- EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
--                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
-+  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
-+                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
-   return buttons;
- }
- 
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc	2024-05-17 12:33:58.713650509 +0200
-@@ -79,17 +79,17 @@ EmbeddedPermissionPromptPreviouslyDenied
- std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
--      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
-+      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
- 
-   if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
--    buttons.emplace_back(
-+    buttons.emplace_back() = {
-         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
--        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId);
-+        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId};
-   } else {
--    buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
--                         ButtonType::kAllow, ui::ButtonStyle::kTonal);
-+    buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
-+                         ButtonType::kAllow, ui::ButtonStyle::kTonal};
-   }
-   return buttons;
- }
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2024-05-17 12:33:58.713650509 +0200
-@@ -74,12 +74,12 @@ EmbeddedPermissionPromptPreviouslyGrante
- std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
- EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
-   std::vector<ButtonConfiguration> buttons;
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
--      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
-+      ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
- 
--  buttons.emplace_back(
-+  buttons.emplace_back() = {
-       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
--      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId);
-+      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
-   return buttons;
- }
-diff -up chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc
---- chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc	2024-05-17 12:33:58.714650530 +0200
-@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G
- 
-     // Radii are clockwise from top left.
-     const SkVector radii[4] = {
--        SkVector(top_content_corner_radius, top_content_corner_radius),
--        SkVector(top_content_corner_radius, top_content_corner_radius),
--        SkVector(bottom_content_corner_radius, bottom_content_corner_radius),
--        SkVector(bottom_content_corner_radius, bottom_content_corner_radius)};
-+        SkVector{top_content_corner_radius, top_content_corner_radius},
-+        SkVector{top_content_corner_radius, top_content_corner_radius},
-+        SkVector{bottom_content_corner_radius, bottom_content_corner_radius},
-+        SkVector{bottom_content_corner_radius, bottom_content_corner_radius}};
-     SkRRect rrect;
-     rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii);
-     SkPath path;
-diff -up chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
---- chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor	2024-05-15 23:46:06.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-05-17 12:33:58.714650530 +0200
-@@ -108,7 +108,7 @@ AddOptionsFromMojo(
-                      ConvertPathToUrl(sub_app->manifest_id_path, origin));
-     ASSIGN_OR_RETURN(GURL install_url,
-                      ConvertPathToUrl(sub_app->install_url_path, origin));
--    sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
-+    sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
-   }
-   return sub_apps;
- }
-@@ -440,7 +440,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
-         base::BindOnce(
-             [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
-                webapps::InstallResultCode result_code) {
--              return SubAppInstallResult(manifest_id, app_id, result_code);
-+              return SubAppInstallResult{manifest_id, app_id, result_code};
-             },
-             manifest_id)
-             .Then(concurrent.CreateCallback()),
-diff -up chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc
---- chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2024-05-15 23:46:07.000000000 +0200
-+++ chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc	2024-05-17 12:33:58.715650551 +0200
-@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
-                         "'version' field of type string");
-         }
- 
--        brands.emplace_back(*brand, *version);
-+        brands.emplace_back() = {*brand, *version};
-       }
- 
-       client_hints.brands = std::move(brands);
-@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
-                         "a 'version' field of type string");
-         }
- 
--        full_version_list.emplace_back(*brand, *version);
-+        full_version_list.emplace_back() = {*brand, *version};
-       }
- 
-       client_hints.full_version_list = std::move(full_version_list);
-diff -up chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc
---- chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor	2024-05-17 15:50:21.185054389 +0200
-+++ chromium-125.0.6422.60/components/attribution_reporting/aggregatable_utils.cc	2024-05-17 15:51:40.414881053 +0200
-@@ -33,7 +33,7 @@ std::vector<NullAggregatableReport> GetN
-     }
- 
-     if (generate_func(i)) {
--      reports.emplace_back(fake_source_time);
-+      reports.emplace_back() = {fake_source_time};
-     }
-   }
-   return reports;
-diff -up chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc.no_matching_constructor chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc
---- chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
-+++ chromium-125.0.6422.60/components/attribution_reporting/registration_info.cc	2024-05-17 12:33:58.715650551 +0200
-@@ -96,7 +96,7 @@ RegistrationInfo::ParseInfo(const net::s
- 
-   ASSIGN_OR_RETURN(bool report_header_errors, ParseReportHeaderErrors(dict));
- 
--  return RegistrationInfo(preferred_platform, report_header_errors);
-+  return RegistrationInfo{preferred_platform, report_header_errors};
- }
- 
- }  // namespace attribution_reporting
-diff -up chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc
---- chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor	2024-05-18 22:33:31.434606367 +0200
-+++ chromium-125.0.6422.60/components/autofill/content/renderer/form_autofill_util.cc	2024-05-18 22:34:00.604459627 +0200
-@@ -2274,7 +2274,7 @@ std::vector<std::pair<FieldRef, WebAutof
-     if (element.Focused()) {
-       focused_field = {&field, element};
-     } else {
--      unfocused_fields.emplace_back(&field, element);
-+      unfocused_fields.emplace_back() = {&field, element};
-     }
-   }
- 
-diff -up chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
---- chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
-+++ chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc	2024-05-17 12:33:58.715650551 +0200
-@@ -635,10 +635,10 @@ std::unique_ptr<AutofillProfile> Address
-     }
- 
-     base::span<const uint8_t> observations_data = s.ColumnBlob(3);
--    field_type_values.emplace_back(
-+    field_type_values.emplace_back() = {
-         type, s.ColumnString16(1), s.ColumnInt(2),
-         std::vector<uint8_t>(observations_data.begin(),
--                             observations_data.end()));
-+                             observations_data.end())};
- 
-     if (type == ADDRESS_HOME_COUNTRY) {
-       country_code = base::UTF16ToUTF8(s.ColumnString16(1));
-diff -up chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
---- chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor	2024-05-15 23:46:11.000000000 +0200
-+++ chromium-125.0.6422.60/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc	2024-05-17 12:33:58.715650551 +0200
-@@ -169,9 +169,9 @@ class ContactInfoProfileSetter {
-       CHECK(observations.empty());
-       for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
-            metadata.observations()) {
--        observations.emplace_back(proto_observation.type(),
-+        observations.emplace_back() = {proto_observation.type(),
-                                   ProfileTokenQuality::FormSignatureHash(
--                                      proto_observation.form_hash()));
-+                                      proto_observation.form_hash())};
-       }
-     }
-   }
-diff -up chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc
---- chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor	2024-05-17 16:24:29.993689838 +0200
-+++ chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_service.cc	2024-05-17 16:24:48.402073830 +0200
-@@ -98,7 +98,7 @@ bool FCMInvalidationService::UpdateInter
-   DVLOG(2) << "Subscribing to topics: " << topic_set.size();
-   TopicMap topic_map;
-   for (const auto& topic_name : topic_set) {
--    topic_map[topic_name] = TopicMetadata(handler->IsPublicTopic(topic_name));
-+    topic_map[topic_name] = TopicMetadata{handler->IsPublicTopic(topic_name)};
-   }
-   // TODO(crbug.com/40675708): UpdateRegisteredTopics() should be renamed to
-   // clarify that it actually updates whether topics need subscription (aka
-diff -up chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc
---- chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor	2024-05-15 23:46:12.000000000 +0200
-+++ chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_monitor.cc	2024-05-17 12:33:58.715650551 +0200
-@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-   if (current_reclaim_event_) {
-     // Cache this kill event along with the time it took place.
--    current_reclaim_event_kills_.emplace_back(memory_freed_kb,
--                                              discard_complete_time);
-+    current_reclaim_event_kills_.emplace_back() = {memory_freed_kb,
-+                                              discard_complete_time};
-   }
- }
- 
-diff -up chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc.no_matching_constructor chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc
---- chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc.no_matching_constructor	2024-05-15 23:46:13.000000000 +0200
-+++ chromium-125.0.6422.60/components/password_manager/core/browser/password_manager.cc	2024-05-17 12:33:58.716650572 +0200
-@@ -686,7 +686,7 @@ void PasswordManager::OnUserModifiedNonP
-     it->second.last_change = base::Time::Now();
-   } else {
-     possible_usernames_.Put(
--        PossibleUsernameFieldIdentifier(driver_id, renderer_id),
-+        PossibleUsernameFieldIdentifier{driver_id, renderer_id},
-         PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
-                              renderer_id, value, base::Time::Now(), driver_id,
-                              autocomplete_attribute_has_username,
-diff -up chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc
---- chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor	2024-05-17 23:09:49.869213076 +0200
-+++ chromium-125.0.6422.60/components/password_manager/core/browser/password_suggestion_generator.cc	2024-05-17 23:22:38.599168420 +0200
-@@ -157,7 +157,7 @@ void MaybeAppendManagePasswordsEntry(
-   suggestion.icon = autofill::Suggestion::Icon::kSettings;
-   // The UI code will pick up an icon from the resources based on the string.
-   suggestion.trailing_icon = autofill::Suggestion::Icon::kGooglePasswordManager;
--  suggestions->emplace_back(std::move(suggestion));
-+  suggestions->emplace_back() = {std::move(suggestion)};
- }
- 
- // If |field_suggestion| matches |field_content|, creates a Suggestion out of it
-@@ -205,7 +205,7 @@ void AppendSuggestionIfMatching(
-       suggestion.trailing_icon = CreateStoreIcon(from_account_store);
-     }
- #endif
--    suggestions->emplace_back(std::move(suggestion));
-+    suggestions->emplace_back() = {std::move(suggestion)};
-   }
- }
- 
-@@ -237,8 +237,8 @@ void GetSuggestions(const autofill::Pass
- 
- void AddPasswordUsernameChildSuggestion(const std::u16string& username,
-                                         autofill::Suggestion& suggestion) {
--  suggestion.children.emplace_back(
--      username, autofill::PopupItemId::kPasswordFieldByFieldFilling);
-+  suggestion.children.emplace_back() =
-+      {username, autofill::PopupItemId::kPasswordFieldByFieldFilling};
- }
- 
- void AddFillPasswordChildSuggestion(autofill::Suggestion& suggestion,
-@@ -248,8 +248,8 @@ void AddFillPasswordChildSuggestion(auto
-           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_FILL_PASSWORD_ENTRY),
-       autofill::PopupItemId::kFillPassword);
-   fill_password.payload =
--      autofill::Suggestion::PasswordSuggestionDetails(password);
--  suggestion.children.emplace_back(std::move(fill_password));
-+      autofill::Suggestion::PasswordSuggestionDetails{password};
-+  suggestion.children.emplace_back() = {std::move(fill_password)};
- }
- 
- void AddViewPasswordDetailsChildSuggestion(autofill::Suggestion& suggestion) {
-@@ -258,7 +258,7 @@ void AddViewPasswordDetailsChildSuggesti
-           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_VIEW_DETAILS_ENTRY),
-       autofill::PopupItemId::kViewPasswordDetails);
-   view_password_details.icon = autofill::Suggestion::Icon::kKey;
--  suggestion.children.emplace_back(std::move(view_password_details));
-+  suggestion.children.emplace_back() = {std::move(view_password_details)};
- }
- 
- autofill::Suggestion GetManualFallbackSuggestion(
-@@ -273,7 +273,7 @@ autofill::Suggestion GetManualFallbackSu
-   suggestion.additional_label = maybe_username;
-   suggestion.icon = autofill::Suggestion::Icon::kGlobe;
-   suggestion.payload =
--      autofill::Suggestion::PasswordSuggestionDetails(credential.password);
-+      autofill::Suggestion::PasswordSuggestionDetails{credential.password};
-   suggestion.is_acceptable = on_password_form.value();
- 
-   if (!replaced) {
-@@ -355,27 +355,27 @@ PasswordSuggestionGenerator::GetSuggesti
-   if (uses_passkeys && delegate->OfferPasskeysFromAnotherDeviceOption()) {
-     bool listed_passkeys = delegate->GetPasskeys().has_value() &&
-                            delegate->GetPasskeys()->size() > 0;
--    suggestions.emplace_back(CreateWebAuthnEntry(listed_passkeys));
-+    suggestions.emplace_back() = {CreateWebAuthnEntry(listed_passkeys)};
-   }
- #endif
- 
-   // Add password generation entry, if available.
-   if (offers_generation) {
--    suggestions.emplace_back(
--        show_account_storage_optin
-+    suggestions.emplace_back() =
-+        {show_account_storage_optin
-             ? CreateEntryToOptInToAccountStorageThenGenerate()
--            : CreateGenerationEntry());
-+            : CreateGenerationEntry()};
-   }
- 
-   // Add button to opt into using the account storage for passwords and then
-   // suggest.
-   if (show_account_storage_optin) {
--    suggestions.emplace_back(CreateEntryToOptInToAccountStorageThenFill());
-+    suggestions.emplace_back() = {CreateEntryToOptInToAccountStorageThenFill()};
-   }
- 
-   // Add button to sign-in which unlocks the previously used account store.
-   if (show_account_storage_resignin) {
--    suggestions.emplace_back(CreateEntryToReSignin());
-+    suggestions.emplace_back() = {CreateEntryToReSignin()};
-   }
- 
-   // Add "Manage all passwords" link to settings.
-@@ -393,30 +393,30 @@ PasswordSuggestionGenerator::GetManualFa
-   const bool generate_sections =
-       !suggested_credentials.empty() && !credentials.empty();
-   if (generate_sections) {
--    suggestions.emplace_back(
--        l10n_util::GetStringUTF16(
-+    suggestions.emplace_back() =
-+        {l10n_util::GetStringUTF16(
-             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_SUGGESTED_PASSWORDS_SECTION_TITLE),
--        autofill::PopupItemId::kTitle);
-+        autofill::PopupItemId::kTitle};
-   }
- 
-   for (const auto& form : suggested_credentials) {
--    suggestions.emplace_back(
--        GetManualFallbackSuggestion(CredentialUIEntry(form), on_password_form));
-+    suggestions.emplace_back() =
-+        {GetManualFallbackSuggestion(CredentialUIEntry(form), on_password_form)};
-   }
- 
-   if (generate_sections) {
--    suggestions.emplace_back(
--        l10n_util::GetStringUTF16(
-+    suggestions.emplace_back() =
-+        {l10n_util::GetStringUTF16(
-             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_ALL_PASSWORDS_SECTION_TITLE),
--        autofill::PopupItemId::kTitle);
-+        autofill::PopupItemId::kTitle};
-   }
- 
-   // Only the "All passwords" section should be sorted alphabetically.
-   const size_t relevant_section_offset = suggestions.size();
- 
-   for (const CredentialUIEntry& credential : credentials) {
--    suggestions.emplace_back(
--        GetManualFallbackSuggestion(credential, on_password_form));
-+    suggestions.emplace_back() =
-+        {GetManualFallbackSuggestion(credential, on_password_form)};
-   }
- 
-   base::ranges::sort(suggestions.begin() + relevant_section_offset,
-diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc.no_matching_constructor chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc
---- chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc.no_matching_constructor	2024-05-15 23:46:13.000000000 +0200
-+++ chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc	2024-05-17 12:33:58.716650572 +0200
-@@ -242,7 +242,7 @@ void WorkerWatcher::OnWorkerCreated(
-   DCHECK(insertion_result.second);
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&,
-            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
-             AddFrameClientConnection(insertion_result.first->second.get(),
-@@ -251,7 +251,7 @@ void WorkerWatcher::OnWorkerCreated(
-           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
-             ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
-                                          dedicated_worker_token);
--          }),
-+          }},
-       creator);
- }
- 
-@@ -268,7 +268,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
-   // First disconnect the creator's node from this worker node.
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&,
-            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
-             RemoveFrameClientConnection(worker_node.get(),
-@@ -277,7 +277,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
-           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
-             DisconnectDedicatedWorkerClient(worker_node.get(),
-                                             dedicated_worker_token);
--          }),
-+          }},
-       creator);
- 
-   // Disconnect all child workers before destroying the node.
-@@ -449,7 +449,7 @@ void WorkerWatcher::OnControlleeAdded(
-     const std::string& client_uuid,
-     const content::ServiceWorkerClientInfo& client_info) {
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-             // For window clients, it is necessary to wait until the navigation
-             // has committed to a RenderFrameHost.
-@@ -487,7 +487,7 @@ void WorkerWatcher::OnControlleeAdded(
-               ConnectSharedWorkerClient(service_worker_node,
-                                         shared_worker_token);
-             }
--          }),
-+          }},
-       client_info);
- }
- 
-@@ -527,7 +527,7 @@ void WorkerWatcher::OnControlleeRemoved(
-     return;
- 
-   absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-             RemoveFrameClientConnection(worker_node, render_frame_host_id);
-           },
-@@ -537,7 +537,7 @@ void WorkerWatcher::OnControlleeRemoved(
-           },
-           [&, this](blink::SharedWorkerToken shared_worker_token) {
-             DisconnectSharedWorkerClient(worker_node, shared_worker_token);
--          }),
-+          }},
-       client);
- }
- 
-@@ -813,7 +813,7 @@ void WorkerWatcher::ConnectAllServiceWor
- 
-   for (const auto& kv : it->second) {
-     absl::visit(
--        base::Overloaded(
-+        base::Overloaded{
-             [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
-               AddFrameClientConnection(service_worker_node,
-                                        render_frame_host_id);
-@@ -825,7 +825,7 @@ void WorkerWatcher::ConnectAllServiceWor
-             [&, this](blink::SharedWorkerToken shared_worker_token) {
-               ConnectSharedWorkerClient(service_worker_node,
-                                         shared_worker_token);
--            }),
-+            }},
-         kv.second);
-   }
- }
-@@ -840,7 +840,7 @@ void WorkerWatcher::DisconnectAllService
- 
-   for (const auto& kv : it->second) {
-     absl::visit(
--        base::Overloaded(
-+        base::Overloaded{
-             [&, this](
-                 const content::GlobalRenderFrameHostId& render_frame_host_id) {
-               RemoveFrameClientConnection(service_worker_node,
-@@ -854,7 +854,7 @@ void WorkerWatcher::DisconnectAllService
-             [&, this](const blink::SharedWorkerToken& shared_worker_token) {
-               DisconnectSharedWorkerClient(service_worker_node,
-                                            shared_worker_token);
--            }),
-+            }},
-         kv.second);
-   }
- }
-diff -up chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
---- chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2024-05-17 12:33:58.716650572 +0200
-@@ -1720,7 +1720,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
- 
-       // Issue readbacks from the surfaces:
-       for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
--        SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
-+        SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
-         SkImageInfo dst_info = SkImageInfo::Make(
-             size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
-             kUnpremul_SkAlphaType);
-diff -up chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc.no_matching_constructor chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc
---- chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc.no_matching_constructor	2024-05-17 17:18:47.841479697 +0200
-+++ chromium-125.0.6422.60/components/web_package/signed_web_bundles/signed_web_bundle_signature_verifier.cc	2024-05-17 18:23:41.679054785 +0200
-@@ -181,9 +181,9 @@ void SignedWebBundleSignatureVerifier::O
-   // https://github.com/WICG/webpackage/blob/3f95ec365b87ed19d2cb5186e473ccc4d011e2af/explainers/integrity-signature.md
-   std::vector<uint8_t> payload_to_verify = CreateSignaturePayload({
-       .unsigned_web_bundle_hash = absl::visit(
--          base::Overloaded([](const auto& digest) -> base::span<const uint8_t> {
-+          base::Overloaded{[](const auto& digest) -> base::span<const uint8_t> {
-             return digest;
--          }),
-+          }},
-           *unsigned_web_bundle_hash),
-       .integrity_block_cbor = CreateIntegrityBlockCBOR(),
-       .attributes_cbor = signature_stack_entry.attributes_cbor(),
-diff -up chromium-125.0.6422.60/content/browser/download/save_package.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/download/save_package.cc
---- chromium-125.0.6422.60/content/browser/download/save_package.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/download/save_package.cc	2024-05-17 12:33:58.717650592 +0200
-@@ -802,8 +802,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> files;
-     for (auto& item : saved_success_items_) {
--      files.emplace_back(item.second->full_path(), item.second->url(),
--                         item.second->referrer().url);
-+      files.emplace_back() = {item.second->full_path(), item.second->url(),
-+                         item.second->referrer().url};
-     }
-     download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
-   }
-diff -up chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc
---- chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config.cc	2024-05-17 12:33:58.717650592 +0200
-@@ -407,7 +407,7 @@ void FencedFrameProperties::UpdateParent
-         feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(),
-         allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc());
-   }
--  parent_permissions_info_.emplace(parsed_policies, parent_origin);
-+  parent_permissions_info_.emplace() = {parsed_policies, parent_origin};
- }
- 
- }  // namespace content
-diff -up chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc
---- chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set_parser.cc	2024-05-17 12:33:58.718650614 +0200
-@@ -774,7 +774,7 @@ FirstPartySetParser::ParseSetsFromEnterp
-                      context.GetPolicySetsFromList(
-                          policy.FindList(kFirstPartySetPolicyAdditionsField),
-                          PolicySetType::kAddition));
--    return ParsedPolicySetLists(std::move(replacements), std::move(additions));
-+    return ParsedPolicySetLists{std::move(replacements), std::move(additions)};
-   }();
- 
-   context.PostProcessSetLists(set_lists);
-diff -up chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc
---- chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc	2024-05-17 12:33:58.718650614 +0200
-@@ -108,7 +108,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       *base::CommandLine::ForCurrentProcess();
- 
-   std::vector<GpuFeatureData> features;
--  features.emplace_back(
-+  features.emplace_back() = {
-       "2d_canvas",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS,
-@@ -116,13 +116,13 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated 2D canvas is unavailable: either disabled "
-           "via blocklist or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "canvas_oop_rasterization",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION,
--          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas)));
--  features.emplace_back(
-+          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas))};
-+  features.emplace_back() = {
-       "gpu_compositing",
-       // TODO(rivr): Replace with a check to see which backend is used for
-       // compositing; do the same for GPU rasterization if it's enabled. For
-@@ -136,16 +136,16 @@ std::vector<GpuFeatureData> GetGpuFeatur
-           "about:flags "
-           "or the command line. The browser will fall back to software "
-           "compositing and hardware acceleration will be unavailable."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "webgl",
-       SafeGetFeatureStatus(gpu_feature_info,
-                            gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL,
-                            command_line.HasSwitch(switches::kDisableWebGL)),
-       DisableInfo::Problem(
-           "WebGL has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {
-       "video_decode",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
-@@ -156,8 +156,8 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated video decode has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "video_encode",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
-@@ -169,33 +169,33 @@ std::vector<GpuFeatureData> GetGpuFeatur
-       DisableInfo::Problem(
-           "Accelerated video encode has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "rasterization",
-       SafeGetFeatureStatus(gpu_feature_info,
-                            gpu::GPU_FEATURE_TYPE_GPU_TILE_RASTERIZATION),
-       DisableInfo::Problem(
-           "Accelerated rasterization has been disabled, either via blocklist, "
-           "about:flags or the command line."),
--      true);
--  features.emplace_back(
-+      true};
-+  features.emplace_back() = {
-       "opengl", SafeGetFeatureStatus(gpu_feature_info,
--                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL));
-+                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL)};
- #if BUILDFLAG(ENABLE_VULKAN)
--  features.emplace_back(
-+  features.emplace_back() = {
-       "vulkan",
--      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN));
-+      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN)};
- #endif
--  features.emplace_back(
-+  features.emplace_back() = {
-       "multiple_raster_threads",
--      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1));
-+      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1)};
- #if BUILDFLAG(IS_ANDROID)
--  features.emplace_back(
-+  features.emplace_back() = {
-       "surface_control",
-       SafeGetFeatureStatus(gpu_feature_info,
--                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL));
-+                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)};
- #endif
--  features.emplace_back(
-+  features.emplace_back() = {
-       "webgl2",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL2,
-@@ -203,12 +203,12 @@ std::vector<GpuFeatureData> GetGpuFeatur
-               command_line.HasSwitch(switches::kDisableWebGL2)),
-       DisableInfo::Problem(
-           "WebGL2 has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back("raw_draw",
--                        GetFakeFeatureStatus(features::IsUsingRawDraw()));
--  features.emplace_back("direct_rendering_display_compositor",
--                        GetFakeFeatureStatus(features::IsDrDcEnabled()));
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {"raw_draw",
-+                        GetFakeFeatureStatus(features::IsUsingRawDraw())};
-+  features.emplace_back() = {"direct_rendering_display_compositor",
-+                        GetFakeFeatureStatus(features::IsDrDcEnabled())};
-+  features.emplace_back() = {
-       "webgpu",
-       SafeGetFeatureStatus(
-           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGPU,
-@@ -216,14 +216,14 @@ std::vector<GpuFeatureData> GetGpuFeatur
-               !base::FeatureList::IsEnabled(::features::kWebGPUService)),
-       DisableInfo::Problem(
-           "WebGPU has been disabled via blocklist or the command line."),
--      false);
--  features.emplace_back(
-+      false};
-+  features.emplace_back() = {
-       "skia_graphite",
-       SafeGetFeatureStatus(gpu_feature_info,
--                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE));
--  features.emplace_back(
-+                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE)};
-+  features.emplace_back() = {
-       "webnn",
--      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN));
-+      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN)};
-   return features;
- }
- 
-diff -up chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h
---- chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.h	2024-05-17 12:33:58.718650614 +0200
-@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel
- 
-     // The Ad-Auction-Signals response served by `origin`.
-     std::string response_json;
-+    UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { }
-   };
- 
-   // Information from ParseAndFind() calls used by ParseAndFindCompleted.
-diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc
---- chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/interest_group/interest_group_auction.cc	2024-05-17 12:33:58.719650634 +0200
-@@ -600,7 +600,7 @@ bool SampleDebugReport(
-        blink::features::kFledgeDebugReportRestrictedCooldown.Get() !=
-            base::Milliseconds(0))) {
-     new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
--        DebugReportCooldown(now_nearest_next_hour, cooldown_type);
-+        DebugReportCooldown{now_nearest_next_hour, cooldown_type};
-   }
- 
-   return can_send_debug_report;
-diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc
---- chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/interest_group/interest_group_storage.cc	2024-05-17 12:33:58.721650676 +0200
-@@ -3412,9 +3412,9 @@ std::optional<DebugReportCooldown> DoGet
-     return std::nullopt;
-   }
- 
--  return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0),
-+  return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0),
-                              static_cast<DebugReportCooldownType>(
--                                 cooldown_debugging_only_report.ColumnInt(1)));
-+                                 cooldown_debugging_only_report.ColumnInt(1))};
- }
- 
- void DoGetDebugReportCooldowns(
-@@ -3542,10 +3542,10 @@ DoGetKAnonymityData(sql::Database& db,
- 
-   std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
-   while (interest_group_kanon_query.Step()) {
--    k_anon_data.emplace_back(
-+    k_anon_data.emplace_back() = {
-         /*key=*/interest_group_kanon_query.ColumnString(0),
-         /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
--        /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
-+        /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
-   }
-   if (!interest_group_kanon_query.Succeeded()) {
-     return std::nullopt;
-@@ -4338,7 +4338,7 @@ DoGetBiddingAndAuctionServerKeys(sql::Da
-     std::vector<BiddingAndAuctionServerKey> keys;
-     keys.reserve(key_protos.keys_size());
-     for (auto& key_proto : *key_protos.mutable_keys()) {
--      keys.emplace_back(std::move(*key_proto.mutable_key()), key_proto.id());
-+      keys.emplace_back() = {std::move(*key_proto.mutable_key()), key_proto.id()};
-     }
-     return {expiration, keys};
-   }
-diff -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc
---- chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2024-05-15 23:46:17.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_impl.cc	2024-05-17 12:33:58.723650717 +0200
-@@ -8796,7 +8796,7 @@ void RenderFrameHostImpl::SendFencedFram
-   for (const blink::FencedFrame::ReportingDestination& destination :
-        destinations) {
-     SendFencedFrameReportingBeaconInternal(
--        DestinationEnumEvent(event_type, event_data, cross_origin_exposed),
-+        DestinationEnumEvent{event_type, event_data, cross_origin_exposed},
-         destination);
-   }
- }
-@@ -8827,7 +8827,7 @@ void RenderFrameHostImpl::SendFencedFram
-   }
- 
-   SendFencedFrameReportingBeaconInternal(
--      DestinationURLEvent(destination_url, cross_origin_exposed),
-+      DestinationURLEvent{destination_url, cross_origin_exposed},
-       blink::FencedFrame::ReportingDestination::kBuyer);
- }
- 
-@@ -8958,7 +8958,7 @@ void RenderFrameHostImpl::MaybeSendFence
-         data = info->data;
-       }
-       initiator_rfh->SendFencedFrameReportingBeaconInternal(
--          AutomaticBeaconEvent(event_type, data), destination,
-+          AutomaticBeaconEvent{event_type, data}, destination,
-           navigation_request.GetNavigationId());
-     }
-   } else {
-@@ -8969,7 +8969,7 @@ void RenderFrameHostImpl::MaybeSendFence
-     for (blink::FencedFrame::ReportingDestination destination :
-          info->destinations) {
-       initiator_rfh->SendFencedFrameReportingBeaconInternal(
--          AutomaticBeaconEvent(event_type, info->data), destination,
-+          AutomaticBeaconEvent{event_type, info->data}, destination,
-           navigation_request.GetNavigationId());
-     }
-   }
-diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc
---- chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/service_worker/service_worker_container_host.cc	2024-05-17 12:33:58.724650738 +0200
-@@ -947,7 +947,7 @@ ServiceWorkerContainerHost::GetClientTyp
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-   DCHECK(client_info_);
-   return absl::visit(
--      base::Overloaded(
-+      base::Overloaded{
-           [](GlobalRenderFrameHostId render_frame_host_id) {
-             return blink::mojom::ServiceWorkerClientType::kWindow;
-           },
-@@ -956,7 +956,7 @@ ServiceWorkerContainerHost::GetClientTyp
-           },
-           [](blink::SharedWorkerToken shared_worker_token) {
-             return blink::mojom::ServiceWorkerClientType::kSharedWorker;
--          }),
-+          }},
-       *client_info_);
- }
- 
-diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
---- chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc	2024-05-17 12:33:58.724650738 +0200
-@@ -367,10 +367,10 @@ ServiceWorkerMainResourceLoaderIntercept
-   }
-   auto* storage_partition = process->GetStoragePartition();
- 
--  return absl::visit(base::Overloaded([&, this](auto token) {
-+  return absl::visit(base::Overloaded{[&, this](auto token) {
-                        return GetStorageKeyFromWorkerHost(storage_partition,
-                                                           token, origin);
--                     }),
-+                     }},
-                      *worker_token_);
- }
- 
-diff -up chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc
---- chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor	2024-05-15 23:46:18.000000000 +0200
-+++ chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_host.cc	2024-05-17 12:33:58.725650759 +0200
-@@ -258,7 +258,7 @@ void DedicatedWorkerHost::StartScriptLoa
-   RenderFrameHostImpl* creator_render_frame_host = nullptr;
-   DedicatedWorkerHost* creator_worker = nullptr;
- 
--  absl::visit(base::Overloaded(
-+  absl::visit(base::Overloaded{
-                   [&](const GlobalRenderFrameHostId& render_frame_host_id) {
-                     creator_render_frame_host =
-                         RenderFrameHostImpl::FromID(render_frame_host_id);
-@@ -266,7 +266,7 @@ void DedicatedWorkerHost::StartScriptLoa
-                   [&](blink::DedicatedWorkerToken dedicated_worker_token) {
-                     creator_worker = service_->GetDedicatedWorkerHostFromToken(
-                         dedicated_worker_token);
--                  }),
-+                  }},
-               creator_);
- 
-   if (!creator_render_frame_host && !creator_worker) {
-diff -up chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc
---- chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor	2024-05-18 23:43:25.984767458 +0200
-+++ chromium-125.0.6422.60/extensions/browser/service_worker/service_worker_task_queue.cc	2024-05-18 23:47:43.981254708 +0200
-@@ -396,8 +396,8 @@ bool ServiceWorkerTaskQueue::IsReadyToRu
-     return false;
-   }
- 
--  const SequencedContextId context_id(extension->id(), browser_context_,
--                                      *activation_token);
-+  const SequencedContextId context_id{extension->id(), browser_context_,
-+                                      *activation_token};
-   const WorkerState* worker_state = GetWorkerState(context_id);
- 
-   if (!worker_state || !worker_state->worker_id_) {
-diff -up chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h
---- chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
-+++ chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface.h	2024-05-17 12:33:58.725650759 +0200
-@@ -64,19 +64,19 @@ struct SharedImageInfo {
-                   SkAlphaType alpha_type,
-                   uint32_t usage,
-                   std::string_view debug_label)
--      : meta(format, size, color_space, surface_origin, alpha_type, usage),
-+      : meta{format, size, color_space, surface_origin, alpha_type, usage},
-         debug_label(debug_label) {}
-   SharedImageInfo(const viz::SharedImageFormat& format,
-                   gfx::Size size,
-                   const gfx::ColorSpace& color_space,
-                   uint32_t usage,
-                   std::string_view debug_label)
--      : meta(format,
-+      : meta{format,
-              size,
-              color_space,
-              kTopLeft_GrSurfaceOrigin,
-              kPremul_SkAlphaType,
--             usage),
-+             usage},
-         debug_label(debug_label) {}
-   // This constructor exists only to support the DEPRECATED CreareSharedImage
-   // call below that accepts a GpuMemoryBuffer. This should be removed when that
-diff -up chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc
---- chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
-+++ chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interface_in_process.cc	2024-05-17 12:33:58.725650759 +0200
-@@ -601,12 +601,12 @@ SharedImageInterfaceInProcess::CreateSha
- 
-   return base::MakeRefCounted<ClientSharedImage>(
-       mailbox,
--      SharedImageMetadata(
-+      SharedImageMetadata{
-           viz::GetSinglePlaneSharedImageFormat(
-               GetPlaneBufferFormat(plane, gpu_memory_buffer->GetFormat())),
-           gpu_memory_buffer->GetSize(), si_info.meta.color_space,
-           si_info.meta.surface_origin, si_info.meta.alpha_type,
--          si_info.meta.usage),
-+          si_info.meta.usage},
-       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
- }
- 
-diff -up chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc
---- chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor	2024-05-15 23:46:22.000000000 +0200
-+++ chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc	2024-05-17 15:17:33.527552837 +0200
-@@ -247,11 +247,11 @@ scoped_refptr<ClientSharedImage> ClientS
-       AddMailbox(proxy_->CreateSharedImage(
-           buffer_format, plane, gpu_memory_buffer->GetSize(), si_info,
-           gpu_memory_buffer->CloneHandle())),
--      SharedImageMetadata(viz::GetSinglePlaneSharedImageFormat(
-+      SharedImageMetadata{viz::GetSinglePlaneSharedImageFormat(
-                               GetPlaneBufferFormat(plane, buffer_format)),
-                           gpu_memory_buffer->GetSize(),
-                           si_info.meta.color_space, si_info.meta.surface_origin,
--                          si_info.meta.alpha_type, si_info.meta.usage),
-+                          si_info.meta.alpha_type, si_info.meta.usage},
-       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
- }
- 
-@@ -286,13 +286,13 @@ ClientSharedImageInterface::CreateSwapCh
-   return ClientSharedImageInterface::SwapChainSharedImages(
-       base::MakeRefCounted<ClientSharedImage>(
-           mailboxes.front_buffer,
--          SharedImageMetadata(format, size, color_space, surface_origin,
--                              alpha_type, usage),
-+          SharedImageMetadata{format, size, color_space, surface_origin,
-+                              alpha_type, usage},
-           sync_token, holder_, gfx::EMPTY_BUFFER),
-       base::MakeRefCounted<ClientSharedImage>(
-           mailboxes.back_buffer,
--          SharedImageMetadata(format, size, color_space, surface_origin,
--                              alpha_type, usage),
-+          SharedImageMetadata{format, size, color_space, surface_origin,
-+                              alpha_type, usage},
-           sync_token, holder_, gfx::EMPTY_BUFFER));
- }
- 
-@@ -350,8 +350,8 @@ scoped_refptr<ClientSharedImage> ClientS
- 
-   return base::MakeRefCounted<ClientSharedImage>(
-       mailbox,
--      SharedImageMetadata(format, size, color_space, surface_origin, alpha_type,
--                          usage),
-+      SharedImageMetadata{format, size, color_space, surface_origin, alpha_type,
-+                          usage},
-       GenUnverifiedSyncToken(), holder_, gfx::EMPTY_BUFFER);
- }
- 
-diff -up chromium-125.0.6422.60/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-125.0.6422.60/net/dns/host_resolver_cache.cc
---- chromium-125.0.6422.60/net/dns/host_resolver_cache.cc.no_matching_constructor	2024-05-15 23:46:31.000000000 +0200
-+++ chromium-125.0.6422.60/net/dns/host_resolver_cache.cc	2024-05-17 12:33:58.726650779 +0200
-@@ -368,7 +368,7 @@ void HostResolverCache::Set(
- 
-   std::string domain_name = result->domain_name();
-   entries_.emplace(
--      Key(std::move(domain_name), network_anonymization_key),
-+      Key{std::move(domain_name), network_anonymization_key},
-       Entry(std::move(result), source, secure, staleness_generation));
- 
-   if (entries_.size() > max_entries_) {
-diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
---- chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor	2024-05-18 11:35:28.689791628 +0200
-+++ chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc	2024-05-18 11:35:52.294334790 +0200
-@@ -7509,7 +7509,7 @@ std::optional<InsetAreaKeyword> ConsumeI
-     default:
-       return std::nullopt;
-   }
--  return InsetAreaKeyword(css_parsing_utils::ConsumeIdent(range), type);
-+  return InsetAreaKeyword{css_parsing_utils::ConsumeIdent(range), type};
- }
- 
- }  // namespace
-diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc
---- chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor	2024-05-18 11:23:33.036875347 +0200
-+++ chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc	2024-05-18 11:24:05.697684459 +0200
-@@ -601,7 +601,7 @@ AnchorEvaluatorImpl::ComputeInsetAreaOff
-     right = Evaluate(query.value(), position_anchor,
-                      /* inset_area_offsets */ std::nullopt);
-   }
--  return InsetAreaOffsets(top, bottom, left, right);
-+  return InsetAreaOffsets{top, bottom, left, right};
- }
- 
- PhysicalRect AnchorEvaluatorImpl::InsetAreaModifiedContainingBlock(
-diff -up chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc
---- chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
-+++ chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc	2024-05-17 12:33:58.726650779 +0200
-@@ -181,8 +181,8 @@ AudioRendererMixer* AudioRendererMixerMa
-     DVLOG(1) << "Not reusing mixer with errors: " << it->second.mixer;
- 
-     // Move bad mixers out of the reuse map.
--    dead_mixers_.emplace_back(std::move(it->second.mixer),
--                              it->second.ref_count);
-+    dead_mixers_.emplace_back() = {std::move(it->second.mixer),
-+                              it->second.ref_count};
-     mixers_.erase(it);
-   }
- 
-@@ -228,7 +228,7 @@ void AudioRendererMixerManager::ReturnMi
-     }
-   } else if (dead_it == dead_mixers_.end() && mixer_ref.mixer->HasSinkError()) {
-     // Move bad mixers out of the reuse map.
--    dead_mixers_.emplace_back(std::move(mixer_ref.mixer), mixer_ref.ref_count);
-+    dead_mixers_.emplace_back() = {std::move(mixer_ref.mixer), mixer_ref.ref_count};
-     mixers_.erase(it);
-   }
- }
-diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h
---- chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
-+++ chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_palette.h	2024-05-17 12:33:58.726650779 +0200
-@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
-       Color::ColorSpace color_interpolation_space,
-       std::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
-     return base::AdoptRef(new FontPalette(
--        start, end, NonNormalizedPercentages(start_percentage, end_percentage),
-+        start, end, NonNormalizedPercentages{start_percentage, end_percentage},
-         normalized_percentage, alpha_multiplier, color_interpolation_space,
-         hue_interpolation_method));
-   }
-@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
-       double normalized_percentage) {
-     double end_percentage = normalized_percentage * 100.0;
-     double start_percentage = 100.0 - end_percentage;
--    return NonNormalizedPercentages(start_percentage, end_percentage);
-+    return NonNormalizedPercentages{start_percentage, end_percentage};
-   }
- 
-   double GetAlphaMultiplier() const {
-diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
---- chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2024-05-15 23:46:42.000000000 +0200
-+++ chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2024-05-17 12:33:58.727650800 +0200
-@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
-         color_interpolation_space, hue_interpolation_method, start_color,
-         end_color, percentage, alpha_multiplier);
- 
--    FontPalette::FontPaletteOverride result_color_record(i, result_color);
-+    FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
-     result_color_records.push_back(result_color_record);
-   }
-   return result_color_records;
-diff -up chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
---- chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor	2024-05-15 23:48:12.000000000 +0200
-+++ chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp	2024-05-17 12:33:58.727650800 +0200
-@@ -507,7 +507,7 @@ void CPDF_RenderStatus::ProcessClipPath(
-     } else {
-       m_pDevice->SetClip_PathFill(
-           *pPath, &mtObj2Device,
--          CFX_FillRenderOptions(ClipPath.GetClipType(i)));
-+          CFX_FillRenderOptions{ClipPath.GetClipType(i)});
-     }
-   }
- 
-diff -up chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h
---- chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching_constructor	2024-05-15 23:47:32.000000000 +0200
-+++ chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h	2024-05-17 12:33:58.728650821 +0200
-@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
-     zcr_color_manager_v1_chromaticity_names,
-     PrimaryVersion>(
-     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
--      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
--                     kDefaultSinceVersion)},
-+      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
-+                     kDefaultSinceVersion}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::BT470M,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTE240M,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::XYZ_D50,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
-      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
--      PrimaryVersion(
-+      PrimaryVersion{
-           gfx::ColorSpace::PrimaryID::FILM,
--          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
-+          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
- 
- // A map from the zcr_color_manager_v1 eotf_names enum values
- // representing well-known EOTFs, to their equivalent TransferIDs.
-@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
-     zcr_color_manager_v1_eotf_names,
-     TransferVersion>({
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
--     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
--     TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
--     TransferVersion(gfx::ColorSpace::TransferID::BT709,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT709,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
-      // This is ever so slightly inaccurate. The number ought to be
-      // 2.19921875f, not 2.2
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
--                     kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
-+                     kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
--     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
-+     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
--     TransferVersion(gfx::ColorSpace::TransferID::HLG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::HLG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
--     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
--     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::SMPTEST428_1,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
--     TransferVersion(gfx::ColorSpace::TransferID::LOG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LOG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
--     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::IEC61966_2_4,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
--     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
--     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
--     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
--     TransferVersion(
-+     TransferVersion{
-          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
--         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
-+         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
-     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
--     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
--                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
-+     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
-+                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
- });
- 
- // A map from the SDR zcr_color_manager_v1 eotf_names enum values
-@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
- constexpr auto kTransferMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
--         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
--         TransferFnVersion(
-+         TransferFnVersion{
-              SkNamedTransferFnExt::kRec709,
--             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
-+             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
--         TransferFnVersion(gamma24, kDefaultSinceVersion)},
-+         TransferFnVersion{gamma24, kDefaultSinceVersion}},
-         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
--         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
--                           kDefaultSinceVersion)},
-+         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
-+                           kDefaultSinceVersion}},
-     });
- 
- // A map from the HDR zcr_color_manager_v1 eotf_names enum values
-@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
- constexpr auto kHDRTransferMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
-         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
--          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
--          TransferFnVersion(
-+          TransferFnVersion{
-               SkNamedTransferFnExt::kSRGB,
--              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
-+              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
--          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
-+          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
--          TransferFnVersion(SkNamedTransferFn::kHLG,
--                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
-+          TransferFnVersion{SkNamedTransferFn::kHLG,
-+                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
--          TransferFnVersion(
-+          TransferFnVersion{
-               SkNamedTransferFnExt::kSRGBExtended1023Over510,
--              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
-+              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
- 
- // A map from zcr_color_manager_v1 matrix_names enum values to
- // gfx::ColorSpace::MatrixIDs.
- constexpr auto kMatrixMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
-         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
--          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
--          MatrixVersion(
-+          MatrixVersion{
-               gfx::ColorSpace::MatrixID::BT470BG,
--              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
-+              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
--          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
--          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
--          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
--          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
--          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
--                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
-+                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
--          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
--                        kDefaultSinceVersion)},
-+          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
-+                        kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
--          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
--                        kDefaultSinceVersion)}});
-+          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
-+                        kDefaultSinceVersion}}});
- 
- // A map from zcr_color_manager_v1 range_names enum values to
- // gfx::ColorSpace::RangeIDs.
- constexpr auto kRangeMap =
-     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
-         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
--          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
--                       kDefaultSinceVersion)},
-+          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
-+                       kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
--          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
-+          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
-          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
--          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
--                       kDefaultSinceVersion)}});
-+          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
-+                       kDefaultSinceVersion}}});
- 
- zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
-     gfx::ColorSpace::PrimaryID primaryID,
-@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM
- 
- }  // namespace ui::wayland
- 
--#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-\ Kein Zeilenumbruch am Dateiende.
-+#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
-diff -up chromium-125.0.6422.60/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-125.0.6422.60/ui/gtk/gtk_ui.cc
---- chromium-125.0.6422.60/ui/gtk/gtk_ui.cc.no_matching_constructor	2024-05-15 23:47:33.000000000 +0200
-+++ chromium-125.0.6422.60/ui/gtk/gtk_ui.cc	2024-05-17 12:33:58.728650821 +0200
-@@ -1001,11 +1001,11 @@ display::DisplayConfig GtkUi::GetDisplay
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
-diff -up chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/controls/button/label_button.cc
---- chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matching_constructor	2024-05-18 23:18:50.361107872 +0200
-+++ chromium-125.0.6422.60/ui/views/controls/button/label_button.cc	2024-05-18 23:20:03.807502613 +0200
-@@ -391,11 +391,11 @@ ProposedLayout LabelButton::CalculatePro
- 
-   gfx::Rect image_area = GetLocalBounds();
- 
--  layouts.child_layouts.emplace_back(
-+  layouts.child_layouts.emplace_back() = {
-       ink_drop_container_.get(),
-       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
-           ->CanBeVisible(ink_drop_container_.get()),
--      image_area, SizeBounds());
-+      image_area, SizeBounds()};
- 
-   gfx::Insets insets = GetInsets();
-   // If the button have a limited space to fit in, the image and the label
-@@ -447,11 +447,11 @@ ProposedLayout LabelButton::CalculatePro
-   } else if (horizontal_alignment == gfx::ALIGN_RIGHT) {
-     image_origin.Offset(image_area.width() - image_size.width(), 0);
-   }
--  layouts.child_layouts.emplace_back(
-+  layouts.child_layouts.emplace_back() = {
-       const_cast<LabelButton*>(this)->image_container_view(),
-       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
-           ->CanBeVisible(image_container_view()),
--      gfx::Rect(image_origin, image_size), SizeBounds());
-+      gfx::Rect(image_origin, image_size), SizeBounds()};
- 
-   gfx::Rect label_bounds = label_area;
-   if (label_area.width() == label_size.width()) {
-@@ -465,11 +465,11 @@ ProposedLayout LabelButton::CalculatePro
-     }
-   }
- 
--  layouts.child_layouts.emplace_back(
-+  layouts.child_layouts.emplace_back() = {
-       label_.get(),
-       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
-           ->CanBeVisible(label_.get()),
--      label_bounds, SizeBounds());
-+      label_bounds, SizeBounds()};
-   layouts.host_size =
-       gfx::Size(size_bounds.width().value(), size_bounds.height().value());
- 
-diff -up chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc
---- chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor	2024-05-18 23:47:53.838491347 +0200
-+++ chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_combobox.cc	2024-05-18 23:49:06.186312630 +0200
-@@ -492,16 +492,16 @@ ProposedLayout EditableCombobox::Calcula
-     layout.host_size =
-         gfx::Size(size_bounds.width().value(), size_bounds.height().value());
-   }
--  layout.child_layouts.emplace_back(
-+  layout.child_layouts.emplace_back() = {
-       textfield_.get(), textfield_->GetVisible(),
--      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height()));
-+      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height())};
-   const int preferred_width =
-       control_elements_container_->GetPreferredSize({}).width();
--  layout.child_layouts.emplace_back(
-+  layout.child_layouts.emplace_back() = {
-       control_elements_container_.get(),
-       control_elements_container_->GetVisible(),
-       gfx::Rect(layout.host_size.width() - preferred_width, 0, preferred_width,
--                layout.host_size.height()));
-+                layout.host_size.height())};
-   return layout;
- }
- 
-diff -up chromium-125.0.6422.60/ui/views/layout/box_layout.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/layout/box_layout.cc
---- chromium-125.0.6422.60/ui/views/layout/box_layout.cc.no_matching_constructor	2024-05-18 23:20:53.444272586 +0200
-+++ chromium-125.0.6422.60/ui/views/layout/box_layout.cc	2024-05-18 23:21:13.339673253 +0200
-@@ -325,7 +325,7 @@ void BoxLayout::InitializeChildData(BoxL
-     data.child_data.emplace_back();
-     BoxChildData& child_data = data.child_data.back();
- 
--    data.layout.child_layouts.emplace_back(child, true);
-+    data.layout.child_layouts.emplace_back() = {child, true};
- 
-     gfx::Insets* margins = child ? child->GetProperty(kMarginsKey) : nullptr;
-     if (margins) {
-diff -up chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc.no_matching_constructor chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc
---- chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc.no_matching_constructor	2024-05-18 23:51:05.385279382 +0200
-+++ chromium-125.0.6422.60/ui/views/window/dialog_client_view.cc	2024-05-18 23:51:40.146096719 +0200
-@@ -205,16 +205,16 @@ ProposedLayout DialogClientView::Calcula
-   const int container_height =
-       button_row_container_->GetHeightForWidth(size_bounds.width().value());
-   const int container_y = size_bounds.height().value() - container_height;
--  layouts.child_layouts.emplace_back(
-+  layouts.child_layouts.emplace_back() = {
-       button_row_container_.get(), button_row_container_->GetVisible(),
-       gfx::Rect(0, container_y, size_bounds.width().value(), container_height),
--      size_bounds);
-+      size_bounds};
-   if (contents_view()) {
-     gfx::Rect contents_bounds(size_bounds.width().value(), container_y);
-     contents_bounds.Inset(GetDialogDelegate()->margins());
--    layouts.child_layouts.emplace_back(contents_view(),
-+    layouts.child_layouts.emplace_back() = {contents_view(),
-                                        contents_view()->GetVisible(),
--                                       contents_bounds, size_bounds);
-+                                       contents_bounds, size_bounds};
-   }
-   layouts.host_size =
-       gfx::Size(size_bounds.width().value(), size_bounds.height().value());

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

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

diff --git a/chromium-125-missing-include-FieldDataManager.patch b/chromium-125-missing-include-FieldDataManager.patch
deleted file mode 100644
index 6dd763a..0000000
--- a/chromium-125-missing-include-FieldDataManager.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit aa53c3ab8df7f7c1d42c30d4b184a8f8b0a8e50d
-Author: Jose Dapena Paz <jdapena@igalia.com>
-Date:   Tue Apr 16 12:14:15 2024 +0000
-
-    IWYU: add missing include for usage of FieldDataManager in autofill_agent.h
-    
-    Change-Id: I70575d1dd72b9334e3b8d4805779a7e45788989e
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5392840
-    Reviewed-by: Florian Leimgruber <fleimgruber@google.com>
-    Commit-Queue: José Dapena Paz <jdapena@igalia.com>
-    Cr-Commit-Position: refs/heads/main@{#1287967}
-
-diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h
-index 76a25d72c87cc..01462aefdaae6 100644
---- a/components/autofill/content/renderer/autofill_agent.h
-+++ b/components/autofill/content/renderer/autofill_agent.h
-@@ -25,6 +25,7 @@
- #include "components/autofill/content/renderer/form_autofill_util.h"
- #include "components/autofill/content/renderer/form_tracker.h"
- #include "components/autofill/core/common/autofill_features.h"
-+#include "components/autofill/core/common/field_data_manager.h"
- #include "components/autofill/core/common/mojom/autofill_types.mojom-shared.h"
- #include "components/autofill/core/common/unique_ids.h"
- #include "content/public/renderer/render_frame_observer.h"
-@@ -51,7 +52,6 @@ namespace autofill {
- class FormCache;
- class PasswordAutofillAgent;
- class PasswordGenerationAgent;
--class FieldDataManager;
- 
- // AutofillAgent deals with Autofill related communications between Blink and
- // the browser.

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

diff --git a/chromium-126-clang16-buildflags.patch b/chromium-126-clang16-buildflags.patch
new file mode 100644
index 0000000..cba25fd
--- /dev/null
+++ b/chromium-126-clang16-buildflags.patch
@@ -0,0 +1,22 @@
+diff -up chromium-126.0.6478.26/build/config/compiler/BUILD.gn.clang16-buildflag chromium-126.0.6478.26/build/config/compiler/BUILD.gn
+--- chromium-126.0.6478.26/build/config/compiler/BUILD.gn.clang16-buildflag	2024-06-02 14:55:55.298242780 +0200
++++ chromium-126.0.6478.26/build/config/compiler/BUILD.gn	2024-06-02 15:04:43.839882669 +0200
+@@ -1889,9 +1889,6 @@ config("default_warnings") {
+ 
+         # TODO(crbug.com/40286317): Evaluate and possibly enable.
+         "-Wno-vla-extension",
+-
+-        # TODO(crbug.com/40284799): Fix and re-enable.
+-        "-Wno-thread-safety-reference-return",
+       ]
+ 
+       cflags_cc += [
+@@ -1902,7 +1899,7 @@ config("default_warnings") {
+       if (!is_nacl) {
+         cflags_cc += [
+           # TODO(crbug.com/41486292): Fix and re-enable.
+-          "-Wno-c++11-narrowing-const-reference",
++          "-Wno-c++11-narrowing",
+         ]
+       }
+     }

diff --git a/chromium-126-clang16-disable-auto-upgrade-debug-info.patch b/chromium-126-clang16-disable-auto-upgrade-debug-info.patch
new file mode 100644
index 0000000..f791596
--- /dev/null
+++ b/chromium-126-clang16-disable-auto-upgrade-debug-info.patch
@@ -0,0 +1,12 @@
+diff -up chromium-126.0.6478.26/build/config/compiler/BUILD.gn.clang16-disable-auto-upgrade-debug-info chromium-126.0.6478.26/build/config/compiler/BUILD.gn
+--- chromium-126.0.6478.26/build/config/compiler/BUILD.gn.clang16-disable-auto-upgrade-debug-info	2024-06-02 18:00:17.914641767 +0200
++++ chromium-126.0.6478.26/build/config/compiler/BUILD.gn	2024-06-02 18:02:32.153544892 +0200
+@@ -780,7 +780,7 @@ config("compiler") {
+ 
+       # We only use one version of LLVM within a build so there's no need to
+       # upgrade debug info, which can be expensive since it runs the verifier.
+-      ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
++      ldflags += [ "" ]
+     }
+ 
+     # TODO(crbug.com/335365324): Enable on other platforms.

diff --git a/chromium-126-el7-colormap.patch b/chromium-126-el7-colormap.patch
new file mode 100644
index 0000000..1c0002b
--- /dev/null
+++ b/chromium-126-el7-colormap.patch
@@ -0,0 +1,681 @@
+diff -up chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc.mee chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc
+--- chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc.mee	2024-05-29 18:00:44.000000000 +0200
++++ chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc	2024-06-03 16:22:10.549568854 +0200
+@@ -37,6 +37,9 @@ void InitializeColorProvider(const ui::C
+   // Roughly mimics the ColorMixer configuration for Ash.
+   ash::AddCrosStylesColorMixer(&color_provider, key);
+   ash::AddAshColorMixer(&color_provider, key);
++
++  // Populates the color map with computed color values.
++  color_provider.GenerateColorMap();
+ }
+ 
+ // Initializes the `color_provider` with `seed_color` and the relevant
+diff -up chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc.mee chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc
+--- chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc.mee	2024-05-29 18:00:52.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc	2024-06-03 16:22:10.550568873 +0200
+@@ -602,6 +602,7 @@ class PrefersColorSchemeTest
+     explicit MockColorProviderSource(bool is_dark) {
+       key_.color_mode = is_dark ? ui::ColorProviderKey::ColorMode::kDark
+                                 : ui::ColorProviderKey::ColorMode::kLight;
++      provider_.GenerateColorMap();
+     }
+     MockColorProviderSource(const MockColorProviderSource&) = delete;
+     MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
+diff -up chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc
+--- chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc.mee	2024-05-29 18:00:57.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc	2024-06-03 16:22:10.550568873 +0200
+@@ -750,6 +750,7 @@ TEST_F(BrowserThemePackTest, TestCreateC
+                                 "omnibox_background": [120, 140, 160] })";
+   LoadColorJSON(color_json);
+   theme_pack().AddColorMixers(&provider, ui::ColorProviderKey());
++  provider.GenerateColorMap();
+   EXPECT_EQ(SkColorSetRGB(0, 20, 40), provider.GetColor(kColorToolbar));
+   EXPECT_EQ(SkColorSetRGB(60, 80, 100), provider.GetColor(kColorOmniboxText));
+   EXPECT_EQ(SkColorSetRGB(120, 140, 160),
+diff -up chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc.mee	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc	2024-06-03 16:22:10.551568891 +0200
+@@ -26,6 +26,7 @@ class MaterialNewTabPageColorMixerTest :
+   void AddMaterialColorMixers() {
+     AddColorMixers(&color_provider_, color_provider_key_);
+     AddChromeColorMixers(&color_provider_, color_provider_key_);
++    color_provider_.GenerateColorMap();
+   }
+ 
+  private:
+diff -up chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc.mee	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc	2024-06-03 16:22:10.551568891 +0200
+@@ -33,6 +33,7 @@ TEST(NewTabPageColorMixer, LightAndDarkT
+     if (color_utils::IsDark(toolbar_color))
+       key.color_mode = ui::ColorProviderKey::ColorMode::kDark;
+     AddNewTabPageColorMixer(&provider, key);
++    provider.GenerateColorMap();
+ 
+     EXPECT_EQ(provider.GetColor(kColorToolbar), toolbar_color);
+     EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground), toolbar_color);
+@@ -51,6 +52,7 @@ TEST(NewTabPageColorMixer, CustomColorCo
+   key.custom_theme =
+       base::WrapRefCounted(new CustomThemeSupplier(ThemeType::kAutogenerated));
+   AddNewTabPageColorMixer(&provider, key);
++  provider.GenerateColorMap();
+ 
+   EXPECT_EQ(provider.GetColor(kColorToolbar), gfx::kGoogleGreen300);
+   EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground),
+@@ -72,6 +74,7 @@ TEST(NewTabPageColorMixer, DefaultColorC
+   key.custom_theme =
+       base::WrapRefCounted(new CustomThemeSupplier(ThemeType::kAutogenerated));
+   AddNewTabPageColorMixer(&provider, key);
++  provider.GenerateColorMap();
+ 
+   EXPECT_EQ(provider.GetColor(kColorToolbar), kSampleToolbarColor);
+   EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground), kSampleToolbarColor);
+diff -up chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc.mee	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc	2024-06-03 16:22:10.551568891 +0200
+@@ -56,6 +56,7 @@ int main(int argc, const char* argv[]) {
+     ui::AddColorMixers(provider, key);
+     color::AddComponentsColorMixers(provider, key);
+     AddChromeColorMixers(provider, key);
++    provider->GenerateColorMap();
+   };
+   ui::ColorProvider light_provider, dark_provider, light_high_contrast_provider,
+       dark_high_contrast_provider;
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc.mee	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc	2024-06-03 16:22:10.552568911 +0200
+@@ -117,7 +117,7 @@ class MockLogoService : public search_pr
+ 
+ class MockColorProviderSource : public ui::ColorProviderSource {
+  public:
+-  MockColorProviderSource() = default;
++  MockColorProviderSource() { color_provider_.GenerateColorMap(); }
+   MockColorProviderSource(const MockColorProviderSource&) = delete;
+   MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
+   ~MockColorProviderSource() override = default;
+diff -up chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc.mee chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc
+--- chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc.mee	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc	2024-06-03 16:22:10.553568929 +0200
+@@ -6300,7 +6300,7 @@ IN_PROC_BROWSER_TEST_F(WebContentsImplSt
+ 
+ class MockColorProviderSource : public ui::ColorProviderSource {
+  public:
+-  MockColorProviderSource() = default;
++  MockColorProviderSource() { provider_.GenerateColorMap(); }
+   MockColorProviderSource(const MockColorProviderSource&) = delete;
+   MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
+   ~MockColorProviderSource() override = default;
+diff -up chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc.mee chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc
+--- chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc.mee	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc	2024-06-03 16:22:10.554568949 +0200
+@@ -337,7 +337,7 @@ class MockPageBroadcast : public TestPag
+ 
+ class TestColorProviderSource : public ui::ColorProviderSource {
+  public:
+-  TestColorProviderSource() = default;
++  TestColorProviderSource() { provider_.GenerateColorMap(); }
+ 
+   const ui::ColorProvider* GetColorProvider() const override {
+     return &provider_;
+diff -up chromium-126.0.6478.26/content/public/test/render_view_test.cc.mee chromium-126.0.6478.26/content/public/test/render_view_test.cc
+--- chromium-126.0.6478.26/content/public/test/render_view_test.cc.mee	2024-05-29 18:01:14.000000000 +0200
++++ chromium-126.0.6478.26/content/public/test/render_view_test.cc	2024-06-03 16:22:10.554568949 +0200
+@@ -150,7 +150,7 @@ class FailingURLLoaderFactory : public n
+ 
+ class MockColorProviderSource : public ui::ColorProviderSource {
+  public:
+-  explicit MockColorProviderSource() = default;
++  explicit MockColorProviderSource() { provider_.GenerateColorMap(); }
+   MockColorProviderSource(const MockColorProviderSource&) = delete;
+   MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
+   ~MockColorProviderSource() override = default;
+diff -up chromium-126.0.6478.26/extensions/browser/extension_host.cc.mee chromium-126.0.6478.26/extensions/browser/extension_host.cc
+--- chromium-126.0.6478.26/extensions/browser/extension_host.cc.mee	2024-05-29 18:01:22.000000000 +0200
++++ chromium-126.0.6478.26/extensions/browser/extension_host.cc	2024-06-03 16:22:10.555568967 +0200
+@@ -58,7 +58,7 @@ namespace {
+ // the UI-less extension background page.
+ class NoOpColorProviderSource : public ui::ColorProviderSource {
+  public:
+-  NoOpColorProviderSource() = default;
++  NoOpColorProviderSource() { color_provider_.GenerateColorMap(); }
+   NoOpColorProviderSource(const NoOpColorProviderSource&) = delete;
+   NoOpColorProviderSource& operator=(const NoOpColorProviderSource&) = delete;
+   ~NoOpColorProviderSource() override = default;
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc.mee chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc.mee	2024-05-29 18:01:39.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc	2024-06-03 16:22:10.555568967 +0200
+@@ -677,7 +677,7 @@ Color LayoutTheme::SystemColorFromColorP
+     CSSValueID css_value_id,
+     mojom::blink::ColorScheme color_scheme,
+     const ui::ColorProvider* color_provider) const {
+-  CHECK(color_provider->HasMixers());
++  CHECK(!color_provider->IsColorMapEmpty());
+   SkColor system_theme_color;
+   switch (css_value_id) {
+     case CSSValueID::kActivetext:
+diff -up chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc.mee chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc
+--- chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc	2024-06-03 16:22:10.555568967 +0200
+@@ -224,6 +224,7 @@ TEST(ImageModelTest, ShouldRasterizeEmpt
+ 
+ TEST(ImageModelTest, ShouldRasterizeVectorIcon) {
+   ui::ColorProvider color_provider;
++  color_provider.GenerateColorMap();
+   gfx::ImageSkia image_skia =
+       ui::ImageModel::FromVectorIcon(vector_icons::kSyncIcon)
+           .Rasterize(&color_provider);
+diff -up chromium-126.0.6478.26/ui/color/color_provider.cc.mee chromium-126.0.6478.26/ui/color/color_provider.cc
+--- chromium-126.0.6478.26/ui/color/color_provider.cc.mee	2024-06-03 16:03:15.596432761 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider.cc	2024-06-03 16:22:10.555568967 +0200
+@@ -4,7 +4,6 @@
+ 
+ #include "ui/color/color_provider.h"
+ 
+-#include <forward_list>
+ #include <map>
+ #include <set>
+ #include <utility>
+@@ -18,106 +17,6 @@
+ 
+ namespace ui {
+ 
+-////////////////////////////////////////////////////////////////////////////////
+-// ColorProvider::ColorProviderInternal:
+-
+-class ColorProvider::ColorProviderInternal {
+- public:
+-  using Mixers = std::forward_list<ColorMixer>;
+-
+-  ColorProviderInternal() = default;
+-  ColorProviderInternal(const ColorProviderInternal&) = delete;
+-  ColorProviderInternal& operator=(const ColorProviderInternal&) = delete;
+-  ~ColorProviderInternal() = default;
+-
+-  ColorMixer& AddMixer() {
+-    color_map_.clear();
+-    mixers_.emplace_after(
+-        first_postprocessing_mixer_,
+-        base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
+-                            GetLastNonPostprocessingMixer()),
+-        base::BindRepeating(&ColorProvider::ColorProviderInternal::
+-                                GetLastNonPostprocessingMixer,
+-                            base::Unretained(this)));
+-
+-    return *std::next(first_postprocessing_mixer_, 1);
+-  }
+-
+-  ColorMixer& AddPostprocessingMixer() {
+-    color_map_.clear();
+-    if (first_postprocessing_mixer_ == mixers_.before_begin()) {
+-      // The first postprocessing mixer points to the last regular mixer.
+-      auto previous_mixer_getter = base::BindRepeating(
+-          &ColorProvider::ColorProviderInternal::GetLastNonPostprocessingMixer,
+-          base::Unretained(this));
+-      mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
+-      first_postprocessing_mixer_ = mixers_.begin();
+-    } else {
+-      // Other postprocessing mixers point to the next postprocessing mixer.
+-      auto previous_mixer_getter =
+-          base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
+-                              base::Unretained(&mixers_.front()));
+-      mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
+-    }
+-    return mixers_.front();
+-  }
+-
+-  SkColor GetColor(ColorId id) const {
+-    auto i = color_map_.find(id);
+-    if (i == color_map_.end()) {
+-      if (mixers_.empty()) {
+-        DVLOG(2) << "ColorProvider::GetColor: No mixers defined!";
+-        return gfx::kPlaceholderColor;
+-      }
+-      DVLOG(2) << "ColorProvider::GetColor: Computing color for ColorId: "
+-               << ColorIdName(id);
+-      const SkColor color = mixers_.front().GetResultColor(id);
+-      if (color == gfx::kPlaceholderColor) {
+-        return gfx::kPlaceholderColor;
+-      }
+-      i = color_map_.insert({id, color}).first;
+-    }
+-
+-    DVLOG(2) << "ColorProvider::GetColor: ColorId: " << ColorIdName(id)
+-             << " Value: " << SkColorName(i->second);
+-    return i->second;
+-  }
+-
+-  const ColorMixer* GetLastNonPostprocessingMixer() const {
+-    const auto it = std::next(first_postprocessing_mixer_, 1);
+-    return (it == mixers_.cend()) ? nullptr : &(*it);
+-  }
+-
+-  bool HasMixers() const { return !mixers_.empty(); }
+-
+-  void SetColorForTesting(ColorId id, SkColor color) { color_map_[id] = color; }
+-
+-  void GenerateColorMapForTesting() {
+-    for (const auto& mixer : mixers_) {
+-      const auto mixer_color_ids = mixer.GetDefinedColorIds();
+-      for (const auto color_id : mixer_color_ids) {
+-        GetColor(color_id);
+-      }
+-    }
+-  }
+-
+-  const ColorProvider::ColorMap& color_map_for_testing() { return color_map_; }
+-
+- private:
+-  // The entire color pipeline, in reverse order (that is, the "last" mixer is
+-  // at the front).
+-  Mixers mixers_;
+-
+-  // The first mixer in the chain that is a "postprocessing" mixer.
+-  Mixers::iterator first_postprocessing_mixer_ = mixers_.before_begin();
+-
+-  // A cached map of ColorId => SkColor mappings for this provider.
+-  mutable ColorMap color_map_;
+-};
+-
+-////////////////////////////////////////////////////////////////////////////////
+-// ColorProvider:
+-
+ ColorProvider::ColorProvider() = default;
+ 
+ ColorProvider::ColorProvider(ColorProvider&&) = default;
+@@ -127,31 +26,96 @@ ColorProvider& ColorProvider::operator=(
+ ColorProvider::~ColorProvider() = default;
+ 
+ ColorMixer& ColorProvider::AddMixer() {
+-  return internal_->AddMixer();
++  DCHECK(!color_map_);
++
++  mixers_.emplace_after(
++      first_postprocessing_mixer_,
++      base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
++                          GetLastNonPostprocessingMixer()),
++      base::BindRepeating(&ColorProvider::GetLastNonPostprocessingMixer,
++                          base::Unretained(this)));
++
++  return *std::next(first_postprocessing_mixer_, 1);
+ }
+ 
+ ColorMixer& ColorProvider::AddPostprocessingMixer() {
+-  return internal_->AddPostprocessingMixer();
++  DCHECK(!color_map_);
++
++  if (first_postprocessing_mixer_ == mixers_.before_begin()) {
++    // The first postprocessing mixer points to the last regular mixer.
++    auto previous_mixer_getter = base::BindRepeating(
++        &ColorProvider::GetLastNonPostprocessingMixer, base::Unretained(this));
++    mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
++    first_postprocessing_mixer_ = mixers_.begin();
++  } else {
++    // Other postprocessing mixers point to the next postprocessing mixer.
++    auto previous_mixer_getter =
++        base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
++                            base::Unretained(&mixers_.front()));
++    mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
++  }
++  return mixers_.front();
+ }
+ 
+ SkColor ColorProvider::GetColor(ColorId id) const {
+-  return internal_->GetColor(id);
+-}
++  CHECK(color_map_);
++  auto i = color_map_->find(id);
++  return i == color_map_->end() ? gfx::kPlaceholderColor : i->second;
++}
++
++void ColorProvider::GenerateColorMap() {
++  // This should only be called to generate the `color_map_` once.
++  DCHECK(!color_map_);
++
++  if (mixers_.empty())
++    DVLOG(2) << "ColorProvider::GenerateColorMap: No mixers defined!";
++
++  // Iterate over associated mixers and extract the ColorIds defined for this
++  // provider.
++  std::set<ColorId> color_ids;
++  for (const auto& mixer : mixers_) {
++    const auto mixer_color_ids = mixer.GetDefinedColorIds();
++    color_ids.insert(mixer_color_ids.begin(), mixer_color_ids.end());
++  }
++
++  // Iterate through all defined ColorIds and seed the `color_map` with the
++  // computed values. Use a std::map rather than a base::flat_map since it has
++  // frequent inserts and could grow very large.
++  std::map<ColorId, SkColor> color_map;
++  for (const auto& color_id : color_ids) {
++    SkColor resulting_color = mixers_.front().GetResultColor(color_id);
++    DVLOG(2) << "GenerateColorMap:"
++             << " Color Id: " << ColorIdName(color_id)
++             << " Resulting Color: " << SkColorName(resulting_color);
++    color_map.insert({color_id, resulting_color});
++  }
++
++  // Construct the color_map_.
++  color_map_ = ColorMap(color_map.begin(), color_map.end());
+ 
+-bool ColorProvider::HasMixers() const {
+-  return internal_->HasMixers();
++  // Clear away all associated mixers as these are no longer needed.
++  mixers_.clear();
++  first_postprocessing_mixer_ = mixers_.before_begin();
+ }
+ 
+-void ColorProvider::SetColorForTesting(ColorId id, SkColor color) {
+-  internal_->SetColorForTesting(id, color);  // IN-TEST
++bool ColorProvider::IsColorMapEmpty() const {
++  DCHECK(color_map_);
++  return color_map_->empty();
+ }
+ 
+-void ColorProvider::GenerateColorMapForTesting() {
+-  internal_->GenerateColorMapForTesting();  // IN-TEST
++void ColorProvider::SetColorForTesting(ColorId id, SkColor color) {
++  if (color_map_) {
++    (*color_map_)[id] = color;
++  } else {
++    if (mixers_.empty())
++      AddMixer();
++    (*std::next(first_postprocessing_mixer_, 1))[id] = {color};
++  }
+ }
+ 
+-const ColorProvider::ColorMap& ColorProvider::color_map_for_testing() {
+-  return internal_->color_map_for_testing();  // IN-TEST
++const ColorMixer* ColorProvider::GetLastNonPostprocessingMixer() const {
++  const auto it = std::next(first_postprocessing_mixer_, 1);
++  return (it == mixers_.cend()) ? nullptr : &(*it);
+ }
+ 
+ }  // namespace ui
+diff -up chromium-126.0.6478.26/ui/color/color_provider.h.mee chromium-126.0.6478.26/ui/color/color_provider.h
+--- chromium-126.0.6478.26/ui/color/color_provider.h.mee	2024-06-03 16:13:48.739166275 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider.h	2024-06-03 16:22:10.555568967 +0200
+@@ -5,11 +5,12 @@
+ #ifndef UI_COLOR_COLOR_PROVIDER_H_
+ #define UI_COLOR_COLOR_PROVIDER_H_
+ 
+-#include <map>
++#include <forward_list>
+ #include <memory>
+ #include <optional>
+ 
+ #include "base/component_export.h"
++#include "base/containers/flat_map.h"
+ #include "third_party/skia/include/core/SkColor.h"
+ #include "ui/color/color_id.h"
+ #include "ui/color/color_mixer.h"
+@@ -24,7 +25,7 @@ namespace ui {
+ // TODO(pkasting): Figure out ownership model and lifetime.
+ class COMPONENT_EXPORT(COLOR) ColorProvider {
+  public:
+-  using ColorMap = std::map<ColorId, SkColor>;
++  using ColorMap = base::flat_map<ColorId, SkColor>;
+ 
+   ColorProvider();
+   ColorProvider(const ColorProvider&) = delete;
+@@ -48,25 +49,39 @@ class COMPONENT_EXPORT(COLOR) ColorProvi
+   // |id|.
+   SkColor GetColor(ColorId id) const;
+ 
+-  // Returns true if mixers is not empty. It's the case for some browser
++  // Generates the `color_map_` used by this provider for all ColorIds defined
++  // by attached mixers. After the map is generated attached mixers and their
++  // associated objects are discarded. Mixers should not be added to the
++  // provider after this has been called.
++  void GenerateColorMap();
++
++  // Returns true if the color_map_ is empty. It's the case for some browser
+   // tests that run in single process mode but access colors that are
+   // initialized on renderer process launch, for example, controls in
+   // NaiveThemeBase and its children classes. Please see more details:
+   // https://crbug.com/1376775.
+-  bool HasMixers() const;
++  bool IsColorMapEmpty() const;
+ 
+   void SetColorForTesting(ColorId id, SkColor color);
+-  void GenerateColorMapForTesting();
+-  const ColorMap& color_map_for_testing();
++  const ColorMap& color_map_for_testing() { return *color_map_; }
+ 
+  private:
+-  // ColorProviderInternal provides the actual implementation of ColorProvider.
+-  // It's non-movable and non-copyable so that ColorMixer's callbacks can safely
+-  // bind to it.
+-  class ColorProviderInternal;
++  using Mixers = std::forward_list<ColorMixer>;
+ 
+-  std::unique_ptr<ColorProviderInternal> internal_ =
+-      std::make_unique<ColorProviderInternal>();
++  // Returns the last mixer in the chain that is not a "postprocessing" mixer,
++  // or nullptr.
++  const ColorMixer* GetLastNonPostprocessingMixer() const;
++
++  // The entire color pipeline, in reverse order (that is, the "last" mixer is
++  // at the front).
++  Mixers mixers_;
++
++  // The first mixer in the chain that is a "postprocessing" mixer.
++  Mixers::iterator first_postprocessing_mixer_ = mixers_.before_begin();
++
++  // A cached map of ColorId => SkColor mappings for this provider. This will be
++  // generated in the call to `GenerateColorMap()`.
++  std::optional<ColorMap> color_map_;
+ };
+ 
+ }  // namespace ui
+diff -up chromium-126.0.6478.26/ui/color/color_provider_manager.cc.mee chromium-126.0.6478.26/ui/color/color_provider_manager.cc
+--- chromium-126.0.6478.26/ui/color/color_provider_manager.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider_manager.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -109,6 +109,7 @@ ColorProvider* ColorProviderManager::Get
+     if (!initializer_list_->empty())
+       initializer_list_->Notify(provider.get(), key);
+ 
++    provider->GenerateColorMap();
+     RecordTimeSpentInitializingColorProvider(timer.Elapsed());
+     ++num_providers_initialized_;
+ 
+diff -up chromium-126.0.6478.26/ui/color/color_provider_unittest.cc.mee chromium-126.0.6478.26/ui/color/color_provider_unittest.cc
+--- chromium-126.0.6478.26/ui/color/color_provider_unittest.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider_unittest.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -17,6 +17,7 @@ namespace {
+ // Tests that when there are no mixers, GetColor() returns a placeholder value.
+ TEST(ColorProviderTest, GetColorNoMixers) {
+   ColorProvider provider;
++  provider.GenerateColorMap();
+   EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest0));
+ }
+ 
+@@ -25,6 +26,7 @@ TEST(ColorProviderTest, GetColorNoMixers
+ TEST(ColorProviderTest, SingleMixer) {
+   ColorProvider provider;
+   provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
+   EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest1));
+ }
+@@ -35,6 +37,7 @@ TEST(ColorProviderTest, NonOverlappingMi
+   ColorProvider provider;
+   provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
+   provider.AddMixer()[kColorTest1] = {SK_ColorRED};
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
+   EXPECT_EQ(SK_ColorRED, provider.GetColor(kColorTest1));
+ }
+@@ -45,6 +48,7 @@ TEST(ColorProviderTest, OverlappingMixer
+   ColorProvider provider;
+   provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
+   provider.AddMixer()[kColorTest0] = {SK_ColorRED};
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorRED, provider.GetColor(kColorTest0));
+ }
+ 
+@@ -55,6 +59,7 @@ TEST(ColorProviderTest, WithProcessing)
+   provider.AddMixer()[kColorTest0] = {SK_ColorBLACK};
+   provider.AddPostprocessingMixer()[kColorTest0] =
+       GetColorWithMaxContrast(FromTransformInput());
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
+ }
+ 
+@@ -65,6 +70,7 @@ TEST(ColorProviderTest, WithProcessingAd
+   provider.AddPostprocessingMixer()[kColorTest0] =
+       GetColorWithMaxContrast(FromTransformInput());
+   provider.AddMixer()[kColorTest0] = {SK_ColorBLACK};
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
+ }
+ 
+@@ -76,6 +82,7 @@ TEST(ColorProviderTest, Redefinition) {
+   mixer0[kColorTest0] = {SK_ColorBLACK};
+   mixer0[kColorTest1] = AlphaBlend(SK_ColorRED, kColorTest0, 0x01);
+   provider.AddMixer()[kColorTest0] = {SK_ColorWHITE};
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
+   EXPECT_FALSE(color_utils::IsDark(provider.GetColor(kColorTest1)));
+ }
+@@ -90,6 +97,7 @@ TEST(ColorProviderTest, RedefinitionWith
+   provider.AddMixer()[kColorTest0] = {SK_ColorWHITE};
+   provider.AddPostprocessingMixer()[kColorTest0] =
+       GetColorWithMaxContrast(FromTransformInput());
++  provider.GenerateColorMap();
+   EXPECT_NE(SK_ColorWHITE, provider.GetColor(kColorTest0));
+   EXPECT_FALSE(color_utils::IsDark(provider.GetColor(kColorTest1)));
+ }
+@@ -97,6 +105,7 @@ TEST(ColorProviderTest, RedefinitionWith
+ TEST(ColorProviderTest, SetColorForTesting) {
+   ColorProvider provider;
+   provider.SetColorForTesting(kColorTest0, SK_ColorGREEN);
++  provider.GenerateColorMap();
+   EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
+   EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest1));
+   provider.SetColorForTesting(kColorTest1, SK_ColorBLUE);
+diff -up chromium-126.0.6478.26/ui/color/color_provider_utils.cc.mee chromium-126.0.6478.26/ui/color/color_provider_utils.cc
+--- chromium-126.0.6478.26/ui/color/color_provider_utils.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider_utils.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -367,6 +367,7 @@ ColorProvider CreateColorProviderFromRen
+ 
+   for (const auto& table : kRendererColorIdMap)
+     mixer[table.color_id] = {renderer_color_map.at(table.renderer_color_id)};
++  color_provider.GenerateColorMap();
+ 
+   return color_provider;
+ }
+@@ -425,6 +426,7 @@ ColorProvider CreateEmulatedForcedColors
+   mixer[kColorSeparator] = {kColorMidground};
+   CompleteDefaultNonWebNativeRendererColorIdsDefinition(mixer);
+ 
++  color_provider.GenerateColorMap();
+   return color_provider;
+ }
+ 
+@@ -479,6 +481,7 @@ ColorProvider CreateEmulatedForcedColors
+   mixer[kColorWebNativeControlSliderHovered] = {SK_ColorCYAN};
+   mixer[kColorWebNativeControlSliderPressed] = {SK_ColorCYAN};
+ 
++  color_provider.GenerateColorMap();
+   return color_provider;
+ }
+ 
+@@ -652,6 +655,7 @@ ColorProvider COMPONENT_EXPORT(COLOR)
+         SkColorSetRGB(0x37, 0x93, 0xFF)};
+   }
+ 
++  color_provider.GenerateColorMap();
+   return color_provider;
+ }
+ 
+diff -up chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc.mee chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc
+--- chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -49,6 +49,7 @@ TEST_F(ColorProviderUtilsTest, RendererC
+   ui::ColorMixer& mixer = color_provider.AddMixer();
+   for (int i = ui::kUiColorsStart + 1; i < ui::kUiColorsEnd; ++i)
+     mixer[i] = {static_cast<SkColor>(i)};
++  color_provider.GenerateColorMap();
+ 
+   // The size of the RendererColorMap should match number of defined
+   // RendererColorIds.
+@@ -60,7 +61,6 @@ TEST_F(ColorProviderUtilsTest, RendererC
+   // also match the number of defined RendererColorIds.
+   auto new_color_provider =
+       ui::CreateColorProviderFromRendererColorMap(renderer_color_map);
+-  new_color_provider.GenerateColorMapForTesting();
+   EXPECT_EQ(kTotaltRendererColorIds,
+             new_color_provider.color_map_for_testing().size());
+ }
+@@ -73,6 +73,7 @@ TEST_F(ColorProviderUtilsTest, ColorProv
+   for (int i = ui::kUiColorsStart + 1; i < ui::kUiColorsEnd; ++i) {
+     mixer[i] = {static_cast<SkColor>(i)};
+   }
++  color_provider.GenerateColorMap();
+ 
+   // A renderer color map generated from its source provider should have
+   // equivalent mappings.
+@@ -84,6 +85,7 @@ TEST_F(ColorProviderUtilsTest, ColorProv
+   // Providers with different renderer color mappings should not be flagged as
+   // equivalent.
+   ui::ColorProvider new_color_provider;
++  new_color_provider.GenerateColorMap();
+   EXPECT_FALSE(IsRendererColorMappingEquivalent(&new_color_provider,
+                                                 renderer_color_map));
+ }
+@@ -119,6 +121,7 @@ TEST_F(ColorProviderUtilsTest, DefaultBl
+   ui::ColorProvider random_color_provider;
+   ui::ColorMixer& mixer = random_color_provider.AddMixer();
+   mixer[ui::kColorPrimaryBackground] = {SK_ColorWHITE};
++  random_color_provider.GenerateColorMap();
+   ui::RendererColorMap random_color_map =
+       ui::CreateRendererColorMap(random_color_provider);
+ 
+diff -up chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc.mee chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc
+--- chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc.mee	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -36,6 +36,7 @@ class SysColorMixerTest
+ 
+     AddRefColorMixer(&color_provider_, key);
+     AddSysColorMixer(&color_provider_, key);
++    color_provider_.GenerateColorMap();
+   }
+ 
+  protected:
+diff -up chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc.mee chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc
+--- chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc.mee	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -1763,9 +1763,8 @@ bool NativeThemeBase::IsColorPipelineSup
+     ControlColorId color_id) const {
+   // Color providers are not yet supported on Android so we need to check that
+   // the color_provider is not null here.
+-  if (!color_provider || !color_provider->HasMixers()) {
++  if (!color_provider || color_provider->IsColorMapEmpty())
+     return false;
+-  }
+ 
+   static constexpr auto kControlColorIdsSet =
+       base::MakeFixedFlatSet<ControlColorId>({kBorder,
+diff -up chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc.mee chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc
+--- chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc.mee	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -134,6 +134,7 @@ TEST_P(NativeThemeFluentTest, VerifyArro
+ TEST_F(NativeThemeFluentTest, PaintThumbRoundedCorners) {
+   cc::RecordPaintCanvas canvas;
+   ColorProvider color_provider;
++  color_provider.GenerateColorMap();
+   constexpr gfx::Rect kRect(15, 100);
+   // `is_web_test` is `false` by default.
+   const NativeTheme::ScrollbarThumbExtraParams extra_params;
+diff -up chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc.mee chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc
+--- chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc.mee	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc	2024-06-03 16:22:10.556568986 +0200
+@@ -285,6 +285,7 @@ TEST_F(ShadowControllerTest, SetColorsMa
+   mixer[ui::kColorShadowValueAmbientShadowElevationTwelve] = {SK_ColorRED};
+   mixer[ui::kColorShadowValueKeyShadowElevationTwentyFour] = {SK_ColorGREEN};
+   mixer[ui::kColorShadowValueAmbientShadowElevationTwentyFour] = {SK_ColorBLUE};
++  color_provider.GenerateColorMap();
+ 
+   shadow->SetElevationToColorsMap(
+       ShadowController::GenerateShadowColorsMap(&color_provider));

diff --git a/chromium-126-el7-constexpr.patch b/chromium-126-el7-constexpr.patch
new file mode 100644
index 0000000..45042fe
--- /dev/null
+++ b/chromium-126-el7-constexpr.patch
@@ -0,0 +1,248 @@
+diff -up chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h.constexpr	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h	2024-06-02 23:51:25.539916606 +0200
+@@ -47,7 +47,7 @@ class LensUntrustedUI : public Untrusted
+       mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "LensUntrusted"; }
++  static const std::string GetWebUIName() { return "LensUntrusted"; }
+ 
+  private:
+   // lens::mojom::LensPageHandlerFactory:
+diff -up chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h.constexpr	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h	2024-06-02 23:51:25.539916606 +0200
+@@ -25,7 +25,7 @@ class SearchBubbleUI : public TopChromeW
+       mojo::PendingReceiver<lens::mojom::SearchBubblePageHandlerFactory>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "LensSearchBubble"; }
++  static const std::string GetWebUIName() { return "LensSearchBubble"; }
+ 
+  private:
+   // lens::mojom::SearchBubblePageHandlerFactory
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.constexpr	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h	2024-06-02 23:51:25.539916606 +0200
+@@ -55,7 +55,7 @@ class ShoppingInsightsSidePanelUI
+       mojo::PendingReceiver<
+           shopping_service::mojom::ShoppingServiceHandlerFactory> receiver);
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "ShoppingInsightsSidePanel";
+   }
+ 
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.constexpr	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h	2024-06-02 23:51:25.540916630 +0200
+@@ -58,7 +58,7 @@ class ComposeUntrustedUI
+     triggering_web_contents_ = web_contents->GetWeakPtr();
+   }
+ 
+-  static constexpr std::string GetWebUIName() { return "Compose"; }
++  static const std::string GetWebUIName() { return "Compose"; }
+ 
+  private:
+   void CreateComposeSessionUntrustedPageHandler(
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.constexpr	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h	2024-06-02 23:51:25.540916630 +0200
+@@ -75,7 +75,7 @@ class BookmarksSidePanelUI
+   commerce::ShoppingListContextMenuController*
+   GetShoppingListContextMenuController();
+ 
+-  static constexpr std::string GetWebUIName() { return "BookmarksSidePanel"; }
++  static const std::string GetWebUIName() { return "BookmarksSidePanel"; }
+ 
+  private:
+   // side_panel::mojom::BookmarksPageHandlerFactory:
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.constexpr	2024-06-03 18:20:28.504604071 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h	2024-06-03 18:20:44.559016497 +0200
+@@ -34,7 +34,7 @@ class CompanionSidePanelUntrustedUI
+   // Gets a weak pointer to this object.
+   base::WeakPtr<CompanionSidePanelUntrustedUI> GetWeakPtr();
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "CompanionSidePanelUntrusted";
+   }
+ 
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.constexpr	2024-06-03 18:13:52.741282949 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h	2024-06-03 18:14:34.718442888 +0200
+@@ -111,7 +111,7 @@ class CustomizeChromeUI
+           side_panel::customize_chrome::mojom::CustomizeToolbarHandlerFactory>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "CustomizeChrome"; }
++  static const std::string GetWebUIName() { return "CustomizeChrome"; }
+ 
+  private:
+   // side_panel::mojom::CustomizeChromePageHandlerFactory
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.constexpr	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h	2024-06-02 23:51:25.540916630 +0200
+@@ -70,7 +70,7 @@ class HistoryClustersSidePanelUI : publi
+   void DidFinishNavigation(
+       content::NavigationHandle* navigation_handle) override;
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "HistoryClustersSidePanel";
+   }
+ 
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.constexpr	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h	2024-06-02 23:51:25.540916630 +0200
+@@ -41,7 +41,7 @@ class PerformanceSidePanelUI
+       mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
+           pending_receiver);
+ 
+-  static constexpr std::string GetWebUIName() { return "PerformanceSidePanel"; }
++  static const std::string GetWebUIName() { return "PerformanceSidePanel"; }
+ 
+  private:
+   // side_panel::mojom::PerformancePageHandlerFactory:
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.constexpr	2024-05-29 18:01:00.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h	2024-06-02 23:51:25.541916654 +0200
+@@ -55,7 +55,7 @@ class ReadAnythingUntrustedUI
+       mojo::PendingReceiver<read_anything::mojom::UntrustedPageHandlerFactory>
+           receiver);
+ 
+-  static constexpr std::string GetWebUIName() {
++  static const std::string GetWebUIName() {
+     return "ReadAnythingUntrusted";
+   }
+ 
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.constexpr	2024-05-29 18:01:00.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h	2024-06-02 23:51:25.541916654 +0200
+@@ -58,7 +58,7 @@ class ReadingListUI : public TopChromeWe
+ 
+   void SetActiveTabURL(const GURL& url);
+ 
+-  static constexpr std::string GetWebUIName() { return "ReadingList"; }
++  static const std::string GetWebUIName() { return "ReadingList"; }
+ 
+  private:
+   // reading_list::mojom::PageHandlerFactory:
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.constexpr	2024-05-29 18:01:00.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h	2024-06-02 23:51:25.541916654 +0200
+@@ -35,7 +35,7 @@ class UserNotesSidePanelUI
+ 
+   void set_browser(Browser* browser) { browser_ = browser; }
+ 
+-  static constexpr std::string GetWebUIName() { return "UserNotesSidePanel"; }
++  static const std::string GetWebUIName() { return "UserNotesSidePanel"; }
+ 
+  private:
+   // user_notes::mojom::UserNotesPageHandlerFactory
+diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h
+--- chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h.constexpr	2024-05-29 18:01:00.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h	2024-06-02 23:51:25.542916677 +0200
+@@ -58,7 +58,7 @@ class TabSearchUI : public TopChromeWebU
+     return page_handler_.get();
+   }
+ 
+-  static constexpr std::string GetWebUIName() { return "TabSearch"; }
++  static const std::string GetWebUIName() { return "TabSearch"; }
+ 
+  private:
+   // tab_search::mojom::PageHandlerFactory
+diff -up chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h.constexpr chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h
+--- chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h.constexpr	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h	2024-06-02 23:51:25.542916677 +0200
+@@ -16,8 +16,8 @@ namespace autofill::i18n_model_definitio
+ // Country code that represents autofill's legacy address hierarchy model as
+ // stored `kAutofillModelRules`. As a workaround for GCC we declare the
+ // std::string constexpr first.
+-constexpr inline std::string kLegacyHierarchyCountryCodeString{"XX"};
+-constexpr AddressCountryCode kLegacyHierarchyCountryCode =
++const inline std::string kLegacyHierarchyCountryCodeString{"XX"};
++const AddressCountryCode kLegacyHierarchyCountryCode =
+     AddressCountryCode(kLegacyHierarchyCountryCodeString);
+ 
+ // Creates an instance of the address hierarchy model corresponding to the
+diff -up chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.constexpr chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py
+--- chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.constexpr	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py	2024-06-02 23:51:36.322172739 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/opt/rh/rh-python38/root/usr/bin/python
+ 
+ # Copyright 2020 The Chromium Authors
+ # Use of this source code is governed by a BSD-style license that can be
+@@ -54,7 +54,7 @@ def generate_matching_pattern_equals(nam
+   yield '// Checks if all the matching patterns for the given PatternSources'
+   yield '// and language are the same - meaning that computing predictions for'
+   yield '// both is unnecessary, since it will yield the same result.'
+-  yield 'constexpr bool AreMatchingPatternsEqualImpl(PatternSource a,'
++  yield 'const bool AreMatchingPatternsEqualImpl(PatternSource a,'
+   yield '                                            PatternSource b,'
+   yield '                                            LanguageCode lang_code) {'
+   yield '  if (a == b) {'
+diff -up chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h.constexpr chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h
+--- chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h.constexpr	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h	2024-06-02 23:51:25.542916677 +0200
+@@ -57,7 +57,7 @@ struct IsRequired {
+   // This function is not defined and consteval. Therefore, any evaluation will
+   // fail and fail at compile time.
+   template <typename T>
+-  consteval operator T();  // NOLINT
++  operator T();  // NOLINT
+ };
+ 
+ }  // namespace internal
+diff -up chromium-126.0.6478.26/components/history/core/browser/history_types.h.constexpr chromium-126.0.6478.26/components/history/core/browser/history_types.h
+--- chromium-126.0.6478.26/components/history/core/browser/history_types.h.constexpr	2024-05-29 18:01:06.000000000 +0200
++++ chromium-126.0.6478.26/components/history/core/browser/history_types.h	2024-06-02 23:51:25.542916677 +0200
+@@ -70,7 +70,7 @@ constexpr VisitedLinkID kInvalidVisitedL
+ typedef std::map<VisitID, VisitSource> VisitSourceMap;
+ 
+ // Constant used to represent that no app_id is used for matching.
+-inline constexpr std::optional<std::string> kNoAppIdFilter = std::nullopt;
++inline const std::optional<std::string> kNoAppIdFilter = std::nullopt;
+ 
+ // VisitRow -------------------------------------------------------------------
+ 
+diff -up chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc.constexpr chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc
+--- chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc.constexpr	2024-05-29 18:01:07.000000000 +0200
++++ chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc	2024-06-02 23:51:25.543916702 +0200
+@@ -30,7 +30,7 @@ namespace {
+ // The maximum idle time before the model executor is unloaded from memory.
+ constexpr base::TimeDelta kMaxExecutorIdleSeconds = base::Seconds(60);
+ // Constants for TFlite model validation.
+-constexpr std::string kTestPrefix = "face";
++const std::string kTestPrefix = "face";
+ constexpr std::string_view kModelValidationSwitchName =
+     "omnibox-on-device-tail-model-validation";
+ 
+diff -up chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc.constexpr chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc
+--- chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc.constexpr	2024-05-29 18:01:36.000000000 +0200
++++ chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc	2024-06-02 23:51:25.543916702 +0200
+@@ -28,17 +28,17 @@ namespace network {
+ namespace {
+ 
+ // https://urlpattern.spec.whatwg.org/#default-options
+-constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
++const liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
+                                                     .prefix_list = "",
+                                                     .sensitive = true,
+                                                     .strict = true};
+ // https://urlpattern.spec.whatwg.org/#hostname-options
+-constexpr liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
++const liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
+                                                      .prefix_list = "",
+                                                      .sensitive = true,
+                                                      .strict = true};
+ // https://urlpattern.spec.whatwg.org/#pathname-options
+-constexpr liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
++const liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
+                                                      .prefix_list = "/",
+                                                      .sensitive = true,
+                                                      .strict = true};

diff --git a/chromium-126-el7-include-fcntl-memfd.patch b/chromium-126-el7-include-fcntl-memfd.patch
new file mode 100644
index 0000000..3bafca4
--- /dev/null
+++ b/chromium-126-el7-include-fcntl-memfd.patch
@@ -0,0 +1,47 @@
+diff -up chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c.el7-memfd-fcntl-include chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c
+--- chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c.el7-memfd-fcntl-include	2024-05-29 18:03:08.000000000 +0200
++++ chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c	2024-06-02 15:13:21.636638066 +0200
+@@ -29,7 +29,8 @@
+ 
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <fcntl.h>
++#include <linux/fcntl.h> // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
++#include <linux/memfd.h> // for MFD_CLOEXEC
+ #include <errno.h>
+ #include <signal.h>
+ #include <string.h>
+diff -up chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c.el7-memfd-fcntl-include chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c
+--- chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c.el7-memfd-fcntl-include	2024-05-29 18:03:08.000000000 +0200
++++ chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c	2024-06-02 15:13:21.635638045 +0200
+@@ -44,7 +44,7 @@
+ #include <signal.h>
+ #include <pthread.h>
+ #include <errno.h>
+-#include <fcntl.h>
++#include <linux/fcntl.h>
+ 
+ #include "wayland-os.h"
+ #include "wayland-util.h"
+diff -up chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.el7-memfd-fcntl-include chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
+--- chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.el7-memfd-fcntl-include	2024-06-02 15:13:21.636638066 +0200
++++ chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc	2024-06-02 15:16:18.202679909 +0200
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.h"
+ 
+ #include <sys/mman.h>
++#include <linux/memfd.h>
+ 
+ #include <string>
+ #include <string_view>
+diff -up chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc.el7-memfd-fcntl-include chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc
+--- chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc.el7-memfd-fcntl-include	2024-05-29 18:03:35.000000000 +0200
++++ chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc	2024-06-02 15:13:21.635638045 +0200
+@@ -60,6 +60,7 @@
+ 
+ #if V8_OS_LINUX
+ #include <sys/prctl.h>  // for prctl
++#include <linux/memfd.h> // for MFD_CLOEXEC
+ #endif
+ 
+ #if defined(V8_OS_FUCHSIA)

diff --git a/chromium-126-el7-interator.patch b/chromium-126-el7-interator.patch
new file mode 100644
index 0000000..9b630a8
--- /dev/null
+++ b/chromium-126-el7-interator.patch
@@ -0,0 +1,12 @@
+diff -up chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h
+--- chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me	2024-06-03 15:01:54.724207324 +0200
++++ chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h	2024-06-03 14:58:16.244189794 +0200
+@@ -144,7 +144,7 @@ class QUICHE_NO_EXPORT QuicIntervalDeque
+   // for efficient std::lower_bound() calls.
+   class QUICHE_NO_EXPORT Iterator {
+    public:
+-    using iterator_category = std::random_access_iterator_tag;
++    using iterator_category = std::forward_iterator_tag;
+     using value_type = T;
+     using difference_type = std::ptrdiff_t;
+     using pointer = T*;

diff --git a/chromium-126-el7-no_matching_constructor.patch b/chromium-126-el7-no_matching_constructor.patch
new file mode 100644
index 0000000..fdc351a
--- /dev/null
+++ b/chromium-126-el7-no_matching_constructor.patch
@@ -0,0 +1,1961 @@
+diff -up chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
+--- chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.no_matching_constructor	2024-05-29 18:00:45.000000000 +0200
++++ chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc	2024-06-02 23:51:25.487915366 +0200
+@@ -86,7 +86,7 @@ bool LightweightQuarantineBranch::Quaran
+ 
+     // Put the entry onto the list.
+     branch_size_in_bytes_ += usable_size;
+-    slots_.emplace_back(slot_start, usable_size);
++    slots_.emplace_back() = {slot_start, usable_size};
+ 
+     // Swap randomly so that the quarantine list remain shuffled.
+     // This is not uniformly random, but sufficiently random.
+diff -up chromium-126.0.6478.26/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-126.0.6478.26/base/metrics/persistent_histogram_allocator.cc
+--- chromium-126.0.6478.26/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor	2024-05-29 18:00:45.000000000 +0200
++++ chromium-126.0.6478.26/base/metrics/persistent_histogram_allocator.cc	2024-06-02 23:51:25.487915366 +0200
+@@ -225,13 +225,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-126.0.6478.26/base/nix/mime_util_xdg.cc.no_matching_constructor chromium-126.0.6478.26/base/nix/mime_util_xdg.cc
+--- chromium-126.0.6478.26/base/nix/mime_util_xdg.cc.no_matching_constructor	2024-05-29 18:00:45.000000000 +0200
++++ chromium-126.0.6478.26/base/nix/mime_util_xdg.cc	2024-06-02 23:51:25.488915391 +0200
+@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap&
+   for (const auto& path : GetXDGDataSearchLocations(env.get())) {
+     FilePath mime_cache = path.Append("mime/mime.cache");
+     if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) {
+-      files.emplace_back(mime_cache, info.last_modified);
++      files.emplace_back() = {mime_cache, info.last_modified};
+     }
+   }
+ }
+diff -up chromium-126.0.6478.26/base/trace_event/trace_log.cc.no_matching_constructor chromium-126.0.6478.26/base/trace_event/trace_log.cc
+--- chromium-126.0.6478.26/base/trace_event/trace_log.cc.no_matching_constructor	2024-05-29 18:00:45.000000000 +0200
++++ chromium-126.0.6478.26/base/trace_event/trace_log.cc	2024-06-02 23:51:25.489915414 +0200
+@@ -2026,8 +2026,8 @@ void TraceLog::SetTraceBufferForTesting(
+ 
+ void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
+   AutoLock lock(track_event_lock_);
+-  track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
+-                                     args.backend_type);
++  track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
++                                     args.backend_type};
+ }
+ 
+ void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
+diff -up chromium-126.0.6478.26/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-126.0.6478.26/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor	2024-05-29 18:00:52.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/content_settings/one_time_permission_provider.cc	2024-06-02 23:51:25.489915414 +0200
+@@ -259,8 +259,8 @@ void OneTimePermissionProvider::OnSuspen
+ 
+       while (rule_iterator && rule_iterator->HasNext()) {
+         auto rule = rule_iterator->Next();
+-        patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
+-                                        rule->secondary_pattern);
++        patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
++                                        rule->secondary_pattern};
+         permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
+             setting_type,
+             permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
+@@ -362,8 +362,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-126.0.6478.26/chrome/browser/dips/dips_bounce_detector.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/dips/dips_bounce_detector.cc
+--- chromium-126.0.6478.26/chrome/browser/dips/dips_bounce_detector.cc.no_matching_constructor	2024-06-03 23:39:30.778285708 +0200
++++ chromium-126.0.6478.26/chrome/browser/dips/dips_bounce_detector.cc	2024-06-03 23:42:17.873038214 +0200
+@@ -511,11 +511,11 @@ UrlAndSourceId RedirectChainDetector::Ge
+   // We can't use RenderFrameHost::GetLastCommittedURL() because that returns an
+   // empty URL while the tab is closing (i.e. within
+   // WebContentsObserver::WebContentsDestroyed)
+-  return UrlAndSourceId(
++  return UrlAndSourceId{
+       WebContentsObserver::web_contents()->GetLastCommittedURL(),
+       WebContentsObserver::web_contents()
+           ->GetPrimaryMainFrame()
+-          ->GetPageUkmSourceId());
++          ->GetPageUkmSourceId()};
+ }
+ 
+ void RedirectChainDetector::HandleRedirectChain(
+@@ -619,8 +619,8 @@ void DIPSBounceDetector::DidStartNavigat
+       !client_detection_state_.has_value()) {
+     server_bounce_detection_state->navigation_start =
+         delegate_->GetLastCommittedURL().url.is_empty()
+-            ? UrlAndSourceId(navigation_handle->GetInitiator(),
+-                             ukm::kInvalidSourceId)
++            ? UrlAndSourceId{navigation_handle->GetInitiator(),
++                             ukm::kInvalidSourceId}
+             : delegate_->GetLastCommittedURL();
+     return;
+   }
+@@ -961,8 +961,8 @@ void DIPSBounceDetector::DidFinishNaviga
+ 
+   for (size_t i = 0; i < access_types.size() - 1; i++) {
+     redirects.push_back(std::make_unique<DIPSRedirectInfo>(
+-        /*url=*/UrlAndSourceId(navigation_handle->GetRedirectChain()[i],
+-                               navigation_handle->GetRedirectSourceId(i)),
++        /*url=*/UrlAndSourceId{navigation_handle->GetRedirectChain()[i],
++                               navigation_handle->GetRedirectSourceId(i)},
+         /*redirect_type=*/DIPSRedirectType::kServer,
+         /*access_type=*/access_types[i],
+         /*time=*/clock_->Now()));
+@@ -971,16 +971,16 @@ void DIPSBounceDetector::DidFinishNaviga
+   if (navigation_handle->HasCommitted()) {
+     committed_redirect_context_.AppendCommitted(
+         std::move(server_state->navigation_start), std::move(redirects),
+-        UrlAndSourceId(navigation_handle->GetURL(),
+-                       navigation_handle->GetNextPageUkmSourceId()),
++        UrlAndSourceId{navigation_handle->GetURL(),
++                       navigation_handle->GetNextPageUkmSourceId()},
+         current_page_has_sticky_activation);
+   } else {
+     // For uncommitted navigations, treat the last URL visited as a server
+     // redirect, so it is considered a potential tracker.
+     const size_t i = access_types.size() - 1;
+     redirects.push_back(std::make_unique<DIPSRedirectInfo>(
+-        /*url=*/UrlAndSourceId(navigation_handle->GetRedirectChain()[i],
+-                               navigation_handle->GetRedirectSourceId(i)),
++        /*url=*/UrlAndSourceId{navigation_handle->GetRedirectChain()[i],
++                               navigation_handle->GetRedirectSourceId(i)},
+         /*redirect_type=*/DIPSRedirectType::kServer,
+         /*access_type=*/access_types[i],
+         /*time=*/clock_->Now()));
+diff -up chromium-126.0.6478.26/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
+--- chromium-126.0.6478.26/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor	2024-05-29 18:00:52.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc	2024-06-02 23:51:25.489915414 +0200
+@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
+   // TODO(crbug.com/40267996): 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-126.0.6478.26/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+--- chromium-126.0.6478.26/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.no_matching_constructor	2024-05-29 18:00:53.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc	2024-06-02 23:51:25.490915438 +0200
+@@ -385,7 +385,7 @@ bool ShouldBlockAccessToPath(const base:
+       DCHECK(block.path);
+       blocked_path = base::FilePath(block.path);
+     }
+-    rules.emplace_back(blocked_path, block.type);
++    rules.emplace_back() = {blocked_path, block.type};
+   }
+ 
+   base::FilePath nearest_ancestor;
+@@ -1685,11 +1685,11 @@ void ChromeFileSystemAccessPermissionCon
+   // profile's directory, assuming the profile dir is a child of the user data
+   // dir.
+   std::vector<BlockPathRule> extra_rules;
+-  extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren);
++  extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren};
+   if (g_browser_process->profile_manager()) {
+-    extra_rules.emplace_back(
++    extra_rules.emplace_back() = {
+         g_browser_process->profile_manager()->user_data_dir(),
+-        kBlockAllChildren);
++        kBlockAllChildren};
+   }
+ 
+   base::ThreadPool::PostTaskAndReplyWithResult(
+diff -up chromium-126.0.6478.26/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/performance_manager/mechanisms/page_discarder.cc
+--- chromium-126.0.6478.26/chrome/browser/performance_manager/mechanisms/page_discarder.cc.no_matching_constructor	2024-05-29 18:00:54.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/performance_manager/mechanisms/page_discarder.cc	2024-06-02 23:51:25.490915438 +0200
+@@ -53,7 +53,7 @@ std::vector<PageDiscarder::DiscardEvent>
+     if (lifecycle_unit->DiscardTab(
+             discard_reason,
+             /*memory_footprint_estimate=*/proxy.second)) {
+-      discard_events.emplace_back(base::TimeTicks::Now(), proxy.second);
++      discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second};
+     }
+   }
+   return discard_events;
+diff -up chromium-126.0.6478.26/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+--- chromium-126.0.6478.26/chrome/browser/renderer_context_menu/render_view_context_menu.cc.no_matching_constructor	2024-05-29 18:00:54.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/renderer_context_menu/render_view_context_menu.cc	2024-06-02 23:51:25.492915486 +0200
+@@ -4044,10 +4044,10 @@ void RenderViewContextMenu::ExecOpenComp
+     autofill::LocalFrameToken frame_token = driver->GetFrameToken();
+     client->GetManager().OpenCompose(
+         *driver,
+-        autofill::FormGlobalId(
+-            frame_token, autofill::FormRendererId(params_.form_renderer_id)),
+-        autofill::FieldGlobalId(
+-            frame_token, autofill::FieldRendererId(params_.field_renderer_id)),
++        autofill::FormGlobalId{
++            frame_token, autofill::FormRendererId(params_.form_renderer_id)},
++        autofill::FieldGlobalId{
++            frame_token, autofill::FieldRendererId(params_.field_renderer_id)},
+         compose::ComposeManagerImpl::UiEntryPoint::kContextMenu);
+     GetBrowser()->window()->NotifyPromoFeatureUsed(
+         compose::features::kEnableCompose);
+diff -up chromium-126.0.6478.26/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/autofill/autofill_context_menu_manager.cc	2024-06-02 23:51:25.492915486 +0200
+@@ -383,8 +383,8 @@ void AutofillContextMenuManager::Execute
+     AutofillManager& manager) {
+   auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
+   driver.browser_events().RendererShouldTriggerSuggestions(
+-      FieldGlobalId(driver.GetFrameToken(),
+-                    FieldRendererId(params_.field_renderer_id)),
++      FieldGlobalId{driver.GetFrameToken(),
++                    FieldRendererId(params_.field_renderer_id)},
+       AutofillSuggestionTriggerSource::kManualFallbackPayments);
+   LogManualFallbackContextMenuEntryAccepted(
+       static_cast<BrowserAutofillManager&>(manager),
+diff -up chromium-126.0.6478.26/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor	2024-05-29 18:00:58.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/omnibox/chrome_omnibox_client.cc	2024-06-02 23:51:25.492915486 +0200
+@@ -512,10 +512,10 @@ void ChromeOmniboxClient::OnAutocomplete
+               alternative_nav_match);
+ 
+   // Store the details necessary to open the omnibox match via browser commands.
+-  location_bar_->set_navigation_params(LocationBar::NavigationParams(
++  location_bar_->set_navigation_params(LocationBar::NavigationParams{
+       destination_url, disposition, transition, match_selection_timestamp,
+       destination_url_entered_without_scheme,
+-      destination_url_entered_with_http_scheme, match.extra_headers));
++      destination_url_entered_with_http_scheme, match.extra_headers});
+ 
+   if (browser_) {
+     auto navigation = chrome::OpenCurrentURL(browser_);
+diff -up chromium-126.0.6478.26/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/safety_hub/menu_notification_service.h
+--- chromium-126.0.6478.26/chrome/browser/ui/safety_hub/menu_notification_service.h.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/safety_hub/menu_notification_service.h	2024-06-02 23:51:25.493915509 +0200
+@@ -24,6 +24,7 @@ struct MenuNotificationEntry {
+   int command = 0;
+   std::u16string label;
+   safety_hub::SafetyHubModuleType module;
++  MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { }
+ };
+ 
+ namespace {
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/frame/contents_layout_manager.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/frame/contents_layout_manager.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/frame/contents_layout_manager.cc	2024-06-02 23:51:25.493915509 +0200
+@@ -44,20 +44,20 @@ views::ProposedLayout ContentsLayoutMana
+ 
+   // DevTools cares about the specific position, so we have to compensate RTL
+   // layout here.
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       devtools_view_.get(), devtools_view_->GetVisible(),
+       host_view()->GetMirroredRect(new_devtools_bounds),
+-      views::SizeBounds(container_size));
+-  layouts.child_layouts.emplace_back(
++      views::SizeBounds(container_size)};
++  layouts.child_layouts.emplace_back() = {
+       contents_view_.get(), contents_view_->GetVisible(),
+       host_view()->GetMirroredRect(new_contents_bounds),
+-      views::SizeBounds(container_size));
++      views::SizeBounds(container_size)};
+ 
+   // Enterprise watermark view is always overlaid, even when empty.
+   if (watermark_view_) {
+-    layouts.child_layouts.emplace_back(
++    layouts.child_layouts.emplace_back() = {
+         watermark_view_.get(), watermark_view_->GetVisible(),
+-        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size));
++        gfx::Rect(0, 0, width, height), views::SizeBounds(container_size)};
+   }
+   layouts.host_size = gfx::Size(width, height);
+   return layouts;
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc	2024-06-03 18:31:02.456804349 +0200
+@@ -78,8 +78,8 @@ EmbeddedPermissionPromptAskView::GetButt
+       buttons.push_back(allow_always);
+     }
+   } else {
+-    buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+-                         ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId);
++    buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
++                         ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId};
+   }
+   return buttons;
+ }
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
+--- chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h	2024-06-02 23:51:25.494915534 +0200
+@@ -87,6 +87,7 @@ class EmbeddedPermissionPromptBaseView :
+   struct RequestLineConfiguration {
+     const raw_ptr<const gfx::VectorIcon> icon;
+     std::u16string message;
++    RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
+   };
+ 
+   struct ButtonConfiguration {
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc	2024-06-02 23:51:25.494915534 +0200
+@@ -88,8 +88,8 @@ EmbeddedPermissionPromptPolicyView::GetR
+ std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
+ EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
+-                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
++  buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
++                       ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
+   return buttons;
+ }
+ 
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc	2024-06-02 23:51:25.494915534 +0200
+@@ -66,13 +66,13 @@ EmbeddedPermissionPromptPreviouslyDenied
+ std::vector<EmbeddedPermissionPromptPreviouslyDeniedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING),
+-      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal);
++      ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal};
+ 
+-    buttons.emplace_back(
++    buttons.emplace_back() = {
+         l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
+-        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId);
++        ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId};
+ 
+   return buttons;
+ }
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc	2024-06-02 23:51:25.495915557 +0200
+@@ -77,13 +77,13 @@ EmbeddedPermissionPromptPreviouslyGrante
+ std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
+ EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
+   std::vector<ButtonConfiguration> buttons;
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
+       ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal,
+-      kContinueAllowingId);
++      kContinueAllowingId};
+ 
+-  buttons.emplace_back(
++  buttons.emplace_back() = {
+       l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
+-      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId);
++      ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
+   return buttons;
+ }
+diff -up chromium-126.0.6478.26/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/views/tabs/tab_style_views.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/views/tabs/tab_style_views.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/views/tabs/tab_style_views.cc	2024-06-02 23:51:25.495915557 +0200
+@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G
+ 
+     // Radii are clockwise from top left.
+     const SkVector radii[4] = {
+-        SkVector(top_content_corner_radius, top_content_corner_radius),
+-        SkVector(top_content_corner_radius, top_content_corner_radius),
+-        SkVector(bottom_content_corner_radius, bottom_content_corner_radius),
+-        SkVector(bottom_content_corner_radius, bottom_content_corner_radius)};
++        SkVector{top_content_corner_radius, top_content_corner_radius},
++        SkVector{top_content_corner_radius, top_content_corner_radius},
++        SkVector{bottom_content_corner_radius, bottom_content_corner_radius},
++        SkVector{bottom_content_corner_radius, bottom_content_corner_radius}};
+     SkRRect rrect;
+     rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii);
+     SkPath path;
+diff -up chromium-126.0.6478.26/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor chromium-126.0.6478.26/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
+--- chromium-126.0.6478.26/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/web_applications/sub_apps_service_impl.cc	2024-06-02 23:51:25.496915581 +0200
+@@ -108,7 +108,7 @@ AddOptionsFromMojo(
+                      ConvertPathToUrl(sub_app->manifest_id_path, origin));
+     ASSIGN_OR_RETURN(GURL install_url,
+                      ConvertPathToUrl(sub_app->install_url_path, origin));
+-    sub_apps.emplace_back(std::move(manifest_id), std::move(install_url));
++    sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)};
+   }
+   return sub_apps;
+ }
+@@ -440,7 +440,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
+         base::BindOnce(
+             [](webapps::ManifestId manifest_id, const webapps::AppId& app_id,
+                webapps::InstallResultCode result_code) {
+-              return SubAppInstallResult(manifest_id, app_id, result_code);
++              return SubAppInstallResult{manifest_id, app_id, result_code};
+             },
+             manifest_id)
+             .Then(concurrent.CreateCallback()),
+diff -up chromium-126.0.6478.26/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-126.0.6478.26/chrome/test/chromedriver/capabilities.cc
+--- chromium-126.0.6478.26/chrome/test/chromedriver/capabilities.cc.no_matching_constructor	2024-05-29 18:01:01.000000000 +0200
++++ chromium-126.0.6478.26/chrome/test/chromedriver/capabilities.cc	2024-06-02 23:51:25.496915581 +0200
+@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);
+diff -up chromium-126.0.6478.26/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor chromium-126.0.6478.26/components/attribution_reporting/aggregatable_utils.cc
+--- chromium-126.0.6478.26/components/attribution_reporting/aggregatable_utils.cc.no_matching_constructor	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/attribution_reporting/aggregatable_utils.cc	2024-06-02 23:51:25.497915604 +0200
+@@ -33,7 +33,7 @@ std::vector<NullAggregatableReport> GetN
+     }
+ 
+     if (generate_func(i)) {
+-      reports.emplace_back(fake_source_time);
++      reports.emplace_back() = {fake_source_time};
+     }
+   }
+   return reports;
+diff -up chromium-126.0.6478.26/components/attribution_reporting/registration_info.cc.no_matching_constructor chromium-126.0.6478.26/components/attribution_reporting/registration_info.cc
+--- chromium-126.0.6478.26/components/attribution_reporting/registration_info.cc.no_matching_constructor	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/attribution_reporting/registration_info.cc	2024-06-02 23:51:25.497915604 +0200
+@@ -96,7 +96,7 @@ RegistrationInfo::ParseInfo(const net::s
+ 
+   ASSIGN_OR_RETURN(bool report_header_errors, ParseReportHeaderErrors(dict));
+ 
+-  return RegistrationInfo(preferred_platform, report_header_errors);
++  return RegistrationInfo{preferred_platform, report_header_errors};
+ }
+ 
+ }  // namespace attribution_reporting
+diff -up chromium-126.0.6478.26/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor chromium-126.0.6478.26/components/autofill/content/renderer/form_autofill_util.cc
+--- chromium-126.0.6478.26/components/autofill/content/renderer/form_autofill_util.cc.no_matching_constructor	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/content/renderer/form_autofill_util.cc	2024-06-02 23:51:25.497915604 +0200
+@@ -2279,7 +2279,7 @@ std::vector<std::pair<FieldRef, WebAutof
+     if (element.Focused()) {
+       focused_field = {&field, element};
+     } else {
+-      unfocused_fields.emplace_back(&field, element);
++      unfocused_fields.emplace_back() = {&field, element};
+     }
+   }
+ 
+diff -up chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc
+--- chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.no_matching_constructor	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc	2024-06-02 23:51:25.497915604 +0200
+@@ -635,10 +635,10 @@ std::unique_ptr<AutofillProfile> Address
+     }
+ 
+     base::span<const uint8_t> observations_data = s.ColumnBlob(3);
+-    field_type_values.emplace_back(
++    field_type_values.emplace_back() = {
+         type, s.ColumnString16(1), s.ColumnInt(2),
+         std::vector<uint8_t>(observations_data.begin(),
+-                             observations_data.end()));
++                             observations_data.end())};
+ 
+     if (type == ADDRESS_HOME_COUNTRY) {
+       country_code = base::UTF16ToUTF8(s.ColumnString16(1));
+diff -up chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc
+--- chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.no_matching_constructor	2024-05-29 18:01:05.000000000 +0200
++++ chromium-126.0.6478.26/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc	2024-06-02 23:51:25.498915629 +0200
+@@ -169,9 +169,9 @@ class ContactInfoProfileSetter {
+       CHECK(observations.empty());
+       for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+            metadata.observations()) {
+-        observations.emplace_back(proto_observation.type(),
++        observations.emplace_back() = {proto_observation.type(),
+                                   ProfileTokenQuality::FormSignatureHash(
+-                                      proto_observation.form_hash()));
++                                      proto_observation.form_hash())};
+       }
+     }
+   }
+diff -up chromium-126.0.6478.26/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor chromium-126.0.6478.26/components/invalidation/impl/fcm_invalidation_service.cc
+--- chromium-126.0.6478.26/components/invalidation/impl/fcm_invalidation_service.cc.no_matching_constructor	2024-05-29 18:01:06.000000000 +0200
++++ chromium-126.0.6478.26/components/invalidation/impl/fcm_invalidation_service.cc	2024-06-02 23:51:25.498915629 +0200
+@@ -98,7 +98,7 @@ bool FCMInvalidationService::UpdateInter
+   DVLOG(2) << "Subscribing to topics: " << topic_set.size();
+   TopicMap topic_map;
+   for (const auto& topic_name : topic_set) {
+-    topic_map[topic_name] = TopicMetadata(handler->IsPublicTopic(topic_name));
++    topic_map[topic_name] = TopicMetadata{handler->IsPublicTopic(topic_name)};
+   }
+   // TODO(crbug.com/40675708): UpdateRegisteredTopics() should be renamed to
+   // clarify that it actually updates whether topics need subscription (aka
+diff -up chromium-126.0.6478.26/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor chromium-126.0.6478.26/components/memory_pressure/unnecessary_discard_monitor.cc
+--- chromium-126.0.6478.26/components/memory_pressure/unnecessary_discard_monitor.cc.no_matching_constructor	2024-05-29 18:01:07.000000000 +0200
++++ chromium-126.0.6478.26/components/memory_pressure/unnecessary_discard_monitor.cc	2024-06-02 23:51:25.498915629 +0200
+@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+   if (current_reclaim_event_) {
+     // Cache this kill event along with the time it took place.
+-    current_reclaim_event_kills_.emplace_back(memory_freed_kb,
+-                                              discard_complete_time);
++    current_reclaim_event_kills_.emplace_back() = {memory_freed_kb,
++                                              discard_complete_time};
+   }
+ }
+ 
+diff -up chromium-126.0.6478.26/components/password_manager/core/browser/password_manager.cc.no_matching_constructor chromium-126.0.6478.26/components/password_manager/core/browser/password_manager.cc
+--- chromium-126.0.6478.26/components/password_manager/core/browser/password_manager.cc.no_matching_constructor	2024-05-29 18:01:07.000000000 +0200
++++ chromium-126.0.6478.26/components/password_manager/core/browser/password_manager.cc	2024-06-02 23:51:25.498915629 +0200
+@@ -686,7 +686,7 @@ void PasswordManager::OnUserModifiedNonP
+     it->second.last_change = base::Time::Now();
+   } else {
+     possible_usernames_.Put(
+-        PossibleUsernameFieldIdentifier(driver_id, renderer_id),
++        PossibleUsernameFieldIdentifier{driver_id, renderer_id},
+         PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
+                              renderer_id, value, base::Time::Now(), driver_id,
+                              autocomplete_attribute_has_username,
+diff -up chromium-126.0.6478.26/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor chromium-126.0.6478.26/components/password_manager/core/browser/password_suggestion_generator.cc
+--- chromium-126.0.6478.26/components/password_manager/core/browser/password_suggestion_generator.cc.no_matching_constructor	2024-05-29 18:01:07.000000000 +0200
++++ chromium-126.0.6478.26/components/password_manager/core/browser/password_suggestion_generator.cc	2024-06-03 18:08:15.650577186 +0200
+@@ -156,7 +156,7 @@ void MaybeAppendManagePasswordsEntry(std
+       SuggestionType::kAllSavedPasswordsEntry);
+   // The UI code will pick up an icon from the resources based on the string.
+   suggestion.trailing_icon = Suggestion::Icon::kGooglePasswordManager;
+-  suggestions->emplace_back(std::move(suggestion));
++  suggestions->emplace_back() = {std::move(suggestion)};
+ }
+ 
+ // If |field_suggestion| matches |field_content|, creates a Suggestion out of it
+@@ -201,7 +201,7 @@ void AppendSuggestionIfMatching(const st
+       suggestion.trailing_icon = CreateStoreIcon(from_account_store);
+     }
+ #endif
+-    suggestions->emplace_back(std::move(suggestion));
++    suggestions->emplace_back() = {std::move(suggestion)};
+   }
+ }
+ 
+@@ -233,8 +233,8 @@ void GetSuggestions(const autofill::Pass
+ 
+ void AddPasswordUsernameChildSuggestion(const std::u16string& username,
+                                         Suggestion& suggestion) {
+-  suggestion.children.emplace_back(
+-      username, SuggestionType::kPasswordFieldByFieldFilling);
++  suggestion.children.emplace_back() = {
++      username, SuggestionType::kPasswordFieldByFieldFilling};
+ }
+ 
+ void AddFillPasswordChildSuggestion(Suggestion& suggestion,
+@@ -244,11 +244,11 @@ void AddFillPasswordChildSuggestion(Sugg
+       l10n_util::GetStringUTF16(
+           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_FILL_PASSWORD_ENTRY),
+       SuggestionType::kFillPassword);
+-  fill_password.payload = Suggestion::PasswordSuggestionDetails(
++  fill_password.payload = Suggestion::PasswordSuggestionDetails{
+       credential.password,
+       GetHumanReadableRealm(credential.GetFirstSignonRealm()),
+-      is_cross_origin.value());
+-  suggestion.children.emplace_back(std::move(fill_password));
++      is_cross_origin.value()};
++  suggestion.children.emplace_back() = {std::move(fill_password)};
+ }
+ 
+ void AddViewPasswordDetailsChildSuggestion(Suggestion& suggestion) {
+@@ -257,7 +257,7 @@ void AddViewPasswordDetailsChildSuggesti
+           IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_VIEW_DETAILS_ENTRY),
+       SuggestionType::kViewPasswordDetails);
+   view_password_details.icon = Suggestion::Icon::kKey;
+-  suggestion.children.emplace_back(std::move(view_password_details));
++  suggestion.children.emplace_back() = {std::move(view_password_details)};
+ }
+ 
+ void AppendManualFallbackSuggestions(const CredentialUIEntry& credential,
+@@ -278,9 +278,9 @@ void AppendManualFallbackSuggestions(con
+     const std::u16string maybe_username =
+         ReplaceEmptyUsername(credential.username, &replaced);
+     suggestion.additional_label = maybe_username;
+-    suggestion.payload = Suggestion::PasswordSuggestionDetails(
++    suggestion.payload = Suggestion::PasswordSuggestionDetails{
+         credential.password, base::UTF8ToUTF16(kDisplaySingonRealm),
+-        is_cross_origin.value());
++        is_cross_origin.value()};
+     suggestion.is_acceptable = on_password_form.value();
+ 
+     if (!replaced) {
+@@ -290,7 +290,7 @@ void AppendManualFallbackSuggestions(con
+     suggestion.children.emplace_back(SuggestionType::kSeparator);
+     AddViewPasswordDetailsChildSuggestion(suggestion);
+ 
+-    suggestions->emplace_back(std::move(suggestion));
++    suggestions->emplace_back() = {std::move(suggestion)};
+   }
+ }
+ 
+@@ -363,27 +363,27 @@ std::vector<Suggestion> PasswordSuggesti
+   if (uses_passkeys && delegate->OfferPasskeysFromAnotherDeviceOption()) {
+     bool listed_passkeys = delegate->GetPasskeys().has_value() &&
+                            delegate->GetPasskeys()->size() > 0;
+-    suggestions.emplace_back(CreateWebAuthnEntry(listed_passkeys));
++    suggestions.emplace_back() = {CreateWebAuthnEntry(listed_passkeys)};
+   }
+ #endif
+ 
+   // Add password generation entry, if available.
+   if (offers_generation) {
+-    suggestions.emplace_back(
+-        show_account_storage_optin
++    suggestions.emplace_back() =
++        {show_account_storage_optin
+             ? CreateEntryToOptInToAccountStorageThenGenerate()
+-            : CreateGenerationEntry());
++            : CreateGenerationEntry()};
+   }
+ 
+   // Add button to opt into using the account storage for passwords and then
+   // suggest.
+   if (show_account_storage_optin) {
+-    suggestions.emplace_back(CreateEntryToOptInToAccountStorageThenFill());
++    suggestions.emplace_back() = {CreateEntryToOptInToAccountStorageThenFill()};
+   }
+ 
+   // Add button to sign-in which unlocks the previously used account store.
+   if (show_account_storage_resignin) {
+-    suggestions.emplace_back(CreateEntryToReSignin());
++    suggestions.emplace_back() = {CreateEntryToReSignin()};
+   }
+ 
+   // Add "Manage all passwords" link to settings.
+@@ -401,10 +401,10 @@ PasswordSuggestionGenerator::GetManualFa
+   const bool generate_sections =
+       !suggested_credentials.empty() && !credentials.empty();
+   if (generate_sections) {
+-    suggestions.emplace_back(
++    suggestions.emplace_back() = {
+         l10n_util::GetStringUTF16(
+             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_SUGGESTED_PASSWORDS_SECTION_TITLE),
+-        SuggestionType::kTitle);
++        SuggestionType::kTitle};
+   }
+ 
+   std::set<std::string> suggested_signon_realms;
+@@ -415,10 +415,10 @@ PasswordSuggestionGenerator::GetManualFa
+   }
+ 
+   if (generate_sections) {
+-    suggestions.emplace_back(
++    suggestions.emplace_back() = {
+         l10n_util::GetStringUTF16(
+             IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_ALL_PASSWORDS_SECTION_TITLE),
+-        SuggestionType::kTitle);
++        SuggestionType::kTitle};
+   }
+ 
+   // Only the "All passwords" section should be sorted alphabetically.
+diff -up chromium-126.0.6478.26/components/performance_manager/worker_watcher.cc.no_matching_constructor chromium-126.0.6478.26/components/performance_manager/worker_watcher.cc
+--- chromium-126.0.6478.26/components/performance_manager/worker_watcher.cc.no_matching_constructor	2024-05-29 18:01:08.000000000 +0200
++++ chromium-126.0.6478.26/components/performance_manager/worker_watcher.cc	2024-06-02 23:51:25.499915653 +0200
+@@ -244,7 +244,7 @@ void WorkerWatcher::OnWorkerCreated(
+   DCHECK(insertion_result.second);
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&,
+            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+             AddFrameClientConnection(insertion_result.first->second.get(),
+@@ -253,7 +253,7 @@ void WorkerWatcher::OnWorkerCreated(
+           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+             ConnectDedicatedWorkerClient(insertion_result.first->second.get(),
+                                          dedicated_worker_token);
+-          }),
++          }},
+       creator);
+ }
+ 
+@@ -270,7 +270,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+   // First disconnect the creator's node from this worker node.
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&,
+            this](const content::GlobalRenderFrameHostId& render_frame_host_id) {
+             RemoveFrameClientConnection(worker_node.get(),
+@@ -279,7 +279,7 @@ void WorkerWatcher::OnBeforeWorkerDestro
+           [&, this](blink::DedicatedWorkerToken dedicated_worker_token) {
+             DisconnectDedicatedWorkerClient(worker_node.get(),
+                                             dedicated_worker_token);
+-          }),
++          }},
+       creator);
+ 
+   // Disconnect all child workers before destroying the node.
+@@ -456,7 +456,7 @@ void WorkerWatcher::OnControlleeAdded(
+     const std::string& client_uuid,
+     const content::ServiceWorkerClientInfo& client_info) {
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+             // For window clients, it is necessary to wait until the navigation
+             // has committed to a RenderFrameHost.
+@@ -494,7 +494,7 @@ void WorkerWatcher::OnControlleeAdded(
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+             }
+-          }),
++          }},
+       client_info);
+ }
+ 
+@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved(
+     return;
+ 
+   absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+             RemoveFrameClientConnection(worker_node, render_frame_host_id);
+           },
+@@ -544,7 +544,7 @@ void WorkerWatcher::OnControlleeRemoved(
+           },
+           [&, this](blink::SharedWorkerToken shared_worker_token) {
+             DisconnectSharedWorkerClient(worker_node, shared_worker_token);
+-          }),
++          }},
+       client);
+ }
+ 
+@@ -820,7 +820,7 @@ void WorkerWatcher::ConnectAllServiceWor
+ 
+   for (const auto& kv : it->second) {
+     absl::visit(
+-        base::Overloaded(
++        base::Overloaded{
+             [&, this](content::GlobalRenderFrameHostId render_frame_host_id) {
+               AddFrameClientConnection(service_worker_node,
+                                        render_frame_host_id);
+@@ -832,7 +832,7 @@ void WorkerWatcher::ConnectAllServiceWor
+             [&, this](blink::SharedWorkerToken shared_worker_token) {
+               ConnectSharedWorkerClient(service_worker_node,
+                                         shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+@@ -847,7 +847,7 @@ void WorkerWatcher::DisconnectAllService
+ 
+   for (const auto& kv : it->second) {
+     absl::visit(
+-        base::Overloaded(
++        base::Overloaded{
+             [&, this](
+                 const content::GlobalRenderFrameHostId& render_frame_host_id) {
+               RemoveFrameClientConnection(service_worker_node,
+@@ -861,7 +861,7 @@ void WorkerWatcher::DisconnectAllService
+             [&, this](const blink::SharedWorkerToken& shared_worker_token) {
+               DisconnectSharedWorkerClient(service_worker_node,
+                                            shared_worker_token);
+-            }),
++            }},
+         kv.second);
+   }
+ }
+diff -up chromium-126.0.6478.26/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-126.0.6478.26/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+--- chromium-126.0.6478.26/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc	2024-06-02 23:51:25.499915653 +0200
+@@ -1719,7 +1719,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
+ 
+       // Issue readbacks from the surfaces:
+       for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
+-        SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
++        SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
+         SkImageInfo dst_info = SkImageInfo::Make(
+             size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
+             kUnpremul_SkAlphaType);
+diff -up chromium-126.0.6478.26/content/browser/download/save_package.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/download/save_package.cc
+--- chromium-126.0.6478.26/content/browser/download/save_package.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/download/save_package.cc	2024-06-02 23:51:25.500915676 +0200
+@@ -802,8 +802,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> files;
+     for (auto& item : saved_success_items_) {
+-      files.emplace_back(item.second->full_path(), item.second->url(),
+-                         item.second->referrer().url);
++      files.emplace_back() = {item.second->full_path(), item.second->url(),
++                         item.second->referrer().url};
+     }
+     download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
+   }
+diff -up chromium-126.0.6478.26/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/fenced_frame/fenced_frame_config.cc
+--- chromium-126.0.6478.26/content/browser/fenced_frame/fenced_frame_config.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/fenced_frame/fenced_frame_config.cc	2024-06-02 23:51:25.500915676 +0200
+@@ -407,7 +407,7 @@ void FencedFrameProperties::UpdateParent
+         feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(),
+         allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc());
+   }
+-  parent_permissions_info_.emplace(parsed_policies, parent_origin);
++  parent_permissions_info_.emplace() = {parsed_policies, parent_origin};
+ }
+ 
+ }  // namespace content
+diff -up chromium-126.0.6478.26/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/first_party_sets/first_party_set_parser.cc
+--- chromium-126.0.6478.26/content/browser/first_party_sets/first_party_set_parser.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/first_party_sets/first_party_set_parser.cc	2024-06-02 23:51:25.501915701 +0200
+@@ -774,7 +774,7 @@ FirstPartySetParser::ParseSetsFromEnterp
+                      context.GetPolicySetsFromList(
+                          policy.FindList(kFirstPartySetPolicyAdditionsField),
+                          PolicySetType::kAddition));
+-    return ParsedPolicySetLists(std::move(replacements), std::move(additions));
++    return ParsedPolicySetLists{std::move(replacements), std::move(additions)};
+   }();
+ 
+   context.PostProcessSetLists(set_lists);
+diff -up chromium-126.0.6478.26/content/browser/gpu/compositor_util.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/gpu/compositor_util.cc
+--- chromium-126.0.6478.26/content/browser/gpu/compositor_util.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/gpu/compositor_util.cc	2024-06-02 23:51:25.501915701 +0200
+@@ -108,7 +108,7 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       *base::CommandLine::ForCurrentProcess();
+ 
+   std::vector<GpuFeatureData> features;
+-  features.emplace_back(
++  features.emplace_back() = {
+       "2d_canvas",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS,
+@@ -116,13 +116,13 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated 2D canvas is unavailable: either disabled "
+           "via blocklist or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "canvas_oop_rasterization",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION,
+-          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas)));
+-  features.emplace_back(
++          command_line.HasSwitch(switches::kDisableAccelerated2dCanvas))};
++  features.emplace_back() = {
+       "gpu_compositing",
+       // TODO(rivr): Replace with a check to see which backend is used for
+       // compositing; do the same for GPU rasterization if it's enabled. For
+@@ -136,16 +136,16 @@ std::vector<GpuFeatureData> GetGpuFeatur
+           "about:flags "
+           "or the command line. The browser will fall back to software "
+           "compositing and hardware acceleration will be unavailable."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "webgl",
+       SafeGetFeatureStatus(gpu_feature_info,
+                            gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL,
+                            command_line.HasSwitch(switches::kDisableWebGL)),
+       DisableInfo::Problem(
+           "WebGL has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {
+       "video_decode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE,
+@@ -156,8 +156,8 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated video decode has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "video_encode",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE,
+@@ -169,33 +169,33 @@ std::vector<GpuFeatureData> GetGpuFeatur
+       DisableInfo::Problem(
+           "Accelerated video encode has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "rasterization",
+       SafeGetFeatureStatus(gpu_feature_info,
+                            gpu::GPU_FEATURE_TYPE_GPU_TILE_RASTERIZATION),
+       DisableInfo::Problem(
+           "Accelerated rasterization has been disabled, either via blocklist, "
+           "about:flags or the command line."),
+-      true);
+-  features.emplace_back(
++      true};
++  features.emplace_back() = {
+       "opengl", SafeGetFeatureStatus(gpu_feature_info,
+-                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL));
++                                     gpu::GPU_FEATURE_TYPE_ACCELERATED_GL)};
+ #if BUILDFLAG(ENABLE_VULKAN)
+-  features.emplace_back(
++  features.emplace_back() = {
+       "vulkan",
+-      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN));
++      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_VULKAN)};
+ #endif
+-  features.emplace_back(
++  features.emplace_back() = {
+       "multiple_raster_threads",
+-      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1));
++      GetFakeFeatureStatus(NumberOfRendererRasterThreads() > 1)};
+ #if BUILDFLAG(IS_ANDROID)
+-  features.emplace_back(
++  features.emplace_back() = {
+       "surface_control",
+       SafeGetFeatureStatus(gpu_feature_info,
+-                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL));
++                           gpu::GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL)};
+ #endif
+-  features.emplace_back(
++  features.emplace_back() = {
+       "webgl2",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGL2,
+@@ -203,12 +203,12 @@ std::vector<GpuFeatureData> GetGpuFeatur
+               command_line.HasSwitch(switches::kDisableWebGL2)),
+       DisableInfo::Problem(
+           "WebGL2 has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back("raw_draw",
+-                        GetFakeFeatureStatus(features::IsUsingRawDraw()));
+-  features.emplace_back("direct_rendering_display_compositor",
+-                        GetFakeFeatureStatus(features::IsDrDcEnabled()));
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {"raw_draw",
++                        GetFakeFeatureStatus(features::IsUsingRawDraw())};
++  features.emplace_back() = {"direct_rendering_display_compositor",
++                        GetFakeFeatureStatus(features::IsDrDcEnabled())};
++  features.emplace_back() = {
+       "webgpu",
+       SafeGetFeatureStatus(
+           gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_WEBGPU,
+@@ -216,14 +216,14 @@ std::vector<GpuFeatureData> GetGpuFeatur
+               !base::FeatureList::IsEnabled(::features::kWebGPUService)),
+       DisableInfo::Problem(
+           "WebGPU has been disabled via blocklist or the command line."),
+-      false);
+-  features.emplace_back(
++      false};
++  features.emplace_back() = {
+       "skia_graphite",
+       SafeGetFeatureStatus(gpu_feature_info,
+-                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE));
+-  features.emplace_back(
++                           gpu::GPU_FEATURE_TYPE_SKIA_GRAPHITE)};
++  features.emplace_back() = {
+       "webnn",
+-      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN));
++      SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_WEBNN)};
+   return features;
+ }
+ 
+diff -up chromium-126.0.6478.26/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor chromium-126.0.6478.26/content/browser/interest_group/header_direct_from_seller_signals.h
+--- chromium-126.0.6478.26/content/browser/interest_group/header_direct_from_seller_signals.h.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/interest_group/header_direct_from_seller_signals.h	2024-06-02 23:51:25.501915701 +0200
+@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel
+ 
+     // The Ad-Auction-Signals response served by `origin`.
+     std::string response_json;
++    UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { }
+   };
+ 
+   // Information from ParseAndFind() calls used by ParseAndFindCompleted.
+diff -up chromium-126.0.6478.26/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/interest_group/interest_group_auction.cc
+--- chromium-126.0.6478.26/content/browser/interest_group/interest_group_auction.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/interest_group/interest_group_auction.cc	2024-06-02 23:51:25.503915748 +0200
+@@ -616,7 +616,7 @@ bool SampleDebugReport(
+        blink::features::kFledgeDebugReportRestrictedCooldown.Get() !=
+            base::Milliseconds(0))) {
+     new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
+-        DebugReportCooldown(now_nearest_next_hour, cooldown_type);
++        DebugReportCooldown{now_nearest_next_hour, cooldown_type};
+   }
+ 
+   return can_send_debug_report;
+diff -up chromium-126.0.6478.26/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/interest_group/interest_group_storage.cc
+--- chromium-126.0.6478.26/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/interest_group/interest_group_storage.cc	2024-06-04 13:23:48.279501017 +0200
+@@ -204,8 +204,8 @@ blink::InterestGroup::Ad FromInterestGro
+       for (const auto& origin : *maybe_allowed_reporting_origins) {
+         const std::string* origin_str = origin.GetIfString();
+         DCHECK(origin_str);
+-        allowed_reporting_origins_vector.emplace_back(
+-            DeserializeOrigin(*origin_str));
++        allowed_reporting_origins_vector.emplace_back() = {
++            DeserializeOrigin(*origin_str)};
+       }
+       result.allowed_reporting_origins =
+           std::move(allowed_reporting_origins_vector);
+@@ -249,7 +249,7 @@ std::optional<base::flat_map<std::string
+     if (!pair.second.is_double()) {
+       return std::nullopt;
+     }
+-    pairs.emplace_back(pair.first, pair.second.GetDouble());
++    pairs.emplace_back() = {pair.first, pair.second.GetDouble()};
+   }
+   return base::flat_map<std::string, double>(std::move(pairs));
+ }
+@@ -307,8 +307,8 @@ DeserializeInterestGroupAdVectorJson(con
+   for (const auto& ad_value : ads_value->GetList()) {
+     const base::Value::Dict* dict = ad_value.GetIfDict();
+     if (dict) {
+-      result.emplace_back(
+-          FromInterestGroupAdValue(passkey, *dict, for_components));
++      result.emplace_back() = {
++          FromInterestGroupAdValue(passkey, *dict, for_components)};
+     }
+   }
+   return result;
+@@ -352,8 +352,8 @@ DeserializeInterestGroupAdVectorProto(co
+           ad_proto.allowed_reporting_origins_size());
+       for (const std::string& allowed_reporting_origin :
+            ad_proto.allowed_reporting_origins()) {
+-        allowed_reporting_origins_vector.emplace_back(
+-            DeserializeOrigin(allowed_reporting_origin));
++        allowed_reporting_origins_vector.emplace_back() = {
++            DeserializeOrigin(allowed_reporting_origin)};
+       }
+       ad.allowed_reporting_origins =
+           std::move(allowed_reporting_origins_vector);
+@@ -400,13 +400,13 @@ DeserializeStringSizeMap(const std::stri
+     if (!width_val || !width_units_val || !height_val || !height_units_val) {
+       return std::nullopt;
+     }
+-    result.emplace_back(entry.first,
++    result.emplace_back() = {entry.first,
+                         blink::AdSize(width_val->GetDouble(),
+                                       static_cast<blink::AdSize::LengthUnit>(
+                                           width_units_val->GetInt()),
+                                       height_val->GetDouble(),
+                                       static_cast<blink::AdSize::LengthUnit>(
+-                                          height_units_val->GetInt())));
++                                          height_units_val->GetInt()))};
+   }
+   return result;
+ }
+@@ -440,9 +440,9 @@ DeserializeStringStringVectorMap(const s
+     DCHECK(list && list->is_list());
+     std::vector<std::string> result_sizes;
+     for (base::Value& size : list->GetList()) {
+-      result_sizes.emplace_back(size.GetString());
++      result_sizes.emplace_back() = {size.GetString()};
+     }
+-    result.emplace_back(entry.first, result_sizes);
++    result.emplace_back() = {entry.first, result_sizes};
+   }
+   return result;
+ }
+@@ -512,8 +512,8 @@ DeserializeSellerCapabilitiesMap(const s
+     if (!base::StringToInt64(*value_string, &value_bitmask)) {
+       return std::nullopt;
+     }
+-    result.emplace_back(DeserializeOrigin(entry.first),
+-                        DeserializeSellerCapabilities(value_bitmask));
++    result.emplace_back() = {DeserializeOrigin(entry.first),
++                        DeserializeSellerCapabilities(value_bitmask)};
+   }
+   return result;
+ }
+@@ -2499,7 +2499,7 @@ std::optional<std::vector<std::string>>
+     if (!DoRemoveInterestGroup(db, blink::InterestGroupKey(owner, name))) {
+       return std::nullopt;
+     }
+-    cleared_interest_groups.emplace_back(std::move(name));
++    cleared_interest_groups.emplace_back() = {std::move(name)};
+   }
+   if (!transaction.Commit()) {
+     return std::nullopt;
+@@ -3432,7 +3432,7 @@ bool DoRemoveInterestGroupsMatchingOwner
+   load.BindTime(2, expiring_after);
+ 
+   while (load.Step()) {
+-    owner_joiner_names.emplace_back(load.ColumnString(0));
++    owner_joiner_names.emplace_back() = {load.ColumnString(0)};
+   }
+ 
+   for (const auto& name : owner_joiner_names) {
+@@ -3462,8 +3462,8 @@ DoGetAllInterestGroupOwnerJoinerPairs(sq
+   load.Reset(true);
+   load.BindTime(0, expiring_after);
+   while (load.Step()) {
+-    result.emplace_back(DeserializeOrigin(load.ColumnString(0)),
+-                        DeserializeOrigin(load.ColumnString(1)));
++    result.emplace_back() = {DeserializeOrigin(load.ColumnString(0)),
++                        DeserializeOrigin(load.ColumnString(1))};
+   }
+   if (!load.Succeeded()) {
+     return std::nullopt;
+@@ -3596,9 +3596,9 @@ std::optional<DebugReportCooldown> DoGet
+     return std::nullopt;
+   }
+ 
+-  return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0),
++  return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0),
+                              static_cast<DebugReportCooldownType>(
+-                                 cooldown_debugging_only_report.ColumnInt(1)));
++                                 cooldown_debugging_only_report.ColumnInt(1))};
+ }
+ 
+ void DoGetDebugReportCooldowns(
+@@ -3726,10 +3726,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() = {
+         /*hashed_key=*/interest_group_kanon_query.ColumnString(0),
+         /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
+-        /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
++        /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
+   }
+   if (!interest_group_kanon_query.Succeeded()) {
+     return std::nullopt;
+@@ -3826,12 +3826,12 @@ DoGetInterestGroupsForUpdate(sql::Databa
+       continue;
+     }
+ 
+-    result.emplace_back(
++    result.emplace_back() = {
+         blink::InterestGroupKey(
+             owner, get_interest_group_update_parameters.ColumnString(0)),
+         update_url.value(),
+         DeserializeOrigin(
+-            get_interest_group_update_parameters.ColumnString(2)));
++            get_interest_group_update_parameters.ColumnString(2))};
+   }
+   if (!get_interest_group_update_parameters.Succeeded()) {
+     return std::nullopt;
+@@ -4080,8 +4080,8 @@ DoGetInterestGroupNamesForJoiningOrigin(
+   load.BindTime(1, now);
+ 
+   while (load.Step()) {
+-    result.emplace_back(DeserializeOrigin(load.ColumnString(0)),
+-                        load.ColumnString(1));
++    result.emplace_back() = {DeserializeOrigin(load.ColumnString(0)),
++                        load.ColumnString(1)};
+   }
+   if (!load.Succeeded()) {
+     return std::nullopt;
+@@ -4319,9 +4319,9 @@ bool ClearExpiredInterestGroups(sql::Dat
+   expired_interest_group.BindTime(0, expiration_before);
+   std::vector<blink::InterestGroupKey> expired_groups;
+   while (expired_interest_group.Step()) {
+-    expired_groups.emplace_back(
++    expired_groups.emplace_back() = {
+         DeserializeOrigin(expired_interest_group.ColumnString(0)),
+-        expired_interest_group.ColumnString(1));
++        expired_interest_group.ColumnString(1)};
+   }
+   if (!expired_interest_group.Succeeded()) {
+     DLOG(ERROR) << "ClearExpiredInterestGroups could not get expired groups.";
+@@ -4377,8 +4377,8 @@ bool ClearExcessiveStorage(sql::Database
+       cum_size = 0;
+     }
+     if (cum_size + group_size > max_owner_storage_size) {
+-      groups_to_remove.emplace_back(std::move(group_owner),
+-                                    std::move(group_name));
++      groups_to_remove.emplace_back() = {std::move(group_owner),
++                                    std::move(group_name)};
+     } else {
+       cum_size += group_size;
+     }
+@@ -4522,7 +4522,7 @@ DoGetBiddingAndAuctionServerKeys(sql::Da
+     std::vector<BiddingAndAuctionServerKey> keys;
+     keys.reserve(key_protos.keys_size());
+     for (auto& key_proto : *key_protos.mutable_keys()) {
+-      keys.emplace_back(std::move(*key_proto.mutable_key()), key_proto.id());
++      keys.emplace_back() = {std::move(*key_proto.mutable_key()), key_proto.id()};
+     }
+     return {expiration, keys};
+   }
+diff -up chromium-126.0.6478.26/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/renderer_host/render_frame_host_impl.cc
+--- chromium-126.0.6478.26/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/renderer_host/render_frame_host_impl.cc	2024-06-02 23:51:25.507915843 +0200
+@@ -8964,7 +8964,7 @@ void RenderFrameHostImpl::SendFencedFram
+   for (const blink::FencedFrame::ReportingDestination& destination :
+        destinations) {
+     SendFencedFrameReportingBeaconInternal(
+-        DestinationEnumEvent(event_type, event_data, cross_origin_exposed),
++        DestinationEnumEvent{event_type, event_data, cross_origin_exposed},
+         destination);
+   }
+ }
+@@ -8995,7 +8995,7 @@ void RenderFrameHostImpl::SendFencedFram
+   }
+ 
+   SendFencedFrameReportingBeaconInternal(
+-      DestinationURLEvent(destination_url, cross_origin_exposed),
++      DestinationURLEvent{destination_url, cross_origin_exposed},
+       blink::FencedFrame::ReportingDestination::kBuyer);
+ }
+ 
+@@ -9126,7 +9126,7 @@ void RenderFrameHostImpl::MaybeSendFence
+         data = info->data;
+       }
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          AutomaticBeaconEvent(event_type, data), destination,
++          AutomaticBeaconEvent{event_type, data}, destination,
+           navigation_request.GetNavigationId());
+     }
+   } else {
+@@ -9137,7 +9137,7 @@ void RenderFrameHostImpl::MaybeSendFence
+     for (blink::FencedFrame::ReportingDestination destination :
+          info->destinations) {
+       initiator_rfh->SendFencedFrameReportingBeaconInternal(
+-          AutomaticBeaconEvent(event_type, info->data), destination,
++          AutomaticBeaconEvent{event_type, info->data}, destination,
+           navigation_request.GetNavigationId());
+     }
+   }
+diff -up chromium-126.0.6478.26/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/service_worker/service_worker_container_host.cc
+--- chromium-126.0.6478.26/content/browser/service_worker/service_worker_container_host.cc.no_matching_constructor	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/service_worker/service_worker_container_host.cc	2024-06-02 23:51:25.508915867 +0200
+@@ -1076,7 +1076,7 @@ blink::mojom::ServiceWorkerClientType Se
+   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+   DCHECK(client_info_);
+   return absl::visit(
+-      base::Overloaded(
++      base::Overloaded{
+           [](GlobalRenderFrameHostId render_frame_host_id) {
+             return blink::mojom::ServiceWorkerClientType::kWindow;
+           },
+@@ -1085,7 +1085,7 @@ blink::mojom::ServiceWorkerClientType Se
+           },
+           [](blink::SharedWorkerToken shared_worker_token) {
+             return blink::mojom::ServiceWorkerClientType::kSharedWorker;
+-          }),
++          }},
+       *client_info_);
+ }
+ 
+diff -up chromium-126.0.6478.26/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc
+--- chromium-126.0.6478.26/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.no_matching_constructor	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc	2024-06-02 23:51:25.508915867 +0200
+@@ -370,10 +370,10 @@ ServiceWorkerMainResourceLoaderIntercept
+   }
+   auto* storage_partition = process->GetStoragePartition();
+ 
+-  return absl::visit(base::Overloaded([&, this](auto token) {
++  return absl::visit(base::Overloaded{[&, this](auto token) {
+                        return GetStorageKeyFromWorkerHost(storage_partition,
+                                                           token, origin);
+-                     }),
++                     }},
+                      *worker_token_);
+ }
+ 
+diff -up chromium-126.0.6478.26/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor chromium-126.0.6478.26/content/browser/worker_host/dedicated_worker_host.cc
+--- chromium-126.0.6478.26/content/browser/worker_host/dedicated_worker_host.cc.no_matching_constructor	2024-05-29 18:01:13.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/worker_host/dedicated_worker_host.cc	2024-06-02 23:51:25.509915891 +0200
+@@ -258,7 +258,7 @@ void DedicatedWorkerHost::StartScriptLoa
+   RenderFrameHostImpl* creator_render_frame_host = nullptr;
+   DedicatedWorkerHost* creator_worker = nullptr;
+ 
+-  absl::visit(base::Overloaded(
++  absl::visit(base::Overloaded{
+                   [&](const GlobalRenderFrameHostId& render_frame_host_id) {
+                     creator_render_frame_host =
+                         RenderFrameHostImpl::FromID(render_frame_host_id);
+@@ -266,7 +266,7 @@ void DedicatedWorkerHost::StartScriptLoa
+                   [&](blink::DedicatedWorkerToken dedicated_worker_token) {
+                     creator_worker = service_->GetDedicatedWorkerHostFromToken(
+                         dedicated_worker_token);
+-                  }),
++                  }},
+               creator_);
+ 
+   if (!creator_render_frame_host && !creator_worker) {
+diff -up chromium-126.0.6478.26/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor chromium-126.0.6478.26/extensions/browser/service_worker/service_worker_task_queue.cc
+--- chromium-126.0.6478.26/extensions/browser/service_worker/service_worker_task_queue.cc.no_matching_constructor	2024-05-29 18:01:23.000000000 +0200
++++ chromium-126.0.6478.26/extensions/browser/service_worker/service_worker_task_queue.cc	2024-06-02 23:51:25.509915891 +0200
+@@ -394,8 +394,8 @@ bool ServiceWorkerTaskQueue::IsReadyToRu
+     return false;
+   }
+ 
+-  const SequencedContextId context_id(extension->id(), browser_context_,
+-                                      *activation_token);
++  const SequencedContextId context_id{extension->id(), browser_context_,
++                                      *activation_token};
+   const WorkerState* worker_state = GetWorkerState(context_id);
+ 
+   if (!worker_state || !worker_state->worker_id_) {
+diff -up chromium-126.0.6478.26/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor chromium-126.0.6478.26/gpu/command_buffer/client/shared_image_interface.h
+--- chromium-126.0.6478.26/gpu/command_buffer/client/shared_image_interface.h.no_matching_constructor	2024-05-29 18:01:25.000000000 +0200
++++ chromium-126.0.6478.26/gpu/command_buffer/client/shared_image_interface.h	2024-06-02 23:51:25.510915914 +0200
+@@ -64,19 +64,19 @@ struct SharedImageInfo {
+                   SkAlphaType alpha_type,
+                   uint32_t usage,
+                   std::string_view debug_label)
+-      : meta(format, size, color_space, surface_origin, alpha_type, usage),
++      : meta{format, size, color_space, surface_origin, alpha_type, usage},
+         debug_label(debug_label) {}
+   SharedImageInfo(const viz::SharedImageFormat& format,
+                   gfx::Size size,
+                   const gfx::ColorSpace& color_space,
+                   uint32_t usage,
+                   std::string_view debug_label)
+-      : meta(format,
++      : meta{format,
+              size,
+              color_space,
+              kTopLeft_GrSurfaceOrigin,
+              kPremul_SkAlphaType,
+-             usage),
++             usage},
+         debug_label(debug_label) {}
+   // This constructor exists only to support the DEPRECATED CreareSharedImage
+   // call below that accepts a GpuMemoryBuffer. This should be removed when that
+diff -up chromium-126.0.6478.26/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor chromium-126.0.6478.26/gpu/command_buffer/service/shared_image_interface_in_process.cc
+--- chromium-126.0.6478.26/gpu/command_buffer/service/shared_image_interface_in_process.cc.no_matching_constructor	2024-05-29 18:01:26.000000000 +0200
++++ chromium-126.0.6478.26/gpu/command_buffer/service/shared_image_interface_in_process.cc	2024-06-02 23:51:25.510915914 +0200
+@@ -622,12 +622,12 @@ SharedImageInterfaceInProcess::CreateSha
+ 
+   return base::MakeRefCounted<ClientSharedImage>(
+       mailbox,
+-      SharedImageMetadata(
++      SharedImageMetadata{
+           viz::GetSinglePlaneSharedImageFormat(
+               GetPlaneBufferFormat(plane, gpu_memory_buffer->GetFormat())),
+           gpu_memory_buffer->GetSize(), si_info.meta.color_space,
+           si_info.meta.surface_origin, si_info.meta.alpha_type,
+-          si_info.meta.usage),
++          si_info.meta.usage},
+       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
+ }
+ 
+diff -up chromium-126.0.6478.26/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor chromium-126.0.6478.26/gpu/ipc/client/client_shared_image_interface.cc
+--- chromium-126.0.6478.26/gpu/ipc/client/client_shared_image_interface.cc.no_matching_constructor	2024-05-29 18:01:26.000000000 +0200
++++ chromium-126.0.6478.26/gpu/ipc/client/client_shared_image_interface.cc	2024-06-02 23:51:25.510915914 +0200
+@@ -251,11 +251,11 @@ scoped_refptr<ClientSharedImage> ClientS
+       AddMailbox(proxy_->CreateSharedImage(
+           buffer_format, plane, gpu_memory_buffer->GetSize(), si_info,
+           gpu_memory_buffer->CloneHandle())),
+-      SharedImageMetadata(viz::GetSinglePlaneSharedImageFormat(
++      SharedImageMetadata{viz::GetSinglePlaneSharedImageFormat(
+                               GetPlaneBufferFormat(plane, buffer_format)),
+                           gpu_memory_buffer->GetSize(),
+                           si_info.meta.color_space, si_info.meta.surface_origin,
+-                          si_info.meta.alpha_type, si_info.meta.usage),
++                          si_info.meta.alpha_type, si_info.meta.usage},
+       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
+ }
+ 
+@@ -297,13 +297,13 @@ ClientSharedImageInterface::CreateSwapCh
+   return ClientSharedImageInterface::SwapChainSharedImages(
+       base::MakeRefCounted<ClientSharedImage>(
+           mailboxes.front_buffer,
+-          SharedImageMetadata(format, size, color_space, surface_origin,
+-                              alpha_type, usage),
++          SharedImageMetadata{format, size, color_space, surface_origin,
++                              alpha_type, usage},
+           sync_token, holder_, gfx::EMPTY_BUFFER),
+       base::MakeRefCounted<ClientSharedImage>(
+           mailboxes.back_buffer,
+-          SharedImageMetadata(format, size, color_space, surface_origin,
+-                              alpha_type, usage),
++          SharedImageMetadata{format, size, color_space, surface_origin,
++                              alpha_type, usage},
+           sync_token, holder_, gfx::EMPTY_BUFFER));
+ }
+ 
+@@ -361,8 +361,8 @@ scoped_refptr<ClientSharedImage> ClientS
+ 
+   return base::MakeRefCounted<ClientSharedImage>(
+       mailbox,
+-      SharedImageMetadata(format, size, color_space, surface_origin, alpha_type,
+-                          usage),
++      SharedImageMetadata{format, size, color_space, surface_origin, alpha_type,
++                          usage},
+       GenUnverifiedSyncToken(), holder_, gfx::EMPTY_BUFFER);
+ }
+ 
+diff -up chromium-126.0.6478.26/gpu/ipc/service/gpu_channel_shared_image_interface.cc.no_matching_constructor chromium-126.0.6478.26/gpu/ipc/service/gpu_channel_shared_image_interface.cc
+--- chromium-126.0.6478.26/gpu/ipc/service/gpu_channel_shared_image_interface.cc.no_matching_constructor	2024-06-03 16:54:58.998196626 +0200
++++ chromium-126.0.6478.26/gpu/ipc/service/gpu_channel_shared_image_interface.cc	2024-06-03 16:55:23.722729949 +0200
+@@ -392,12 +392,12 @@ GpuChannelSharedImageInterface::CreateSh
+ 
+   return base::MakeRefCounted<ClientSharedImage>(
+       mailbox,
+-      SharedImageMetadata(
++      SharedImageMetadata{
+           viz::GetSinglePlaneSharedImageFormat(
+               GetPlaneBufferFormat(plane, gpu_memory_buffer->GetFormat())),
+           gpu_memory_buffer->GetSize(), si_info.meta.color_space,
+           si_info.meta.surface_origin, si_info.meta.alpha_type,
+-          si_info.meta.usage),
++          si_info.meta.usage},
+       GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType());
+ }
+ 
+diff -up chromium-126.0.6478.26/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-126.0.6478.26/net/dns/host_resolver_cache.cc
+--- chromium-126.0.6478.26/net/dns/host_resolver_cache.cc.no_matching_constructor	2024-05-29 18:01:34.000000000 +0200
++++ chromium-126.0.6478.26/net/dns/host_resolver_cache.cc	2024-06-02 23:51:25.511915939 +0200
+@@ -368,7 +368,7 @@ void HostResolverCache::Set(
+ 
+   std::string domain_name = result->domain_name();
+   entries_.emplace(
+-      Key(std::move(domain_name), network_anonymization_key),
++      Key{std::move(domain_name), network_anonymization_key},
+       Entry(std::move(result), source, secure, staleness_generation));
+ 
+   if (entries_.size() > max_entries_) {
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor chromium-126.0.6478.26/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc.no_matching_constructor	2024-05-29 18:01:38.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/css/properties/css_parsing_utils.cc	2024-06-02 23:51:25.513915986 +0200
+@@ -8533,7 +8533,7 @@ std::optional<InsetAreaKeyword> ConsumeI
+     default:
+       return std::nullopt;
+   }
+-  return InsetAreaKeyword(css_parsing_utils::ConsumeIdent(range), type);
++  return InsetAreaKeyword{css_parsing_utils::ConsumeIdent(range), type};
+ }
+ 
+ }  // namespace
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor chromium-126.0.6478.26/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc.no_matching_constructor	2024-05-29 18:01:39.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/layout/anchor_evaluator_impl.cc	2024-06-02 23:51:25.513915986 +0200
+@@ -591,7 +591,7 @@ AnchorEvaluatorImpl::ComputeInsetAreaOff
+     right = Evaluate(query.value(), position_anchor,
+                      /* inset_area_offsets */ std::nullopt);
+   }
+-  return InsetAreaOffsets(top, bottom, left, right);
++  return InsetAreaOffsets{top, bottom, left, right};
+ }
+ 
+ PhysicalRect AnchorEvaluatorImpl::InsetAreaModifiedContainingBlock(
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor chromium-126.0.6478.26/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc.no_matching_constructor	2024-05-29 18:01:40.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager.cc	2024-06-02 23:51:25.514916010 +0200
+@@ -181,8 +181,8 @@ AudioRendererMixer* AudioRendererMixerMa
+     DVLOG(1) << "Not reusing mixer with errors: " << it->second.mixer;
+ 
+     // Move bad mixers out of the reuse map.
+-    dead_mixers_.emplace_back(std::move(it->second.mixer),
+-                              it->second.ref_count);
++    dead_mixers_.emplace_back() = {std::move(it->second.mixer),
++                              it->second.ref_count};
+     mixers_.erase(it);
+   }
+ 
+@@ -228,7 +228,7 @@ void AudioRendererMixerManager::ReturnMi
+     }
+   } else if (dead_it == dead_mixers_.end() && mixer_ref.mixer->HasSinkError()) {
+     // Move bad mixers out of the reuse map.
+-    dead_mixers_.emplace_back(std::move(mixer_ref.mixer), mixer_ref.ref_count);
++    dead_mixers_.emplace_back() = {std::move(mixer_ref.mixer), mixer_ref.ref_count};
+     mixers_.erase(it);
+   }
+ }
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/font_palette.h
+--- chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor	2024-05-29 18:01:41.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/font_palette.h	2024-06-02 23:51:25.514916010 +0200
+@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
+       Color::ColorSpace color_interpolation_space,
+       std::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
+     return base::AdoptRef(new FontPalette(
+-        start, end, NonNormalizedPercentages(start_percentage, end_percentage),
++        start, end, NonNormalizedPercentages{start_percentage, end_percentage},
+         normalized_percentage, alpha_multiplier, color_interpolation_space,
+         hue_interpolation_method));
+   }
+@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
+       double normalized_percentage) {
+     double end_percentage = normalized_percentage * 100.0;
+     double start_percentage = 100.0 - end_percentage;
+-    return NonNormalizedPercentages(start_percentage, end_percentage);
++    return NonNormalizedPercentages{start_percentage, end_percentage};
+   }
+ 
+   double GetAlphaMultiplier() const {
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor	2024-05-29 18:01:41.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/palette_interpolation.cc	2024-06-02 23:51:25.515916034 +0200
+@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
+         color_interpolation_space, hue_interpolation_method, start_color,
+         end_color, percentage, alpha_multiplier);
+ 
+-    FontPalette::FontPaletteOverride result_color_record(i, result_color);
++    FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
+     result_color_records.push_back(result_color_record);
+   }
+   return result_color_records;
+diff -up chromium-126.0.6478.26/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-126.0.6478.26/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp
+--- chromium-126.0.6478.26/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor	2024-05-29 18:03:05.000000000 +0200
++++ chromium-126.0.6478.26/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp	2024-06-02 23:51:25.515916034 +0200
+@@ -512,7 +512,7 @@ void CPDF_RenderStatus::ProcessClipPath(
+     } else {
+       m_pDevice->SetClip_PathFill(
+           *pPath, &mtObj2Device,
+-          CFX_FillRenderOptions(ClipPath.GetClipType(i)));
++          CFX_FillRenderOptions{ClipPath.GetClipType(i)});
+     }
+   }
+ 
+diff -up chromium-126.0.6478.26/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-126.0.6478.26/ui/base/wayland/color_manager_util.h
+--- chromium-126.0.6478.26/ui/base/wayland/color_manager_util.h.no_matching_constructor	2024-05-29 18:02:31.000000000 +0200
++++ chromium-126.0.6478.26/ui/base/wayland/color_manager_util.h	2024-06-03 12:58:12.205983691 +0200
+@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::
+     zcr_color_manager_v1_chromaticity_names,
+     PrimaryVersion>(
+     {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
+-      PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+-                     kDefaultSinceVersion)},
++      PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
++                     kDefaultSinceVersion}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::BT470M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTE240M,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::XYZ_D50,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST428_1,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::SMPTEST431_2,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
+      {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
+-      PrimaryVersion(
++      PrimaryVersion{
+           gfx::ColorSpace::PrimaryID::FILM,
+-          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
++          ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
+ 
+ // A map from the zcr_color_manager_v1 eotf_names enum values
+ // representing well-known EOTFs, to their equivalent TransferIDs.
+@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
+     zcr_color_manager_v1_eotf_names,
+     TransferVersion>({
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-     TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+-     TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT709,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT709,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+      // This is ever so slightly inaccurate. The number ought to be
+      // 2.19921875f, not 2.2
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
+-                     kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
++                     kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-     TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
++     TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-     TransferVersion(gfx::ColorSpace::TransferID::HLG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::HLG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
+-     TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SMPTEST428_1,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
+-     TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::IEC61966_2_4,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
+-     TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
+-     TransferVersion(
++     TransferVersion{
+          gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
+-         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
++         ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
+     {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
+-     TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
+-                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
++     TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
++                     ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
+ });
+ 
+ // A map from the SDR zcr_color_manager_v1 eotf_names enum values
+@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
+ constexpr auto kTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-         TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
+-         TransferFnVersion(
++         TransferFnVersion{
+              SkNamedTransferFnExt::kRec709,
+-             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
++             ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
+-         TransferFnVersion(gamma24, kDefaultSinceVersion)},
++         TransferFnVersion{gamma24, kDefaultSinceVersion}},
+         {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
+-         TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
+-                           kDefaultSinceVersion)},
++         TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
++                           kDefaultSinceVersion}},
+     });
+ 
+ // A map from the HDR zcr_color_manager_v1 eotf_names enum values
+@@ -197,67 +197,67 @@ constexpr auto kTransferMap =
+ constexpr auto kHDRTransferMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
+         {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
+-          TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGB,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
+-          TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
++          TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
+-          TransferFnVersion(SkNamedTransferFn::kHLG,
+-                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
++          TransferFnVersion{SkNamedTransferFn::kHLG,
++                            ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
+-          TransferFnVersion(
++          TransferFnVersion{
+               SkNamedTransferFnExt::kSRGBExtended1023Over510,
+-              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
++              ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
+ 
+ // A map from zcr_color_manager_v1 matrix_names enum values to
+ // gfx::ColorSpace::MatrixIDs.
+ constexpr auto kMatrixMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
+         {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
+-          MatrixVersion(
++          MatrixVersion{
+               gfx::ColorSpace::MatrixID::BT470BG,
+-              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
++              ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
+-                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
++                        ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
+-                        kDefaultSinceVersion)},
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
++                        kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
+-          MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
+-                        kDefaultSinceVersion)}});
++          MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
++                        kDefaultSinceVersion}}});
+ 
+ // A map from zcr_color_manager_v1 range_names enum values to
+ // gfx::ColorSpace::RangeIDs.
+ constexpr auto kRangeMap =
+     base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
+         {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
+-          RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
+-                       kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
++                       kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
+-          RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
++          RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
+          {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
+-          RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
+-                       kDefaultSinceVersion)}});
++          RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
++                       kDefaultSinceVersion}}});
+ 
+ zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
+     gfx::ColorSpace::PrimaryID primaryID,
+@@ -280,4 +280,4 @@ zcr_color_manager_v1_eotf_names ToColorM
+ 
+ }  // namespace ui::wayland
+ 
+-#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+\ Kein Zeilenumbruch am Dateiende.
++#endif  // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
+diff -up chromium-126.0.6478.26/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-126.0.6478.26/ui/gtk/gtk_ui.cc
+--- chromium-126.0.6478.26/ui/gtk/gtk_ui.cc.no_matching_constructor	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/gtk/gtk_ui.cc	2024-06-02 23:51:25.516916057 +0200
+@@ -1001,11 +1001,11 @@ display::DisplayConfig GtkUi::GetDisplay
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-126.0.6478.26/ui/views/controls/button/label_button.cc.no_matching_constructor chromium-126.0.6478.26/ui/views/controls/button/label_button.cc
+--- chromium-126.0.6478.26/ui/views/controls/button/label_button.cc.no_matching_constructor	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/views/controls/button/label_button.cc	2024-06-02 23:51:25.516916057 +0200
+@@ -392,11 +392,11 @@ ProposedLayout LabelButton::CalculatePro
+ 
+   gfx::Rect image_area = GetLocalBounds();
+ 
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       ink_drop_container_.get(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(ink_drop_container_.get()),
+-      image_area, SizeBounds());
++      image_area, SizeBounds()};
+ 
+   gfx::Insets insets = GetInsets();
+   // If the button have a limited space to fit in, the image and the label
+@@ -448,11 +448,11 @@ ProposedLayout LabelButton::CalculatePro
+   } else if (horizontal_alignment == gfx::ALIGN_RIGHT) {
+     image_origin.Offset(image_area.width() - image_size.width(), 0);
+   }
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       const_cast<LabelButton*>(this)->image_container_view(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(image_container_view()),
+-      gfx::Rect(image_origin, image_size), SizeBounds());
++      gfx::Rect(image_origin, image_size), SizeBounds()};
+ 
+   gfx::Rect label_bounds = label_area;
+   if (label_area.width() == label_size.width()) {
+@@ -466,11 +466,11 @@ ProposedLayout LabelButton::CalculatePro
+     }
+   }
+ 
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       label_.get(),
+       static_cast<DelegatingLayoutManager*>(GetLayoutManager())
+           ->CanBeVisible(label_.get()),
+-      label_bounds, SizeBounds());
++      label_bounds, SizeBounds()};
+   layouts.host_size =
+       gfx::Size(size_bounds.width().value(), size_bounds.height().value());
+ 
+diff -up chromium-126.0.6478.26/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor chromium-126.0.6478.26/ui/views/controls/editable_combobox/editable_combobox.cc
+--- chromium-126.0.6478.26/ui/views/controls/editable_combobox/editable_combobox.cc.no_matching_constructor	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/views/controls/editable_combobox/editable_combobox.cc	2024-06-02 23:51:25.517916081 +0200
+@@ -492,16 +492,16 @@ ProposedLayout EditableCombobox::Calcula
+     layout.host_size =
+         gfx::Size(size_bounds.width().value(), size_bounds.height().value());
+   }
+-  layout.child_layouts.emplace_back(
++  layout.child_layouts.emplace_back() = {
+       textfield_.get(), textfield_->GetVisible(),
+-      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height()));
++      gfx::Rect(0, 0, layout.host_size.width(), layout.host_size.height())};
+   const int preferred_width =
+       control_elements_container_->GetPreferredSize({}).width();
+-  layout.child_layouts.emplace_back(
++  layout.child_layouts.emplace_back() = {
+       control_elements_container_.get(),
+       control_elements_container_->GetVisible(),
+       gfx::Rect(layout.host_size.width() - preferred_width, 0, preferred_width,
+-                layout.host_size.height()));
++                layout.host_size.height())};
+   return layout;
+ }
+ 
+diff -up chromium-126.0.6478.26/ui/views/layout/box_layout.cc.no_matching_constructor chromium-126.0.6478.26/ui/views/layout/box_layout.cc
+--- chromium-126.0.6478.26/ui/views/layout/box_layout.cc.no_matching_constructor	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/views/layout/box_layout.cc	2024-06-02 23:51:25.517916081 +0200
+@@ -325,7 +325,7 @@ void BoxLayout::InitializeChildData(BoxL
+     data.child_data.emplace_back();
+     BoxChildData& child_data = data.child_data.back();
+ 
+-    data.layout.child_layouts.emplace_back(child, true);
++    data.layout.child_layouts.emplace_back() = {child, true};
+ 
+     gfx::Insets* margins = child ? child->GetProperty(kMarginsKey) : nullptr;
+     if (margins) {
+diff -up chromium-126.0.6478.26/ui/views/window/dialog_client_view.cc.no_matching_constructor chromium-126.0.6478.26/ui/views/window/dialog_client_view.cc
+--- chromium-126.0.6478.26/ui/views/window/dialog_client_view.cc.no_matching_constructor	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/views/window/dialog_client_view.cc	2024-06-02 23:51:25.518916106 +0200
+@@ -206,16 +206,16 @@ ProposedLayout DialogClientView::Calcula
+   const int container_height =
+       button_row_container_->GetHeightForWidth(size_bounds.width().value());
+   const int container_y = size_bounds.height().value() - container_height;
+-  layouts.child_layouts.emplace_back(
++  layouts.child_layouts.emplace_back() = {
+       button_row_container_.get(), button_row_container_->GetVisible(),
+       gfx::Rect(0, container_y, size_bounds.width().value(), container_height),
+-      size_bounds);
++      size_bounds};
+   if (contents_view()) {
+     gfx::Rect contents_bounds(size_bounds.width().value(), container_y);
+     contents_bounds.Inset(GetDialogDelegate()->margins());
+-    layouts.child_layouts.emplace_back(contents_view(),
++    layouts.child_layouts.emplace_back() = {contents_view(),
+                                        contents_view()->GetVisible(),
+-                                       contents_bounds, size_bounds);
++                                       contents_bounds, size_bounds};
+   }
+   layouts.host_size =
+       gfx::Size(size_bounds.width().value(), size_bounds.height().value());

diff --git a/chromium-126-el7-old-cups.patch b/chromium-126-el7-old-cups.patch
new file mode 100644
index 0000000..6821086
--- /dev/null
+++ b/chromium-126-el7-old-cups.patch
@@ -0,0 +1,137 @@
+diff -up chromium-126.0.6478.26/printing/backend/cups_helper.cc.el7cups chromium-126.0.6478.26/printing/backend/cups_helper.cc
+--- chromium-126.0.6478.26/printing/backend/cups_helper.cc.el7cups	2024-06-03 17:16:32.197509643 +0200
++++ chromium-126.0.6478.26/printing/backend/cups_helper.cc	2024-06-03 17:32:23.028376333 +0200
+@@ -41,18 +41,6 @@ namespace printing {
+ // This section contains helper code for PPD parsing for semantic capabilities.
+ namespace {
+ 
+-// Function availability can be tested by checking whether its address is not
+-// nullptr. Weak symbols remove the need for platform specific build flags and
+-// allow for appropriate CUPS usage on platforms with non-uniform version
+-// support, namely Linux.
+-#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x
+-
+-WEAK_CUPS_FN(httpConnect2);
+-
+-// Timeout for establishing a CUPS connection.  It is expected that cupsd is
+-// able to start and respond on all systems within this duration.
+-constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
+-
+ // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
+ constexpr int32_t kDefaultMaxCopies = 9999;
+ constexpr char kCupsMaxCopies[] = "cupsMaxCopies";
+@@ -761,8 +749,7 @@ const int kDefaultIPPServerPort = 631;
+ // Helper wrapper around http_t structure, with connection and cleanup
+ // functionality.
+ HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url,
+-                                       http_encryption_t encryption,
+-                                       bool blocking) {
++                                       http_encryption_t encryption) {
+   // If we have an empty url, use default print server.
+   if (print_server_url.is_empty())
+     return;
+@@ -771,31 +758,22 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
+   if (port == url::PORT_UNSPECIFIED)
+     port = kDefaultIPPServerPort;
+ 
+-  if (httpConnect2) {
+-    http_.reset(httpConnect2(print_server_url.host().c_str(), port,
+-                             /*addrlist=*/nullptr, AF_UNSPEC, encryption,
+-                             blocking ? 1 : 0, kCupsTimeout.InMilliseconds(),
+-                             /*cancel=*/nullptr));
+-  } else {
+-    // Continue to use deprecated CUPS calls because because older Linux
+-    // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
+-    http_.reset(
++  http_.reset(
+         httpConnectEncrypt(print_server_url.host().c_str(), port, encryption));
+-  }
+ 
+   if (!http_) {
+     LOG(ERROR) << "CP_CUPS: Failed connecting to print server: "
+                << print_server_url;
+     return;
+   }
+-
+-  if (!httpConnect2) {
+-    httpBlocking(http(), blocking ? 1 : 0);
+-  }
+ }
+ 
+ HttpConnectionCUPS::~HttpConnectionCUPS() = default;
+ 
++void HttpConnectionCUPS::SetBlocking(bool blocking) {
++  httpBlocking(http(), blocking ? 1 : 0);
++}
++
+ http_t* HttpConnectionCUPS::http() {
+   return http_.get();
+ }
+diff -up chromium-126.0.6478.26/printing/backend/cups_helper.h.el7cups chromium-126.0.6478.26/printing/backend/cups_helper.h
+--- chromium-126.0.6478.26/printing/backend/cups_helper.h.el7cups	2024-06-03 17:23:35.923307842 +0200
++++ chromium-126.0.6478.26/printing/backend/cups_helper.h	2024-06-03 17:25:50.887855460 +0200
+@@ -36,10 +36,11 @@ constexpr cups_ptype_t kDestinationsFilt
+ class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS {
+  public:
+   HttpConnectionCUPS(const GURL& print_server_url,
+-                     http_encryption_t encryption,
+-                     bool blocking);
++                     http_encryption_t encryption);
+   ~HttpConnectionCUPS();
+ 
++  void SetBlocking(bool blocking);
++
+   http_t* http();
+ 
+  private:
+diff -up chromium-126.0.6478.26/printing/backend/print_backend_cups.cc.el7cups chromium-126.0.6478.26/printing/backend/print_backend_cups.cc
+--- chromium-126.0.6478.26/printing/backend/print_backend_cups.cc.el7cups	2024-06-03 17:26:44.607871149 +0200
++++ chromium-126.0.6478.26/printing/backend/print_backend_cups.cc	2024-06-03 17:29:15.889810651 +0200
+@@ -149,7 +149,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
+   // not showing as available.  Using cupsEnumDests() allows us to do our own
+   // filtering should any duplicates occur.
+   CupsDestsData dests_data = {0, nullptr};
+-  ipp_status_t last_error = IPP_STATUS_OK;
++  ipp_status_t last_error = IPP_OK;
+   if (print_server_url_.is_empty()) {
+     VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers";
+     if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs,
+@@ -176,7 +176,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
+     // no printer drivers installed.  Rely upon CUPS error code to distinguish
+     // between these.
+     DCHECK(!dests_data.dests);
+-    if (last_error != IPP_STATUS_ERROR_NOT_FOUND) {
++    if (last_error != IPP_NOT_FOUND) {
+       VLOG(1) << "CUPS: Error getting printers from CUPS server"
+               << ", server: " << print_server_url_
+               << ", error: " << static_cast<int>(last_error) << " - "
+@@ -311,7 +311,8 @@ int PrintBackendCUPS::GetDests(cups_dest
+   if (print_server_url_.is_empty())
+     return cupsGetDests2(CUPS_HTTP_DEFAULT, dests);
+ 
+-  HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
++  HttpConnectionCUPS http(print_server_url_, cups_encryption_);
++  http.SetBlocking(blocking_);
+ 
+   // This call must be made in the same scope as `http` because its destructor
+   // closes the connection.
+@@ -337,7 +338,8 @@ base::FilePath PrintBackendCUPS::GetPPD(
+     // connection will timeout after 10 seconds of no data period. And it will
+     // return the same way as if data was completely and successfully
+     // downloaded.
+-    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
++    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
++    http.SetBlocking(blocking_);
+     ppd_file_path = cupsGetPPD2(http.http(), name);
+     // Check if the get full PPD, since non-blocking call may simply return
+     // normally after timeout expired.
+@@ -373,7 +375,8 @@ ScopedDestination PrintBackendCUPS::GetN
+     // Use default (local) print server.
+     dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr);
+   } else {
+-    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
++    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
++    http.SetBlocking(blocking_);
+     dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr);
+   }
+   return ScopedDestination(dest);

diff --git a/chromium-126-el7-rust-c_string.patch b/chromium-126-el7-rust-c_string.patch
new file mode 100644
index 0000000..98817e5
--- /dev/null
+++ b/chromium-126-el7-rust-c_string.patch
@@ -0,0 +1,1667 @@
+replace c_string as it is not supported by old rust in el7
+
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/clone.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/clone.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/clone.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/clone.rs
+@@ -1338,6 +1338,7 @@ impl Clone for crate::Lit {
+         match self {
+             crate::Lit::Str(v0) => crate::Lit::Str(v0.clone()),
+             crate::Lit::ByteStr(v0) => crate::Lit::ByteStr(v0.clone()),
++            crate::Lit::CStr(v0) => crate::Lit::CStr(v0.clone()),
+             crate::Lit::Byte(v0) => crate::Lit::Byte(v0.clone()),
+             crate::Lit::Char(v0) => crate::Lit::Char(v0.clone()),
+             crate::Lit::Int(v0) => crate::Lit::Int(v0.clone()),
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/debug.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/debug.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/debug.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/debug.rs
+@@ -1958,6 +1958,7 @@ impl Debug for crate::Lit {
+         match self {
+             crate::Lit::Str(v0) => v0.debug(formatter, "Str"),
+             crate::Lit::ByteStr(v0) => v0.debug(formatter, "ByteStr"),
++            crate::Lit::CStr(v0) => v0.debug(formatter, "CStr"),
+             crate::Lit::Byte(v0) => v0.debug(formatter, "Byte"),
+             crate::Lit::Char(v0) => v0.debug(formatter, "Char"),
+             crate::Lit::Int(v0) => v0.debug(formatter, "Int"),
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/eq.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/eq.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/eq.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/eq.rs
+@@ -1300,6 +1300,7 @@ impl PartialEq for crate::Lit {
+         match (self, other) {
+             (crate::Lit::Str(self0), crate::Lit::Str(other0)) => self0 == other0,
+             (crate::Lit::ByteStr(self0), crate::Lit::ByteStr(other0)) => self0 == other0,
++            (crate::Lit::CStr(self0), crate::Lit::CStr(other0)) => self0 == other0,
+             (crate::Lit::Byte(self0), crate::Lit::Byte(other0)) => self0 == other0,
+             (crate::Lit::Char(self0), crate::Lit::Char(other0)) => self0 == other0,
+             (crate::Lit::Int(self0), crate::Lit::Int(other0)) => self0 == other0,
+@@ -1325,6 +1326,8 @@ impl Eq for crate::LitByte {}
+ #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
+ impl Eq for crate::LitByteStr {}
+ #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
++impl Eq for crate::LitCStr {}
++#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
+ impl Eq for crate::LitChar {}
+ #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
+ impl Eq for crate::LitFloat {}
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/fold.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/fold.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/fold.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/fold.rs
+@@ -581,6 +581,9 @@ pub trait Fold {
+     fn fold_lit_byte_str(&mut self, i: crate::LitByteStr) -> crate::LitByteStr {
+         fold_lit_byte_str(self, i)
+     }
++    fn fold_lit_cstr(&mut self, i: crate::LitCStr) -> crate::LitCStr {
++        fold_lit_cstr(self, i)
++    }
+     fn fold_lit_char(&mut self, i: crate::LitChar) -> crate::LitChar {
+         fold_lit_char(self, i)
+     }
+@@ -2628,6 +2631,7 @@ where
+         crate::Lit::ByteStr(_binding_0) => {
+             crate::Lit::ByteStr(f.fold_lit_byte_str(_binding_0))
+         }
++        crate::Lit::CStr(_binding_0) => crate::Lit::CStr(f.fold_lit_cstr(_binding_0)),
+         crate::Lit::Byte(_binding_0) => crate::Lit::Byte(f.fold_lit_byte(_binding_0)),
+         crate::Lit::Char(_binding_0) => crate::Lit::Char(f.fold_lit_char(_binding_0)),
+         crate::Lit::Int(_binding_0) => crate::Lit::Int(f.fold_lit_int(_binding_0)),
+@@ -2663,6 +2667,15 @@ where
+     node.set_span(span);
+     node
+ }
++pub fn fold_lit_cstr<F>(f: &mut F, node: crate::LitCStr) -> crate::LitCStr
++where
++    F: Fold + ?Sized,
++{
++    let span = f.fold_span(node.span());
++    let mut node = node;
++    node.set_span(span);
++    node
++}
+ pub fn fold_lit_char<F>(f: &mut F, node: crate::LitChar) -> crate::LitChar
+ where
+     F: Fold + ?Sized,
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/hash.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/hash.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/hash.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/hash.rs
+@@ -1682,28 +1682,32 @@ impl Hash for crate::Lit {
+                 state.write_u8(1u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Byte(v0) => {
++            crate::Lit::CStr(v0) => {
+                 state.write_u8(2u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Char(v0) => {
++            crate::Lit::Byte(v0) => {
+                 state.write_u8(3u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Int(v0) => {
++            crate::Lit::Char(v0) => {
+                 state.write_u8(4u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Float(v0) => {
++            crate::Lit::Int(v0) => {
+                 state.write_u8(5u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Bool(v0) => {
++            crate::Lit::Float(v0) => {
+                 state.write_u8(6u8);
+                 v0.hash(state);
+             }
+-            crate::Lit::Verbatim(v0) => {
++            crate::Lit::Bool(v0) => {
+                 state.write_u8(7u8);
++                v0.hash(state);
++            }
++            crate::Lit::Verbatim(v0) => {
++                state.write_u8(8u8);
+                 v0.to_string().hash(state);
+             }
+         }
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/visit.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/visit.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/visit.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/visit.rs
+@@ -547,6 +547,9 @@ pub trait Visit<'ast> {
+     fn visit_lit_byte_str(&mut self, i: &'ast crate::LitByteStr) {
+         visit_lit_byte_str(self, i);
+     }
++    fn visit_lit_cstr(&mut self, i: &'ast crate::LitCStr) {
++        visit_lit_cstr(self, i);
++    }
+     fn visit_lit_char(&mut self, i: &'ast crate::LitChar) {
+         visit_lit_char(self, i);
+     }
+@@ -2694,6 +2697,9 @@ where
+         crate::Lit::ByteStr(_binding_0) => {
+             v.visit_lit_byte_str(_binding_0);
+         }
++        crate::Lit::CStr(_binding_0) => {
++            v.visit_lit_cstr(_binding_0);
++        }
+         crate::Lit::Byte(_binding_0) => {
+             v.visit_lit_byte(_binding_0);
+         }
+@@ -2729,6 +2735,10 @@ pub fn visit_lit_byte_str<'ast, V>(v: &mut V, node: &'ast crate::LitByteStr)
+ where
+     V: Visit<'ast> + ?Sized,
+ {}
++pub fn visit_lit_cstr<'ast, V>(v: &mut V, node: &'ast crate::LitCStr)
++where
++    V: Visit<'ast> + ?Sized,
++{}
+ pub fn visit_lit_char<'ast, V>(v: &mut V, node: &'ast crate::LitChar)
+ where
+     V: Visit<'ast> + ?Sized,
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/visit_mut.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/visit_mut.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/gen/visit_mut.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/gen/visit_mut.rs
+@@ -548,6 +548,9 @@ pub trait VisitMut {
+     fn visit_lit_byte_str_mut(&mut self, i: &mut crate::LitByteStr) {
+         visit_lit_byte_str_mut(self, i);
+     }
++    fn visit_lit_cstr_mut(&mut self, i: &mut crate::LitCStr) {
++        visit_lit_cstr_mut(self, i);
++    }
+     fn visit_lit_char_mut(&mut self, i: &mut crate::LitChar) {
+         visit_lit_char_mut(self, i);
+     }
+@@ -2694,6 +2697,9 @@ where
+         crate::Lit::ByteStr(_binding_0) => {
+             v.visit_lit_byte_str_mut(_binding_0);
+         }
++        crate::Lit::CStr(_binding_0) => {
++            v.visit_lit_cstr_mut(_binding_0);
++        }
+         crate::Lit::Byte(_binding_0) => {
+             v.visit_lit_byte_mut(_binding_0);
+         }
+@@ -2729,6 +2735,10 @@ pub fn visit_lit_byte_str_mut<V>(v: &mut V, node: &mut crate::LitByteStr)
+ where
+     V: VisitMut + ?Sized,
+ {}
++pub fn visit_lit_cstr_mut<V>(v: &mut V, node: &mut crate::LitCStr)
++where
++    V: VisitMut + ?Sized,
++{}
+ pub fn visit_lit_char_mut<V>(v: &mut V, node: &mut crate::LitChar)
+ where
+     V: VisitMut + ?Sized,
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/lib.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/lib.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/lib.rs
+@@ -418,7 +418,9 @@ mod lit;
+ #[doc(hidden)] // https://github.com/dtolnay/syn/issues/1566
+ pub use crate::lit::StrStyle;
+ #[doc(inline)]
+-pub use crate::lit::{Lit, LitBool, LitByte, LitByteStr, LitChar, LitFloat, LitInt, LitStr};
++pub use crate::lit::{
++    Lit, LitBool, LitByte, LitByteStr, LitCStr, LitChar, LitFloat, LitInt, LitStr,
++};
+ 
+ #[cfg(feature = "parsing")]
+ mod lookahead;
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/lit.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/lit.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/lit.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/lit.rs
+@@ -6,6 +6,7 @@ use crate::{Error, Result};
+ use proc_macro2::{Ident, Literal, Span};
+ #[cfg(feature = "parsing")]
+ use proc_macro2::{TokenStream, TokenTree};
++use std::ffi::{CStr, CString};
+ use std::fmt::{self, Display};
+ #[cfg(feature = "extra-traits")]
+ use std::hash::{Hash, Hasher};
+@@ -27,6 +28,9 @@ ast_enum_of_structs! {
+         /// A byte string literal: `b"foo"`.
+         ByteStr(LitByteStr),
+ 
++        /// A nul-terminated C-string literal: `c"foo"`.
++        CStr(LitCStr),
++
+         /// A byte literal: `b'f'`.
+         Byte(LitByte),
+ 
+@@ -63,6 +67,13 @@ ast_struct! {
+     }
+ }
+ 
++ast_struct! {
++    /// A nul-terminated C-string literal: `c"foo"`.
++    pub struct LitCStr {
++        repr: Box<LitRepr>,
++    }
++}
++
+ ast_struct! {
+     /// A byte literal: `b'f'`.
+     pub struct LitByte {
+@@ -294,6 +305,41 @@ impl LitByteStr {
+     }
+ }
+ 
++impl LitCStr {
++    pub fn new(value: &CStr, span: Span) -> Self {
++        let mut token = Literal::c_string(value);
++        token.set_span(span);
++        LitCStr {
++            repr: Box::new(LitRepr {
++                token,
++                suffix: Box::<str>::default(),
++            }),
++        }
++    }
++
++    pub fn value(&self) -> CString {
++        let repr = self.repr.token.to_string();
++        let (value, _suffix) = value::parse_lit_c_str(&repr);
++        value
++    }
++
++    pub fn span(&self) -> Span {
++        self.repr.token.span()
++    }
++
++    pub fn set_span(&mut self, span: Span) {
++        self.repr.token.set_span(span);
++    }
++
++    pub fn suffix(&self) -> &str {
++        &self.repr.suffix
++    }
++
++    pub fn token(&self) -> Literal {
++        self.repr.token.clone()
++    }
++}
++
+ impl LitByte {
+     pub fn new(value: u8, span: Span) -> Self {
+         let mut token = Literal::u8_suffixed(value);
+@@ -368,7 +414,7 @@ impl LitInt {
+     pub fn new(repr: &str, span: Span) -> Self {
+         let (digits, suffix) = match value::parse_lit_int(repr) {
+             Some(parse) => parse,
+-            None => panic!("Not an integer literal: `{}`", repr),
++            None => panic!("not an integer literal: `{}`", repr),
+         };
+ 
+         let mut token: Literal = repr.parse().unwrap();
+@@ -447,7 +493,7 @@ impl From<Literal> for LitInt {
+                 }),
+             }
+         } else {
+-            panic!("Not an integer literal: `{}`", repr);
++            panic!("not an integer literal: `{}`", repr);
+         }
+     }
+ }
+@@ -462,7 +508,7 @@ impl LitFloat {
+     pub fn new(repr: &str, span: Span) -> Self {
+         let (digits, suffix) = match value::parse_lit_float(repr) {
+             Some(parse) => parse,
+-            None => panic!("Not a float literal: `{}`", repr),
++            None => panic!("not a float literal: `{}`", repr),
+         };
+ 
+         let mut token: Literal = repr.parse().unwrap();
+@@ -519,7 +565,7 @@ impl From<Literal> for LitFloat {
+                 }),
+             }
+         } else {
+-            panic!("Not a float literal: `{}`", repr);
++            panic!("not a float literal: `{}`", repr);
+         }
+     }
+ }
+@@ -555,7 +601,7 @@ impl LitBool {
+ 
+ #[cfg(feature = "extra-traits")]
+ mod debug_impls {
+-    use crate::lit::{LitBool, LitByte, LitByteStr, LitChar, LitFloat, LitInt, LitStr};
++    use crate::lit::{LitBool, LitByte, LitByteStr, LitCStr, LitChar, LitFloat, LitInt, LitStr};
+     use std::fmt::{self, Debug};
+ 
+     #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
+@@ -590,6 +636,22 @@ mod debug_impls {
+         }
+     }
+ 
++    #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
++    impl Debug for LitCStr {
++        fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
++            self.debug(formatter, "LitCStr")
++        }
++    }
++
++    impl LitCStr {
++        pub(crate) fn debug(&self, formatter: &mut fmt::Formatter, name: &str) -> fmt::Result {
++            formatter
++                .debug_struct(name)
++                .field("token", &format_args!("{}", self.repr.token))
++                .finish()
++        }
++    }
++
+     #[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))]
+     impl Debug for LitByte {
+         fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+@@ -750,6 +812,7 @@ macro_rules! lit_extra_traits {
+ 
+ lit_extra_traits!(LitStr);
+ lit_extra_traits!(LitByteStr);
++lit_extra_traits!(LitCStr);
+ lit_extra_traits!(LitByte);
+ lit_extra_traits!(LitChar);
+ lit_extra_traits!(LitInt);
+@@ -790,7 +853,7 @@ pub(crate) mod parsing {
+     use crate::buffer::Cursor;
+     use crate::error::Result;
+     use crate::lit::{
+-        value, Lit, LitBool, LitByte, LitByteStr, LitChar, LitFloat, LitFloatRepr, LitInt,
++        value, Lit, LitBool, LitByte, LitByteStr, LitCStr, LitChar, LitFloat, LitFloatRepr, LitInt,
+         LitIntRepr, LitStr,
+     };
+     use crate::parse::{Parse, ParseStream};
+@@ -889,6 +952,17 @@ pub(crate) mod parsing {
+         }
+     }
+ 
++    #[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
++    impl Parse for LitCStr {
++        fn parse(input: ParseStream) -> Result<Self> {
++            let head = input.fork();
++            match input.parse() {
++                Ok(Lit::CStr(lit)) => Ok(lit),
++                _ => Err(head.error("expected C string literal")),
++            }
++        }
++    }
++
+     #[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
+     impl Parse for LitByte {
+         fn parse(input: ParseStream) -> Result<Self> {
+@@ -947,7 +1021,7 @@ pub(crate) mod parsing {
+ 
+ #[cfg(feature = "printing")]
+ mod printing {
+-    use crate::lit::{LitBool, LitByte, LitByteStr, LitChar, LitFloat, LitInt, LitStr};
++    use crate::lit::{LitBool, LitByte, LitByteStr, LitCStr, LitChar, LitFloat, LitInt, LitStr};
+     use proc_macro2::TokenStream;
+     use quote::{ToTokens, TokenStreamExt};
+ 
+@@ -965,6 +1039,13 @@ mod printing {
+         }
+     }
+ 
++    #[cfg_attr(doc_cfg, doc(cfg(feature = "printing")))]
++    impl ToTokens for LitCStr {
++        fn to_tokens(&self, tokens: &mut TokenStream) {
++            self.repr.token.to_tokens(tokens);
++        }
++    }
++
+     #[cfg_attr(doc_cfg, doc(cfg(feature = "printing")))]
+     impl ToTokens for LitByte {
+         fn to_tokens(&self, tokens: &mut TokenStream) {
+@@ -1004,11 +1085,13 @@ mod printing {
+ mod value {
+     use crate::bigint::BigInt;
+     use crate::lit::{
+-        Lit, LitBool, LitByte, LitByteStr, LitChar, LitFloat, LitFloatRepr, LitInt, LitIntRepr,
+-        LitRepr, LitStr,
++        Lit, LitBool, LitByte, LitByteStr, LitCStr, LitChar, LitFloat, LitFloatRepr, LitInt,
++        LitIntRepr, LitRepr, LitStr,
+     };
+     use proc_macro2::{Literal, Span};
++    use std::ascii;
+     use std::char;
++    use std::ffi::CString;
+     use std::ops::{Index, RangeFrom};
+ 
+     impl Lit {
+@@ -1041,6 +1124,13 @@ mod value {
+                     }
+                     _ => {}
+                 },
++                // c"...", cr"...", cr#"..."#
++                b'c' => {
++                    let (_, suffix) = parse_lit_c_str(&repr);
++                    return Lit::CStr(LitCStr {
++                        repr: Box::new(LitRepr { token, suffix }),
++                    });
++                }
+                 // '...'
+                 b'\'' => {
+                     let (_, suffix) = parse_lit_char(&repr);
+@@ -1079,20 +1169,18 @@ mod value {
+                         });
+                     }
+                 }
+-                // c"...", cr"...", cr#"..."#
+-                // TODO: add a Lit::CStr variant?
+-                b'c' => return Lit::Verbatim(token),
+                 b'(' if repr == "(/*ERROR*/)" => return Lit::Verbatim(token),
+                 _ => {}
+             }
+ 
+-            panic!("Unrecognized literal: `{}`", repr);
++            panic!("unrecognized literal: `{}`", repr);
+         }
+ 
+         pub fn suffix(&self) -> &str {
+             match self {
+                 Lit::Str(lit) => lit.suffix(),
+                 Lit::ByteStr(lit) => lit.suffix(),
++                Lit::CStr(lit) => lit.suffix(),
+                 Lit::Byte(lit) => lit.suffix(),
+                 Lit::Char(lit) => lit.suffix(),
+                 Lit::Int(lit) => lit.suffix(),
+@@ -1105,6 +1193,7 @@ mod value {
+             match self {
+                 Lit::Str(lit) => lit.span(),
+                 Lit::ByteStr(lit) => lit.span(),
++                Lit::CStr(lit) => lit.span(),
+                 Lit::Byte(lit) => lit.span(),
+                 Lit::Char(lit) => lit.span(),
+                 Lit::Int(lit) => lit.span(),
+@@ -1118,6 +1207,7 @@ mod value {
+             match self {
+                 Lit::Str(lit) => lit.set_span(span),
+                 Lit::ByteStr(lit) => lit.set_span(span),
++                Lit::CStr(lit) => lit.set_span(span),
+                 Lit::Byte(lit) => lit.set_span(span),
+                 Lit::Char(lit) => lit.set_span(span),
+                 Lit::Int(lit) => lit.set_span(span),
+@@ -1170,13 +1260,13 @@ mod value {
+                         b'x' => {
+                             let (byte, rest) = backslash_x(s);
+                             s = rest;
+-                            assert!(byte <= 0x7F, "Invalid \\x byte in string literal");
++                            assert!(byte <= 0x7F, "invalid \\x byte in string literal");
+                             char::from_u32(u32::from(byte)).unwrap()
+                         }
+                         b'u' => {
+-                            let (chr, rest) = backslash_u(s);
++                            let (ch, rest) = backslash_u(s);
+                             s = rest;
+-                            chr
++                            ch
+                         }
+                         b'n' => '\n',
+                         b'r' => '\r',
+@@ -1192,11 +1282,14 @@ mod value {
+                                 _ => continue 'outer,
+                             }
+                         },
+-                        b => panic!("unexpected byte {:?} after \\ character in byte literal", b),
++                        b => panic!(
++                            "unexpected byte '{}' after \\ character in string literal",
++                            ascii::escape_default(b),
++                        ),
+                     }
+                 }
+                 b'\r' => {
+-                    assert_eq!(byte(s, 1), b'\n', "Bare CR not allowed in string");
++                    assert_eq!(byte(s, 1), b'\n', "bare CR not allowed in string");
+                     s = &s[2..];
+                     '\n'
+                 }
+@@ -1283,11 +1376,14 @@ mod value {
+                                 continue 'outer;
+                             }
+                         },
+-                        b => panic!("unexpected byte {:?} after \\ character in byte literal", b),
++                        b => panic!(
++                            "unexpected byte '{}' after \\ character in byte-string literal",
++                            ascii::escape_default(b),
++                        ),
+                     }
+                 }
+                 b'\r' => {
+-                    assert_eq!(byte(v, 1), b'\n', "Bare CR not allowed in string");
++                    assert_eq!(byte(v, 1), b'\n', "bare CR not allowed in string");
+                     v = &v[2..];
+                     b'\n'
+                 }
+@@ -1310,6 +1406,92 @@ mod value {
+         (String::from(value).into_bytes(), suffix)
+     }
+ 
++    // Returns (content, suffix).
++    pub(crate) fn parse_lit_c_str(s: &str) -> (CString, Box<str>) {
++        assert_eq!(byte(s, 0), b'c');
++        match byte(s, 1) {
++            b'"' => parse_lit_c_str_cooked(s),
++            b'r' => parse_lit_c_str_raw(s),
++            _ => unreachable!(),
++        }
++    }
++
++    // Clippy false positive
++    // https://github.com/rust-lang-nursery/rust-clippy/issues/2329
++    #[allow(clippy::needless_continue)]
++    fn parse_lit_c_str_cooked(mut s: &str) -> (CString, Box<str>) {
++        assert_eq!(byte(s, 0), b'c');
++        assert_eq!(byte(s, 1), b'"');
++        s = &s[2..];
++
++        // We're going to want to have slices which don't respect codepoint boundaries.
++        let mut v = s.as_bytes();
++
++        let mut out = Vec::new();
++        'outer: loop {
++            let byte = match byte(v, 0) {
++                b'"' => break,
++                b'\\' => {
++                    let b = byte(v, 1);
++                    v = &v[2..];
++                    match b {
++                        b'x' => {
++                            let (b, rest) = backslash_x(v);
++                            assert!(b != 0, "\\x00 is not allowed in C-string literal");
++                            v = rest;
++                            b
++                        }
++                        b'u' => {
++                            let (ch, rest) = backslash_u(v);
++                            assert!(ch != '\0', "\\u{{0}} is not allowed in C-string literal");
++                            v = rest;
++                            out.extend_from_slice(ch.encode_utf8(&mut [0u8; 4]).as_bytes());
++                            continue 'outer;
++                        }
++                        b'n' => b'\n',
++                        b'r' => b'\r',
++                        b't' => b'\t',
++                        b'\\' => b'\\',
++                        b'\'' => b'\'',
++                        b'"' => b'"',
++                        b'\r' | b'\n' => loop {
++                            let byte = byte(v, 0);
++                            if matches!(byte, b' ' | b'\t' | b'\n' | b'\r') {
++                                v = &v[1..];
++                            } else {
++                                continue 'outer;
++                            }
++                        },
++                        b => panic!(
++                            "unexpected byte '{}' after \\ character in byte literal",
++                            ascii::escape_default(b),
++                        ),
++                    }
++                }
++                b'\r' => {
++                    assert_eq!(byte(v, 1), b'\n', "bare CR not allowed in string");
++                    v = &v[2..];
++                    b'\n'
++                }
++                b => {
++                    v = &v[1..];
++                    b
++                }
++            };
++            out.push(byte);
++        }
++
++        assert_eq!(byte(v, 0), b'"');
++        let suffix = s[s.len() - v.len() + 1..].to_owned().into_boxed_str();
++        (CString::new(out).unwrap(), suffix)
++    }
++
++    fn parse_lit_c_str_raw(s: &str) -> (CString, Box<str>) {
++        assert_eq!(byte(s, 0), b'c');
++        let (value, suffix) = parse_lit_str_raw(&s[1..]);
++        (CString::new(String::from(value)).unwrap(), suffix)
++    }
++
+     // Returns (value, suffix).
+     pub(crate) fn parse_lit_byte(s: &str) -> (u8, Box<str>) {
+         assert_eq!(byte(s, 0), b'b');
+@@ -1335,7 +1517,10 @@ mod value {
+                     b'0' => b'\0',
+                     b'\'' => b'\'',
+                     b'"' => b'"',
+-                    b => panic!("unexpected byte {:?} after \\ character in byte literal", b),
++                    b => panic!(
++                        "unexpected byte '{}' after \\ character in byte literal",
++                        ascii::escape_default(b),
++                    ),
+                 }
+             }
+             b => {
+@@ -1362,13 +1547,13 @@ mod value {
+                     b'x' => {
+                         let (byte, rest) = backslash_x(s);
+                         s = rest;
+-                        assert!(byte <= 0x80, "Invalid \\x byte in string literal");
++                        assert!(byte <= 0x7F, "invalid \\x byte in character literal");
+                         char::from_u32(u32::from(byte)).unwrap()
+                     }
+                     b'u' => {
+-                        let (chr, rest) = backslash_u(s);
++                        let (ch, rest) = backslash_u(s);
+                         s = rest;
+-                        chr
++                        ch
+                     }
+                     b'n' => '\n',
+                     b'r' => '\r',
+@@ -1377,7 +1562,10 @@ mod value {
+                     b'0' => '\0',
+                     b'\'' => '\'',
+                     b'"' => '"',
+-                    b => panic!("unexpected byte {:?} after \\ character in byte literal", b),
++                    b => panic!(
++                        "unexpected byte '{}' after \\ character in character literal",
++                        ascii::escape_default(b),
++                    ),
+                 }
+             }
+             _ => {
+@@ -1414,7 +1602,10 @@ mod value {
+         (ch, &s[2..])
+     }
+ 
+-    fn backslash_u(mut s: &str) -> (char, &str) {
++    fn backslash_u<S>(mut s: &S) -> (char, &S)
++    where
++        S: Index<RangeFrom<usize>, Output = S> + AsRef<[u8]> + ?Sized,
++    {
+         if byte(s, 0) != b'{' {
+             panic!("{}", "expected { after \\u");
+         }
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/whitespace.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/whitespace.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/src/whitespace.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/src/whitespace.rs
+@@ -41,11 +41,11 @@ pub(crate) fn skip(mut s: &str) -> &str {
+             }
+         }
+         match byte {
+-            b' ' | 0x09..=0x0d => {
++            b' ' | 0x09..=0x0D => {
+                 s = &s[1..];
+                 continue;
+             }
+-            b if b <= 0x7f => {}
++            b if b <= 0x7F => {}
+             _ => {
+                 let ch = s.chars().next().unwrap();
+                 if is_whitespace(ch) {
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/tests/debug/gen.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/tests/debug/gen.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/tests/debug/gen.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/tests/debug/gen.rs
+@@ -2864,6 +2864,7 @@ impl Debug for Lite<syn::Lit> {
+         match &self.value {
+             syn::Lit::Str(_val) => write!(formatter, "{:?}", _val.value()),
+             syn::Lit::ByteStr(_val) => write!(formatter, "{:?}", _val.value()),
++            syn::Lit::CStr(_val) => write!(formatter, "{:?}", _val.value()),
+             syn::Lit::Byte(_val) => write!(formatter, "{:?}", _val.value()),
+             syn::Lit::Char(_val) => write!(formatter, "{:?}", _val.value()),
+             syn::Lit::Int(_val) => write!(formatter, "{}", _val),
+@@ -2901,6 +2902,11 @@ impl Debug for Lite<syn::LitByteStr> {
+         write!(formatter, "{:?}", self.value.value())
+     }
+ }
++impl Debug for Lite<syn::LitCStr> {
++    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
++        write!(formatter, "{:?}", self.value.value())
++    }
++}
+ impl Debug for Lite<syn::LitChar> {
+     fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+         write!(formatter, "{:?}", self.value.value())
+diff --git a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/tests/test_lit.rs b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/tests/test_lit.rs
+--- a/third_party/rust/chromium_crates_io/vendor/syn-2.0.55/tests/test_lit.rs
++++ b/third_party/rust/chromium_crates_io/vendor/syn-2.0.60/tests/test_lit.rs
+@@ -1,5 +1,6 @@
+ #![allow(
+     clippy::float_cmp,
++    clippy::needless_raw_string_hashes,
+     clippy::non_ascii_literal,
+     clippy::single_match_else,
+     clippy::uninlined_format_args
+@@ -10,9 +11,11 @@ mod macros;
+ 
+ use proc_macro2::{Delimiter, Group, Literal, Span, TokenStream, TokenTree};
+ use quote::ToTokens;
++use std::ffi::CStr;
+ use std::str::FromStr;
+ use syn::{Lit, LitFloat, LitInt, LitStr};
+ 
++#[track_caller]
+ fn lit(s: &str) -> Lit {
+     let mut tokens = TokenStream::from_str(s).unwrap().into_iter();
+     match tokens.next().unwrap() {
+@@ -26,7 +29,9 @@ fn lit(s: &str) -> Lit {
+ 
+ #[test]
+ fn strings() {
++    #[track_caller]
+     fn test_string(s: &str, value: &str) {
++        let s = s.trim();
+         match lit(s) {
+             Lit::Str(lit) => {
+                 assert_eq!(lit.value(), value);
+@@ -39,16 +44,16 @@ fn strings() {
+         }
+     }
+ 
+-    test_string("\"a\"", "a");
+-    test_string("\"\\n\"", "\n");
+-    test_string("\"\\r\"", "\r");
+-    test_string("\"\\t\"", "\t");
+-    test_string("\"🐕\"", "🐕"); // NOTE: This is an emoji
+-    test_string("\"\\\"\"", "\"");
+-    test_string("\"'\"", "'");
+-    test_string("\"\"", "");
+-    test_string("\"\\u{1F415}\"", "\u{1F415}");
+-    test_string("\"\\u{1_2__3_}\"", "\u{123}");
++    test_string(r#"  ""  "#, "");
++    test_string(r#"  "a"  "#, "a");
++    test_string(r#"  "\n"  "#, "\n");
++    test_string(r#"  "\r"  "#, "\r");
++    test_string(r#"  "\t"  "#, "\t");
++    test_string(r#"  "🐕"  "#, "🐕"); // NOTE: This is an emoji
++    test_string(r#"  "\""  "#, "\"");
++    test_string(r#"  "'"  "#, "'");
++    test_string(r#"  "\u{1F415}"  "#, "\u{1F415}");
++    test_string(r#"  "\u{1_2__3_}"  "#, "\u{123}");
+     test_string(
+         "\"contains\nnewlines\\\nescaped newlines\"",
+         "contains\nnewlinesescaped newlines",
+@@ -65,7 +70,9 @@ fn strings() {
+ 
+ #[test]
+ fn byte_strings() {
++    #[track_caller]
+     fn test_byte_string(s: &str, value: &[u8]) {
++        let s = s.trim();
+         match lit(s) {
+             Lit::ByteStr(lit) => {
+                 assert_eq!(lit.value(), value);
+@@ -78,13 +85,13 @@ fn byte_strings() {
+         }
+     }
+ 
+-    test_byte_string("b\"a\"", b"a");
+-    test_byte_string("b\"\\n\"", b"\n");
+-    test_byte_string("b\"\\r\"", b"\r");
+-    test_byte_string("b\"\\t\"", b"\t");
+-    test_byte_string("b\"\\\"\"", b"\"");
+-    test_byte_string("b\"'\"", b"'");
+-    test_byte_string("b\"\"", b"");
++    test_byte_string(r#"  b""  "#, b"");
++    test_byte_string(r#"  b"a"  "#, b"a");
++    test_byte_string(r#"  b"\n"  "#, b"\n");
++    test_byte_string(r#"  b"\r"  "#, b"\r");
++    test_byte_string(r#"  b"\t"  "#, b"\t");
++    test_byte_string(r#"  b"\""  "#, b"\"");
++    test_byte_string(r#"  b"'"  "#, b"'");
+     test_byte_string(
+         "b\"contains\nnewlines\\\nescaped newlines\"",
+         b"contains\nnewlinesescaped newlines",
+@@ -95,9 +102,50 @@ fn byte_strings() {
+     test_byte_string("br##\"...\"##q", b"...");
+ }
+ 
++#[test]
++fn c_strings() {
++    #[track_caller]
++    fn test_c_string(s: &str, value: &CStr) {
++        let s = s.trim();
++        match lit(s) {
++            Lit::CStr(lit) => {
++                assert_eq!(*lit.value(), *value);
++                let again = lit.into_token_stream().to_string();
++                if again != s {
++                    test_c_string(&again, value);
++                }
++            }
++            wrong => panic!("{:?}", wrong),
++        }
++    }
++
++    test_c_string(r#"  c""  "#, c"");
++    test_c_string(r#"  c"a"  "#, c"a");
++    test_c_string(r#"  c"\n"  "#, c"\n");
++    test_c_string(r#"  c"\r"  "#, c"\r");
++    test_c_string(r#"  c"\t"  "#, c"\t");
++    test_c_string(r#"  c"\\"  "#, c"\\");
++    test_c_string(r#"  c"\'"  "#, c"'");
++    test_c_string(r#"  c"\""  "#, c"\"");
++    test_c_string(
++        "c\"contains\nnewlines\\\nescaped newlines\"",
++        c"contains\nnewlinesescaped newlines",
++    );
++    test_c_string("cr\"raw\nstring\\\nhere\"", c"raw\nstring\\\nhere");
++    test_c_string("c\"...\"q", c"...");
++    test_c_string("cr\"...\"", c"...");
++    test_c_string("cr##\"...\"##", c"...");
++    test_c_string(
++        r#"  c"hello\x80我叫\u{1F980}"  "#, // from the RFC
++        c"hello\x80我叫\u{1F980}",
++    );
++}
++
+ #[test]
+ fn bytes() {
++    #[track_caller]
+     fn test_byte(s: &str, value: u8) {
++        let s = s.trim();
+         match lit(s) {
+             Lit::Byte(lit) => {
+                 assert_eq!(lit.value(), value);
+@@ -108,18 +156,20 @@ fn bytes() {
+         }
+     }
+ 
+-    test_byte("b'a'", b'a');
+-    test_byte("b'\\n'", b'\n');
+-    test_byte("b'\\r'", b'\r');
+-    test_byte("b'\\t'", b'\t');
+-    test_byte("b'\\''", b'\'');
+-    test_byte("b'\"'", b'"');
+-    test_byte("b'a'q", b'a');
++    test_byte(r#"  b'a'  "#, b'a');
++    test_byte(r#"  b'\n'  "#, b'\n');
++    test_byte(r#"  b'\r'  "#, b'\r');
++    test_byte(r#"  b'\t'  "#, b'\t');
++    test_byte(r#"  b'\''  "#, b'\'');
++    test_byte(r#"  b'"'  "#, b'"');
++    test_byte(r#"  b'a'q  "#, b'a');
+ }
+ 
+ #[test]
+ fn chars() {
++    #[track_caller]
+     fn test_char(s: &str, value: char) {
++        let s = s.trim();
+         match lit(s) {
+             Lit::Char(lit) => {
+                 assert_eq!(lit.value(), value);
+@@ -132,19 +182,20 @@ fn chars() {
+         }
+     }
+ 
+-    test_char("'a'", 'a');
+-    test_char("'\\n'", '\n');
+-    test_char("'\\r'", '\r');
+-    test_char("'\\t'", '\t');
+-    test_char("'🐕'", '🐕'); // NOTE: This is an emoji
+-    test_char("'\\''", '\'');
+-    test_char("'\"'", '"');
+-    test_char("'\\u{1F415}'", '\u{1F415}');
+-    test_char("'a'q", 'a');
++    test_char(r#"  'a'  "#, 'a');
++    test_char(r#"  '\n'  "#, '\n');
++    test_char(r#"  '\r'  "#, '\r');
++    test_char(r#"  '\t'  "#, '\t');
++    test_char(r#"  '🐕'  "#, '🐕'); // NOTE: This is an emoji
++    test_char(r#"  '\''  "#, '\'');
++    test_char(r#"  '"'  "#, '"');
++    test_char(r#"  '\u{1F415}'  "#, '\u{1F415}');
++    test_char(r#"  'a'q  "#, 'a');
+ }
+ 
+ #[test]
+ fn ints() {
++    #[track_caller]
+     fn test_int(s: &str, value: u64, suffix: &str) {
+         match lit(s) {
+             Lit::Int(lit) => {
+@@ -185,6 +236,7 @@ fn ints() {
+ 
+ #[test]
+ fn floats() {
++    #[track_caller]
+     fn test_float(s: &str, value: f64, suffix: &str) {
+         match lit(s) {
+             Lit::Float(lit) => {
+@@ -224,11 +276,13 @@ fn negative() {
+ 
+ #[test]
+ fn suffix() {
++    #[track_caller]
+     fn get_suffix(token: &str) -> String {
+         let lit = syn::parse_str::<Lit>(token).unwrap();
+         match lit {
+             Lit::Str(lit) => lit.suffix().to_owned(),
+             Lit::ByteStr(lit) => lit.suffix().to_owned(),
++            Lit::CStr(lit) => lit.suffix().to_owned(),
+             Lit::Byte(lit) => lit.suffix().to_owned(),
+             Lit::Char(lit) => lit.suffix().to_owned(),
+             Lit::Int(lit) => lit.suffix().to_owned(),
+@@ -239,9 +293,13 @@ fn suffix() {
+ 
+     assert_eq!(get_suffix("\"\"s"), "s");
+     assert_eq!(get_suffix("r\"\"r"), "r");
++    assert_eq!(get_suffix("r#\"\"#r"), "r");
+     assert_eq!(get_suffix("b\"\"b"), "b");
+     assert_eq!(get_suffix("br\"\"br"), "br");
+-    assert_eq!(get_suffix("r#\"\"#r"), "r");
++    assert_eq!(get_suffix("br#\"\"#br"), "br");
++    assert_eq!(get_suffix("c\"\"c"), "c");
++    assert_eq!(get_suffix("cr\"\"cr"), "cr");
++    assert_eq!(get_suffix("cr#\"\"#cr"), "cr");
+     assert_eq!(get_suffix("'c'c"), "c");
+     assert_eq!(get_suffix("b'b'b"), "b");
+     assert_eq!(get_suffix("1i32"), "i32");
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/build.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/build.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/build.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/build.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -36,10 +36,10 @@
+ 
+ use std::env;
+ use std::ffi::OsString;
++use std::iter;
+ use std::path::Path;
+ use std::process::{self, Command, Stdio};
+ use std::str;
+-use std::u32;
+ 
+ fn main() {
+     let rustc = rustc_minor_version().unwrap_or(u32::MAX);
+@@ -63,6 +63,11 @@
+         println!("cargo:rustc-cfg=no_source_text");
+     }
+ 
++    if rustc < 79 {
++        println!("cargo:rustc-cfg=no_literal_byte_character");
++        println!("cargo:rustc-cfg=no_literal_c_string");
++    }
++
+     if !cfg!(feature = "proc-macro") {
+         println!("cargo:rerun-if-changed=build.rs");
+         return;
+@@ -138,15 +143,15 @@
+     let out_dir = cargo_env_var("OUT_DIR");
+     let probefile = Path::new("build").join("probe.rs");
+ 
+-    // Make sure to pick up Cargo rustc configuration.
+-    let mut cmd = if let Some(wrapper) = env::var_os("RUSTC_WRAPPER") {
+-        let mut cmd = Command::new(wrapper);
+-        // The wrapper's first argument is supposed to be the path to rustc.
+-        cmd.arg(rustc);
+-        cmd
+-    } else {
+-        Command::new(rustc)
+-    };
++    let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|wrapper| !wrapper.is_empty());
++    let rustc_workspace_wrapper =
++        env::var_os("RUSTC_WORKSPACE_WRAPPER").filter(|wrapper| !wrapper.is_empty());
++    let mut rustc = rustc_wrapper
++        .into_iter()
++        .chain(rustc_workspace_wrapper)
++        .chain(iter::once(rustc));
++    let mut cmd = Command::new(rustc.next().unwrap());
++    cmd.args(rustc);
+ 
+     if !rustc_bootstrap {
+         cmd.env_remove("RUSTC_BOOTSTRAP");
+@@ -156,6 +161,7 @@
+         .arg("--edition=2021")
+         .arg("--crate-name=proc_macro2")
+         .arg("--crate-type=lib")
++        .arg("--cap-lints=allow")
+         .arg("--emit=dep-info,metadata")
+         .arg("--out-dir")
+         .arg(out_dir)
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/fallback.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/fallback.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/fallback.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/fallback.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -15,7 +15,9 @@
+ use core::ops::Range;
+ use core::ops::RangeBounds;
+ use core::ptr;
+-use core::str::FromStr;
++use core::str::{self, FromStr};
++use std::ffi::CStr;
++#[cfg(procmacro2_semver_exempt)]
+ use std::path::PathBuf;
+ 
+ /// Force use of proc-macro2's fallback implementation of the API for now, even
+@@ -297,11 +299,13 @@
+     }
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ #[derive(Clone, PartialEq, Eq)]
+ pub(crate) struct SourceFile {
+     path: PathBuf,
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ impl SourceFile {
+     /// Get the path to this source file as a string.
+     pub fn path(&self) -> PathBuf {
+@@ -313,6 +317,7 @@
+     }
+ }
+ 
++#[cfg(procmacro2_semver_exempt)]
+ impl Debug for SourceFile {
+     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+         f.debug_struct("SourceFile")
+@@ -922,7 +927,7 @@
+ 
+ #[derive(Clone)]
+ pub(crate) struct Literal {
+-    repr: String,
++    pub(crate) repr: String,
+     span: Span,
+ }
+ 
+@@ -1003,71 +1008,98 @@
+         Literal::_new(s)
+     }
+ 
+-    pub fn string(t: &str) -> Literal {
+-        let mut repr = String::with_capacity(t.len() + 2);
++    pub fn string(string: &str) -> Literal {
++        let mut repr = String::with_capacity(string.len() + 2);
+         repr.push('"');
+-        let mut chars = t.chars();
+-        while let Some(ch) = chars.next() {
+-            if ch == '\0' {
+-                repr.push_str(
+-                    if chars
+-                        .as_str()
+-                        .starts_with(|next| '0' <= next && next <= '7')
+-                    {
+-                        // circumvent clippy::octal_escapes lint
+-                        "\\x00"
+-                    } else {
+-                        "\\0"
+-                    },
+-                );
+-            } else if ch == '\'' {
+-                // escape_debug turns this into "\'" which is unnecessary.
+-                repr.push(ch);
+-            } else {
+-                repr.extend(ch.escape_debug());
+-            }
+-        }
++        escape_utf8(string, &mut repr);
+         repr.push('"');
+         Literal::_new(repr)
+     }
+ 
+-    pub fn character(t: char) -> Literal {
++    pub fn character(ch: char) -> Literal {
+         let mut repr = String::new();
+         repr.push('\'');
+-        if t == '"' {
++        if ch == '"' {
+             // escape_debug turns this into '\"' which is unnecessary.
+-            repr.push(t);
++            repr.push(ch);
+         } else {
+-            repr.extend(t.escape_debug());
++            repr.extend(ch.escape_debug());
++        }
++        repr.push('\'');
++        Literal::_new(repr)
++    }
++
++    pub fn byte_character(byte: u8) -> Literal {
++        let mut repr = "b'".to_string();
++        #[allow(clippy::match_overlapping_arm)]
++        match byte {
++            b'\0' => repr.push_str(r"\0"),
++            b'\t' => repr.push_str(r"\t"),
++            b'\n' => repr.push_str(r"\n"),
++            b'\r' => repr.push_str(r"\r"),
++            b'\'' => repr.push_str(r"\'"),
++            b'\\' => repr.push_str(r"\\"),
++            b'\x20'..=b'\x7E' => repr.push(byte as char),
++            _ => {
++                let _ = write!(repr, r"\x{:02X}", byte);
++            }
+         }
+         repr.push('\'');
+         Literal::_new(repr)
+     }
+ 
+     pub fn byte_string(bytes: &[u8]) -> Literal {
+-        let mut escaped = "b\"".to_string();
++        let mut repr = "b\"".to_string();
+         let mut bytes = bytes.iter();
+         while let Some(&b) = bytes.next() {
+             #[allow(clippy::match_overlapping_arm)]
+             match b {
+-                b'\0' => escaped.push_str(match bytes.as_slice().first() {
++                b'\0' => repr.push_str(match bytes.as_slice().first() {
+                     // circumvent clippy::octal_escapes lint
+                     Some(b'0'..=b'7') => r"\x00",
+                     _ => r"\0",
+                 }),
+-                b'\t' => escaped.push_str(r"\t"),
+-                b'\n' => escaped.push_str(r"\n"),
+-                b'\r' => escaped.push_str(r"\r"),
+-                b'"' => escaped.push_str("\\\""),
+-                b'\\' => escaped.push_str("\\\\"),
+-                b'\x20'..=b'\x7E' => escaped.push(b as char),
++                b'\t' => repr.push_str(r"\t"),
++                b'\n' => repr.push_str(r"\n"),
++                b'\r' => repr.push_str(r"\r"),
++                b'"' => repr.push_str("\\\""),
++                b'\\' => repr.push_str(r"\\"),
++                b'\x20'..=b'\x7E' => repr.push(b as char),
+                 _ => {
+-                    let _ = write!(escaped, "\\x{:02X}", b);
++                    let _ = write!(repr, r"\x{:02X}", b);
+                 }
+             }
+         }
+-        escaped.push('"');
+-        Literal::_new(escaped)
++        repr.push('"');
++        Literal::_new(repr)
++    }
++
++    pub fn c_string(string: &CStr) -> Literal {
++        let mut repr = "c\"".to_string();
++        let mut bytes = string.to_bytes();
++        while !bytes.is_empty() {
++            let (valid, invalid) = match str::from_utf8(bytes) {
++                Ok(all_valid) => {
++                    bytes = b"";
++                    (all_valid, bytes)
++                }
++                Err(utf8_error) => {
++                    let (valid, rest) = bytes.split_at(utf8_error.valid_up_to());
++                    let valid = str::from_utf8(valid).unwrap();
++                    let invalid = utf8_error
++                        .error_len()
++                        .map_or(rest, |error_len| &rest[..error_len]);
++                    bytes = &bytes[valid.len() + invalid.len()..];
++                    (valid, invalid)
++                }
++            };
++            escape_utf8(valid, &mut repr);
++            for &byte in invalid {
++                let _ = write!(repr, r"\x{:02X}", byte);
++            }
++        }
++        repr.push('"');
++        Literal::_new(repr)
+     }
+ 
+     pub fn span(&self) -> Span {
+@@ -1168,3 +1200,27 @@
+         debug.finish()
+     }
+ }
++
++fn escape_utf8(string: &str, repr: &mut String) {
++    let mut chars = string.chars();
++    while let Some(ch) = chars.next() {
++        if ch == '\0' {
++            repr.push_str(
++                if chars
++                    .as_str()
++                    .starts_with(|next| '0' <= next && next <= '7')
++                {
++                    // circumvent clippy::octal_escapes lint
++                    r"\x00"
++                } else {
++                    r"\0"
++                },
++            );
++        } else if ch == '\'' {
++            // escape_debug turns this into "\'" which is unnecessary.
++            repr.push(ch);
++        } else {
++            repr.extend(ch.escape_debug());
++        }
++    }
++}
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/lib.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/lib.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/lib.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -86,7 +86,7 @@
+ //! a different thread.
+ 
+ // Proc-macro2 types in rustdoc of other crates get linked to here.
+-#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.78")]
++#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.81")]
+ #![cfg_attr(any(proc_macro_span, super_unstable), feature(proc_macro_span))]
+ #![cfg_attr(super_unstable, feature(proc_macro_def_site))]
+ #![cfg_attr(doc_cfg, feature(doc_cfg))]
+@@ -96,6 +96,7 @@
+     clippy::cast_possible_truncation,
+     clippy::checked_conversions,
+     clippy::doc_markdown,
++    clippy::incompatible_msrv,
+     clippy::items_after_statements,
+     clippy::iter_without_into_iter,
+     clippy::let_underscore_untyped,
+@@ -169,6 +170,7 @@
+ use core::ops::RangeBounds;
+ use core::str::FromStr;
+ use std::error::Error;
++use std::ffi::CStr;
+ #[cfg(procmacro2_semver_exempt)]
+ use std::path::PathBuf;
+ 
+@@ -676,12 +678,12 @@
+     Brace,
+     /// `[ ... ]`
+     Bracket,
+-    /// `Ø ... Ø`
++    /// `∅ ... ∅`
+     ///
+-    /// An implicit delimiter, that may, for example, appear around tokens
++    /// An invisible delimiter, that may, for example, appear around tokens
+     /// coming from a "macro variable" `$var`. It is important to preserve
+     /// operator priorities in cases like `$var * 3` where `$var` is `1 + 2`.
+-    /// Implicit delimiters may not survive roundtrip of a token stream through
++    /// Invisible delimiters may not survive roundtrip of a token stream through
+     /// a string.
+     None,
+ }
+@@ -1233,9 +1235,19 @@
+         Literal::_new(imp::Literal::character(ch))
+     }
+ 
++    /// Byte character literal.
++    pub fn byte_character(byte: u8) -> Literal {
++        Literal::_new(imp::Literal::byte_character(byte))
++    }
++
+     /// Byte string literal.
+-    pub fn byte_string(s: &[u8]) -> Literal {
+-        Literal::_new(imp::Literal::byte_string(s))
++    pub fn byte_string(bytes: &[u8]) -> Literal {
++        Literal::_new(imp::Literal::byte_string(bytes))
++    }
++
++    /// C string literal.
++    pub fn c_string(string: &CStr) -> Literal {
++        Literal::_new(imp::Literal::c_string(string))
+     }
+ 
+     /// Returns the span encompassing this literal.
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/wrapper.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/wrapper.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/src/wrapper.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/src/wrapper.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -7,6 +7,7 @@
+ use core::ops::Range;
+ use core::ops::RangeBounds;
+ use core::str::FromStr;
++use std::ffi::CStr;
+ use std::panic;
+ #[cfg(super_unstable)]
+ use std::path::PathBuf;
+@@ -846,19 +847,38 @@
+         }
+     }
+ 
+-    pub fn string(t: &str) -> Literal {
++    pub fn string(string: &str) -> Literal {
+         if inside_proc_macro() {
+-            Literal::Compiler(proc_macro::Literal::string(t))
++            Literal::Compiler(proc_macro::Literal::string(string))
+         } else {
+-            Literal::Fallback(fallback::Literal::string(t))
++            Literal::Fallback(fallback::Literal::string(string))
+         }
+     }
+ 
+-    pub fn character(t: char) -> Literal {
++    pub fn character(ch: char) -> Literal {
+         if inside_proc_macro() {
+-            Literal::Compiler(proc_macro::Literal::character(t))
++            Literal::Compiler(proc_macro::Literal::character(ch))
+         } else {
+-            Literal::Fallback(fallback::Literal::character(t))
++            Literal::Fallback(fallback::Literal::character(ch))
++        }
++    }
++
++    pub fn byte_character(byte: u8) -> Literal {
++        if inside_proc_macro() {
++            Literal::Compiler({
++                #[cfg(not(no_literal_byte_character))]
++                {
++                    proc_macro::Literal::byte_character(byte)
++                }
++
++                #[cfg(no_literal_byte_character)]
++                {
++                    let fallback = fallback::Literal::byte_character(byte);
++                    fallback.repr.parse::<proc_macro::Literal>().unwrap()
++                }
++            })
++        } else {
++            Literal::Fallback(fallback::Literal::byte_character(byte))
+         }
+     }
+ 
+@@ -870,6 +890,25 @@
+         }
+     }
+ 
++    pub fn c_string(string: &CStr) -> Literal {
++        if inside_proc_macro() {
++            Literal::Compiler({
++                #[cfg(not(no_literal_c_string))]
++                {
++                    proc_macro::Literal::c_string(string)
++                }
++
++                #[cfg(no_literal_c_string)]
++                {
++                    let fallback = fallback::Literal::c_string(string);
++                    fallback.repr.parse::<proc_macro::Literal>().unwrap()
++                }
++            })
++        } else {
++            Literal::Fallback(fallback::Literal::c_string(string))
++        }
++    }
++
+     pub fn span(&self) -> Span {
+         match self {
+             Literal::Compiler(lit) => Span::Compiler(lit.span()),
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/marker.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/tests/marker.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/marker.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/tests/marker.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -21,6 +21,7 @@
+             $(
+                 {
+                     // Implemented for types that implement $marker.
++                    #[allow(dead_code)]
+                     trait IsNotImplemented {
+                         fn assert_not_implemented() {}
+                     }
+diff -Nur a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/test.rs b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/tests/test.rs
+--- a/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.78/tests/test.rs	2024-04-10 23:25:21.000000000 +0200
++++ b/third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81/tests/test.rs	2024-05-29 18:02:25.000000000 +0200
+@@ -1,11 +1,14 @@
+ #![allow(
+     clippy::assertions_on_result_states,
+     clippy::items_after_statements,
++    clippy::needless_pass_by_value,
++    clippy::needless_raw_string_hashes,
+     clippy::non_ascii_literal,
+     clippy::octal_escapes
+ )]
+ 
+ use proc_macro2::{Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree};
++use std::ffi::CStr;
+ use std::iter;
+ use std::str::{self, FromStr};
+ 
+@@ -96,12 +99,22 @@
+ 
+ #[test]
+ fn literal_string() {
+-    assert_eq!(Literal::string("foo").to_string(), "\"foo\"");
+-    assert_eq!(Literal::string("\"").to_string(), "\"\\\"\"");
+-    assert_eq!(Literal::string("didn't").to_string(), "\"didn't\"");
+-    assert_eq!(
+-        Literal::string("a\00b\07c\08d\0e\0").to_string(),
+-        "\"a\\x000b\\x007c\\08d\\0e\\0\"",
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::string(""), r#"  ""  "#);
++    assert(Literal::string("aA"), r#"  "aA"  "#);
++    assert(Literal::string("\t"), r#"  "\t"  "#);
++    assert(Literal::string("❤"), r#"  "❤"  "#);
++    assert(Literal::string("'"), r#"  "'"  "#);
++    assert(Literal::string("\""), r#"  "\""  "#);
++    assert(Literal::string("\0"), r#"  "\0"  "#);
++    assert(Literal::string("\u{1}"), r#"  "\u{1}"  "#);
++    assert(
++        Literal::string("a\00b\07c\08d\0e\0"),
++        r#"  "a\x000b\x007c\08d\0e\0"  "#,
+     );
+ 
+     "\"\\\r\n    x\"".parse::<TokenStream>().unwrap();
+@@ -133,15 +146,42 @@
+ }
+ 
+ #[test]
++fn literal_byte_character() {
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::byte_character(b'a'), r#"  b'a'  "#);
++    assert(Literal::byte_character(b'\0'), r#"  b'\0'  "#);
++    assert(Literal::byte_character(b'\t'), r#"  b'\t'  "#);
++    assert(Literal::byte_character(b'\n'), r#"  b'\n'  "#);
++    assert(Literal::byte_character(b'\r'), r#"  b'\r'  "#);
++    assert(Literal::byte_character(b'\''), r#"  b'\''  "#);
++    assert(Literal::byte_character(b'\\'), r#"  b'\\'  "#);
++    assert(Literal::byte_character(b'\x1f'), r#"  b'\x1F'  "#);
++    assert(Literal::byte_character(b'"'), r#"  b'"'  "#);
++}
++
++#[test]
+ fn literal_byte_string() {
+-    assert_eq!(Literal::byte_string(b"").to_string(), "b\"\"");
+-    assert_eq!(
+-        Literal::byte_string(b"\0\t\n\r\"\\2\x10").to_string(),
+-        "b\"\\0\\t\\n\\r\\\"\\\\2\\x10\"",
+-    );
+-    assert_eq!(
+-        Literal::byte_string(b"a\00b\07c\08d\0e\0").to_string(),
+-        "b\"a\\x000b\\x007c\\08d\\0e\\0\"",
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::byte_string(b""), r#"  b""  "#);
++    assert(Literal::byte_string(b"\0"), r#"  b"\0"  "#);
++    assert(Literal::byte_string(b"\t"), r#"  b"\t"  "#);
++    assert(Literal::byte_string(b"\n"), r#"  b"\n"  "#);
++    assert(Literal::byte_string(b"\r"), r#"  b"\r"  "#);
++    assert(Literal::byte_string(b"\""), r#"  b"\""  "#);
++    assert(Literal::byte_string(b"\\"), r#"  b"\\"  "#);
++    assert(Literal::byte_string(b"\x1f"), r#"  b"\x1F"  "#);
++    assert(Literal::byte_string(b"'"), r#"  b"'"  "#);
++    assert(
++        Literal::byte_string(b"a\00b\07c\08d\0e\0"),
++        r#"  b"a\x000b\x007c\08d\0e\0"  "#,
+     );
+ 
+     "b\"\\\r\n    x\"".parse::<TokenStream>().unwrap();
+@@ -152,6 +192,41 @@
+ 
+ #[test]
+ fn literal_c_string() {
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::c_string(<&CStr>::default()), r#"  c""  "#);
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"aA\0").unwrap()),
++        r#"  c"aA"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"aA\0").unwrap()),
++        r#"  c"aA"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\t\0").unwrap()),
++        r#"  c"\t"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\xE2\x9D\xA4\0").unwrap()),
++        r#"  c"❤"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"'\0").unwrap()),
++        r#"  c"'"  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\"\0").unwrap()),
++        r#"  c"\""  "#,
++    );
++    assert(
++        Literal::c_string(CStr::from_bytes_with_nul(b"\x7F\xFF\xFE\xCC\xB3\0").unwrap()),
++        r#"  c"\u{7f}\xFF\xFE\u{333}"  "#,
++    );
++
+     let strings = r###"
+         c"hello\x80我叫\u{1F980}"  // from the RFC
+         cr"\"
+@@ -188,49 +263,80 @@
+ 
+ #[test]
+ fn literal_character() {
+-    assert_eq!(Literal::character('x').to_string(), "'x'");
+-    assert_eq!(Literal::character('\'').to_string(), "'\\''");
+-    assert_eq!(Literal::character('"').to_string(), "'\"'");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected.trim());
++    }
++
++    assert(Literal::character('a'), r#"  'a'  "#);
++    assert(Literal::character('\t'), r#"  '\t'  "#);
++    assert(Literal::character('❤'), r#"  '❤'  "#);
++    assert(Literal::character('\''), r#"  '\''  "#);
++    assert(Literal::character('"'), r#"  '"'  "#);
++    assert(Literal::character('\0'), r#"  '\0'  "#);
++    assert(Literal::character('\u{1}'), r#"  '\u{1}'  "#);
+ }
+ 
+ #[test]
+ fn literal_integer() {
+-    assert_eq!(Literal::u8_suffixed(10).to_string(), "10u8");
+-    assert_eq!(Literal::u16_suffixed(10).to_string(), "10u16");
+-    assert_eq!(Literal::u32_suffixed(10).to_string(), "10u32");
+-    assert_eq!(Literal::u64_suffixed(10).to_string(), "10u64");
+-    assert_eq!(Literal::u128_suffixed(10).to_string(), "10u128");
+-    assert_eq!(Literal::usize_suffixed(10).to_string(), "10usize");
+-
+-    assert_eq!(Literal::i8_suffixed(10).to_string(), "10i8");
+-    assert_eq!(Literal::i16_suffixed(10).to_string(), "10i16");
+-    assert_eq!(Literal::i32_suffixed(10).to_string(), "10i32");
+-    assert_eq!(Literal::i64_suffixed(10).to_string(), "10i64");
+-    assert_eq!(Literal::i128_suffixed(10).to_string(), "10i128");
+-    assert_eq!(Literal::isize_suffixed(10).to_string(), "10isize");
+-
+-    assert_eq!(Literal::u8_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u16_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u32_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u64_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::u128_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::usize_unsuffixed(10).to_string(), "10");
+-
+-    assert_eq!(Literal::i8_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i16_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i32_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i64_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::i128_unsuffixed(10).to_string(), "10");
+-    assert_eq!(Literal::isize_unsuffixed(10).to_string(), "10");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected);
++    }
++
++    assert(Literal::u8_suffixed(10), "10u8");
++    assert(Literal::u16_suffixed(10), "10u16");
++    assert(Literal::u32_suffixed(10), "10u32");
++    assert(Literal::u64_suffixed(10), "10u64");
++    assert(Literal::u128_suffixed(10), "10u128");
++    assert(Literal::usize_suffixed(10), "10usize");
++
++    assert(Literal::i8_suffixed(10), "10i8");
++    assert(Literal::i16_suffixed(10), "10i16");
++    assert(Literal::i32_suffixed(10), "10i32");
++    assert(Literal::i64_suffixed(10), "10i64");
++    assert(Literal::i128_suffixed(10), "10i128");
++    assert(Literal::isize_suffixed(10), "10isize");
++
++    assert(Literal::u8_unsuffixed(10), "10");
++    assert(Literal::u16_unsuffixed(10), "10");
++    assert(Literal::u32_unsuffixed(10), "10");
++    assert(Literal::u64_unsuffixed(10), "10");
++    assert(Literal::u128_unsuffixed(10), "10");
++    assert(Literal::usize_unsuffixed(10), "10");
++
++    assert(Literal::i8_unsuffixed(10), "10");
++    assert(Literal::i16_unsuffixed(10), "10");
++    assert(Literal::i32_unsuffixed(10), "10");
++    assert(Literal::i64_unsuffixed(10), "10");
++    assert(Literal::i128_unsuffixed(10), "10");
++    assert(Literal::isize_unsuffixed(10), "10");
++
++    assert(Literal::i32_suffixed(-10), "-10i32");
++    assert(Literal::i32_unsuffixed(-10), "-10");
+ }
+ 
+ #[test]
+ fn literal_float() {
+-    assert_eq!(Literal::f32_suffixed(10.0).to_string(), "10f32");
+-    assert_eq!(Literal::f64_suffixed(10.0).to_string(), "10f64");
+-
+-    assert_eq!(Literal::f32_unsuffixed(10.0).to_string(), "10.0");
+-    assert_eq!(Literal::f64_unsuffixed(10.0).to_string(), "10.0");
++    #[track_caller]
++    fn assert(literal: Literal, expected: &str) {
++        assert_eq!(literal.to_string(), expected);
++    }
++
++    assert(Literal::f32_suffixed(10.0), "10f32");
++    assert(Literal::f32_suffixed(-10.0), "-10f32");
++    assert(Literal::f64_suffixed(10.0), "10f64");
++    assert(Literal::f64_suffixed(-10.0), "-10f64");
++
++    assert(Literal::f32_unsuffixed(10.0), "10.0");
++    assert(Literal::f32_unsuffixed(-10.0), "-10.0");
++    assert(Literal::f64_unsuffixed(10.0), "10.0");
++    assert(Literal::f64_unsuffixed(-10.0), "-10.0");
++
++    assert(
++        Literal::f64_unsuffixed(1e100),
++        "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0",
++    );
+ }
+ 
+ #[test]
+@@ -248,9 +354,13 @@
+     assert_eq!(token_count("1._m"), 3);
+     assert_eq!(token_count("\"\"s"), 1);
+     assert_eq!(token_count("r\"\"r"), 1);
++    assert_eq!(token_count("r#\"\"#r"), 1);
+     assert_eq!(token_count("b\"\"b"), 1);
+     assert_eq!(token_count("br\"\"br"), 1);
+-    assert_eq!(token_count("r#\"\"#r"), 1);
++    assert_eq!(token_count("br#\"\"#br"), 1);
++    assert_eq!(token_count("c\"\"c"), 1);
++    assert_eq!(token_count("cr\"\"cr"), 1);
++    assert_eq!(token_count("cr#\"\"#cr"), 1);
+     assert_eq!(token_count("'c'c"), 1);
+     assert_eq!(token_count("b'b'b"), 1);
+     assert_eq!(token_count("0E"), 1);
+@@ -378,7 +488,7 @@
+     roundtrip("'a");
+     roundtrip("'_");
+     roundtrip("'static");
+-    roundtrip("'\\u{10__FFFF}'");
++    roundtrip(r"'\u{10__FFFF}'");
+     roundtrip("\"\\u{10_F0FF__}foo\\u{1_0_0_0__}\"");
+ }
+ 
+@@ -401,6 +511,7 @@
+     fail("\"\\\r  \""); // backslash carriage return
+     fail("'aa'aa");
+     fail("br##\"\"#");
++    fail("cr##\"\"#");
+     fail("\"\\\n\u{85}\r\"");
+ }
+ 

diff --git a/chromium-126-el7-std_variant.patch b/chromium-126-el7-std_variant.patch
new file mode 100644
index 0000000..3375bfc
--- /dev/null
+++ b/chromium-126-el7-std_variant.patch
@@ -0,0 +1,96 @@
+diff -up chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc.std_variant chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc
+--- chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc.std_variant	2024-06-04 12:31:10.602282813 +0200
++++ chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc	2024-06-04 13:21:50.121345183 +0200
+@@ -7,7 +7,6 @@
+ #include <map>
+ #include <memory>
+ #include <queue>
+-#include <variant>
+ #include <vector>
+ 
+ #include "base/barrier_callback.h"
+@@ -41,20 +40,16 @@ std::vector<URLVisitAggregate> ComputeUR
+     for (std::pair<const URLMergeKey, URLVisitAggregate::URLVisitVariant>&
+              url_data : result.data) {
+       URLVisitAggregate& aggregate = url_visit_map[url_data.first];
+-      std::visit(
+-          URLVisitVariantHelper{
+-              [&aggregate](URLVisitAggregate::TabData& tab_data) {
+-                aggregate.fetcher_data_map.emplace(
+-                    tab_data.last_active_tab.session_name.has_value()
+-                        ? Fetcher::kSession
+-                        : Fetcher::kTabModel,
+-                    std::move(tab_data));
+-              },
+-              [&aggregate](URLVisitAggregate::HistoryData& history_data) {
+-                aggregate.fetcher_data_map.emplace(Fetcher::kHistory,
+-                                                   std::move(history_data));
+-              }},
+-          url_data.second);
++      if (std::holds_alternative<URLVisitAggregate::TabData>(url_data.second)) {
++        auto& tab_data = std::get<URLVisitAggregate::TabData>(url_data.second);
++        aggregate.fetcher_data_map.emplace(
++            tab_data.last_active_tab.session_name.has_value()
++                ? Fetcher::kSession
++                : Fetcher::kTabModel,
++            std::move(tab_data));
++      }
++      // TODO(crbug.com/330580109): Add support for history fetcher and
++      // associated aggregate data type.
+     }
+   }
+ 
+diff -up chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc.std_variant chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc
+--- chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc.std_variant	2024-06-04 12:29:20.593240495 +0200
++++ chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc	2024-06-04 12:29:57.253921979 +0200
+@@ -37,14 +37,12 @@ URLVisitAggregate& URLVisitAggregate::op
+ std::set<const GURL*> URLVisitAggregate::GetAssociatedURLs() const {
+   std::set<const GURL*> urls = {};
+   for (const auto& fetcher_entry : fetcher_data_map) {
+-    std::visit(URLVisitVariantHelper{
+-                   [&urls](const URLVisitAggregate::TabData& tab_data) {
+-                     urls.insert(&tab_data.last_active_tab.visit.url);
+-                   },
+-                   [&urls](const URLVisitAggregate::HistoryData& history_data) {
+-                     urls.insert(&history_data.last_visited.url_row.url());
+-                   }},
+-               fetcher_entry.second);
++    if (std::holds_alternative<URLVisitAggregate::TabData>(
++            fetcher_entry.second)) {
++      const auto& tab_data =
++          std::get<URLVisitAggregate::TabData>(fetcher_entry.second);
++      urls.insert(&tab_data.last_active_tab.visit.url);
++    }
+   }
+   return urls;
+ }
+diff -up chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h.std_variant chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h
+--- chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h.std_variant	2024-06-04 11:05:39.505847241 +0200
++++ chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h	2024-06-04 13:22:26.518007748 +0200
+@@ -8,6 +8,7 @@
+ #include <memory>
+ #include <optional>
+ #include <set>
++#include <variant>
+ #include <vector>
+ 
+ #include "base/functional/callback.h"
+@@ -140,18 +141,6 @@ struct URLVisitAggregate {
+   bool bookmarked = false;
+ };
+ 
+-// Helper to visit each variant of URLVisitVariant.
+-// Usage:
+-//   std::visit(URLVisitVariantHelper{
+-//         [](Variant1& variant1) {},
+-//         [](Variant2& variant1) {},
+-//         [](Variant3& variant1) {},
+-//      variant_data);
+-template <class... Ts>
+-struct URLVisitVariantHelper : Ts... {
+-  using Ts::operator()...;
+-};
+-
+ }  // namespace visited_url_ranking
+ 
+ #endif  // COMPONENTS_VISITED_URL_RANKING_PUBLIC_URL_VISIT_H_

diff --git a/chromium-126-el7-stdformat.patch b/chromium-126-el7-stdformat.patch
new file mode 100644
index 0000000..80a2da8
--- /dev/null
+++ b/chromium-126-el7-stdformat.patch
@@ -0,0 +1,21 @@
+diff -up chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc.stdformat chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc
+--- chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc.stdformat	2024-06-03 22:52:18.596936767 +0200
++++ chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc	2024-06-03 23:26:46.024734453 +0200
+@@ -1059,7 +1059,7 @@ std::string ReadAnythingAppModel::GetHtm
+     int32_t hierarchical_level =
+         ax_node->GetIntAttribute(ax::mojom::IntAttribute::kHierarchicalLevel);
+     if (hierarchical_level) {
+-      return std::format("h{}", hierarchical_level);
++      return std::string("h" + std::to_string(hierarchical_level));
+     }
+   }
+ 
+@@ -1159,7 +1159,7 @@ std::string ReadAnythingAppModel::GetHea
+   int32_t hierarchical_level =
+       ax_node->GetIntAttribute(ax::mojom::IntAttribute::kHierarchicalLevel);
+   if (hierarchical_level) {
+-    return std::format("h{}", hierarchical_level);
++    return std::string("h" + std::to_string(hierarchical_level));
+   }
+   return html_tag;
+ }

diff --git a/chromium-126-el7-type-alias.patch b/chromium-126-el7-type-alias.patch
new file mode 100644
index 0000000..38e7bc1
--- /dev/null
+++ b/chromium-126-el7-type-alias.patch
@@ -0,0 +1,30 @@
+diff -up chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc.el7-type-alias chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc
+--- chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc.el7-type-alias	2024-05-29 18:01:08.000000000 +0200
++++ chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc	2024-06-02 17:32:29.917153207 +0200
+@@ -196,7 +196,7 @@ std::vector<Suggestion> PlusAddressServi
+     bool is_off_the_record,
+     std::u16string_view focused_field_value,
+     autofill::AutofillSuggestionTriggerSource trigger_source) {
+-  using enum autofill::AutofillSuggestionTriggerSource;
++  using autofill::AutofillSuggestionTriggerSource;
+   if (!SupportsPlusAddresses(last_committed_primary_main_frame_origin,
+                              is_off_the_record)) {
+     return {};
+@@ -207,7 +207,7 @@ std::vector<Suggestion> PlusAddressServi
+   std::optional<std::string> maybe_address =
+       GetPlusAddress(OriginToFacet(last_committed_primary_main_frame_origin));
+   if (maybe_address == std::nullopt) {
+-    if (trigger_source != kManualFallbackPlusAddresses &&
++    if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
+         !normalized_field_value.empty()) {
+       return {};
+     }
+@@ -222,7 +222,7 @@ std::vector<Suggestion> PlusAddressServi
+ 
+   // Only suggest filling a plus address whose prefix matches the field's value.
+   std::u16string address = base::UTF8ToUTF16(*maybe_address);
+-  if (trigger_source != kManualFallbackPlusAddresses &&
++  if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
+       !address.starts_with(normalized_field_value)) {
+     return {};
+   }

diff --git a/chromium-126-split-threshold-for-reg-with-hint.patch b/chromium-126-split-threshold-for-reg-with-hint.patch
new file mode 100644
index 0000000..4ae1f29
--- /dev/null
+++ b/chromium-126-split-threshold-for-reg-with-hint.patch
@@ -0,0 +1,28 @@
+diff -up chromium-126.0.6478.26/build/config/compiler/BUILD.gn.me chromium-126.0.6478.26/build/config/compiler/BUILD.gn
+--- chromium-126.0.6478.26/build/config/compiler/BUILD.gn.me	2024-06-02 14:02:52.516602574 +0200
++++ chromium-126.0.6478.26/build/config/compiler/BUILD.gn	2024-06-02 14:17:24.527503540 +0200
+@@ -575,24 +575,6 @@ config("compiler") {
+       }
+     }
+ 
+-    # TODO(crbug.com/40283598): This causes binary size growth and potentially
+-    # other problems.
+-    # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
+-    if (default_toolchain != "//build/toolchain/cros:target" &&
+-        !llvm_android_mainline) {
+-      cflags += [
+-        "-mllvm",
+-        "-split-threshold-for-reg-with-hint=0",
+-      ]
+-      if (use_thin_lto && is_a_target_toolchain) {
+-        if (is_win) {
+-          ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
+-        } else {
+-          ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
+-        }
+-      }
+-    }
+-
+     # TODO(crbug.com/40192287): Investigate why/if this should be needed.
+     if (is_win) {
+       cflags += [ "/clang:-ffp-contract=off" ]

diff --git a/chromium-126-system-libstdc++.patch b/chromium-126-system-libstdc++.patch
new file mode 100644
index 0000000..396f48f
--- /dev/null
+++ b/chromium-126-system-libstdc++.patch
@@ -0,0 +1,667 @@
+diff -up chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h.system-libstdc++ chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h
+--- chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h.system-libstdc++	2024-05-29 18:00:45.000000000 +0200
++++ chromium-126.0.6478.26/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h	2024-06-02 23:51:25.562917154 +0200
+@@ -14,7 +14,7 @@
+ #include <unordered_map>
+ #include <utility>
+ 
+-#include "partition_alloc/internal_allocator_forward.h"
++#include "partition_alloc/internal_allocator.h"
+ #include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+ #include "partition_alloc/partition_alloc_base/time/time.h"
+ #include "partition_alloc/partition_alloc_check.h"
+diff -up chromium-126.0.6478.26/chrome/browser/ui/tabs/tab_strip_model.h.system-libstdc++ chromium-126.0.6478.26/chrome/browser/ui/tabs/tab_strip_model.h
+--- chromium-126.0.6478.26/chrome/browser/ui/tabs/tab_strip_model.h.system-libstdc++	2024-05-29 18:00:59.000000000 +0200
++++ chromium-126.0.6478.26/chrome/browser/ui/tabs/tab_strip_model.h	2024-06-02 23:51:25.563917178 +0200
+@@ -12,6 +12,7 @@
+ #include <memory>
+ #include <optional>
+ #include <string>
++#include <variant>
+ #include <vector>
+ 
+ #include "base/containers/span.h"
+diff -up chromium-126.0.6478.26/components/viz/service/display/surface_aggregator.cc.system-libstdc++ chromium-126.0.6478.26/components/viz/service/display/surface_aggregator.cc
+--- chromium-126.0.6478.26/components/viz/service/display/surface_aggregator.cc.system-libstdc++	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/components/viz/service/display/surface_aggregator.cc	2024-06-02 23:51:25.563917178 +0200
+@@ -2296,7 +2296,7 @@ AggregatedFrame SurfaceAggregator::Aggre
+   root_surface_id_ = surface_id;
+ 
+   // Start recording new stats for this aggregation.
+-  stats_.emplace();
++  stats_ = AggregateStatistics{};
+ 
+   base::ElapsedTimer prewalk_timer;
+   ResolvedFrameData* resolved_frame = GetResolvedFrame(surface_id);
+diff -up chromium-126.0.6478.26/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc.system-libstdc++ chromium-126.0.6478.26/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc
+--- chromium-126.0.6478.26/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc.system-libstdc++	2024-05-29 18:01:12.000000000 +0200
++++ chromium-126.0.6478.26/content/browser/first_party_sets/first_party_sets_handler_database_helper.cc	2024-06-02 23:51:25.563917178 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <optional>
+ #include "content/browser/first_party_sets/first_party_sets_handler_database_helper.h"
+ 
+ #include "base/containers/contains.h"
+diff -up chromium-126.0.6478.26/content/services/auction_worklet/real_time_reporting_bindings.h.system-libstdc++ chromium-126.0.6478.26/content/services/auction_worklet/real_time_reporting_bindings.h
+--- chromium-126.0.6478.26/content/services/auction_worklet/real_time_reporting_bindings.h.system-libstdc++	2024-06-04 13:52:43.689553459 +0200
++++ chromium-126.0.6478.26/content/services/auction_worklet/real_time_reporting_bindings.h	2024-06-04 13:52:01.117778943 +0200
+@@ -12,7 +12,7 @@
+ #include "content/common/content_export.h"
+ #include "content/services/auction_worklet/auction_v8_helper.h"
+ #include "content/services/auction_worklet/context_recycler.h"
+-#include "content/services/auction_worklet/public/mojom/real_time_reporting.mojom-forward.h"
++#include "content/services/auction_worklet/public/mojom/real_time_reporting.mojom.h"
+ #include "v8/include/v8-forward.h"
+ 
+ namespace auction_worklet {
+diff -up chromium-126.0.6478.26/gpu/command_buffer/service/shared_image/shared_image_backing.h.system-libstdc++ chromium-126.0.6478.26/gpu/command_buffer/service/shared_image/shared_image_backing.h
+--- chromium-126.0.6478.26/gpu/command_buffer/service/shared_image/shared_image_backing.h.system-libstdc++	2024-05-29 18:01:26.000000000 +0200
++++ chromium-126.0.6478.26/gpu/command_buffer/service/shared_image/shared_image_backing.h	2024-06-02 23:51:25.564917202 +0200
+@@ -111,6 +111,25 @@ using VideoDecodeDevice = Microsoft::WRL
+ using VideoDecodeDevice = void*;
+ #endif  // BUILDFLAG(IS_WIN)
+ 
++class ScopedWriteUMA {
++ public:
++  ScopedWriteUMA() = default;
++
++  ScopedWriteUMA(const ScopedWriteUMA&) = delete;
++  ScopedWriteUMA& operator=(const ScopedWriteUMA&) = delete;
++
++  ~ScopedWriteUMA() {
++    UMA_HISTOGRAM_BOOLEAN("GPU.SharedImage.ContentConsumed",
++                          content_consumed_);
++  }
++
++  bool content_consumed() const { return content_consumed_; }
++  void SetConsumed() { content_consumed_ = true; }
++
++ private:
++  bool content_consumed_ = false;
++};
++
+ // Represents the actual storage (GL texture, VkImage, GMB) for a SharedImage.
+ // Should not be accessed directly, instead is accessed through a
+ // SharedImageRepresentation.
+@@ -384,25 +403,6 @@ class GPU_GLES2_EXPORT SharedImageBackin
+   mutable std::optional<base::Lock> lock_;
+ 
+  private:
+-  class ScopedWriteUMA {
+-   public:
+-    ScopedWriteUMA() = default;
+-
+-    ScopedWriteUMA(const ScopedWriteUMA&) = delete;
+-    ScopedWriteUMA& operator=(const ScopedWriteUMA&) = delete;
+-
+-    ~ScopedWriteUMA() {
+-      UMA_HISTOGRAM_BOOLEAN("GPU.SharedImage.ContentConsumed",
+-                            content_consumed_);
+-    }
+-
+-    bool content_consumed() const { return content_consumed_; }
+-    void SetConsumed() { content_consumed_ = true; }
+-
+-   private:
+-    bool content_consumed_ = false;
+-  };
+-
+   const Mailbox mailbox_;
+   const viz::SharedImageFormat format_;
+   const gfx::Size size_;
+diff -up chromium-126.0.6478.26/mojo/public/cpp/bindings/lib/multiplex_router.cc.system-libstdc++ chromium-126.0.6478.26/mojo/public/cpp/bindings/lib/multiplex_router.cc
+--- chromium-126.0.6478.26/mojo/public/cpp/bindings/lib/multiplex_router.cc.system-libstdc++	2024-05-29 18:01:33.000000000 +0200
++++ chromium-126.0.6478.26/mojo/public/cpp/bindings/lib/multiplex_router.cc	2024-06-02 23:51:25.564917202 +0200
+@@ -893,7 +893,7 @@ bool MultiplexRouter::ExclusiveSyncWaitF
+   DCHECK(!exclusive_sync_wait_);
+ 
+   scoped_refptr<MultiplexRouter> keep_alive(this);
+-  exclusive_sync_wait_.emplace();
++  exclusive_sync_wait_ = ExclusiveSyncWaitInfo{};
+   exclusive_sync_wait_->interface_id = interface_id;
+   exclusive_sync_wait_->request_id = request_id;
+   while (!exclusive_sync_wait_->finished) {
+diff -up chromium-126.0.6478.26/third_party/blink/common/interest_group/auction_config_mojom_traits.cc.system-libstdc++ chromium-126.0.6478.26/third_party/blink/common/interest_group/auction_config_mojom_traits.cc
+--- chromium-126.0.6478.26/third_party/blink/common/interest_group/auction_config_mojom_traits.cc.system-libstdc++	2024-05-29 18:01:37.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/common/interest_group/auction_config_mojom_traits.cc	2024-06-02 23:51:25.565917225 +0200
+@@ -225,8 +225,6 @@ bool StructTraits<blink::mojom::AuctionA
+       !data.ReadAllBuyersPrioritySignals(&out->all_buyers_priority_signals) ||
+       !data.ReadAuctionReportBuyerKeys(&out->auction_report_buyer_keys) ||
+       !data.ReadAuctionReportBuyers(&out->auction_report_buyers) ||
+-      !data.ReadAuctionReportBuyerDebugModeConfig(
+-          &out->auction_report_buyer_debug_mode_config) ||
+       !data.ReadRequiredSellerCapabilities(
+           &out->required_seller_capabilities) ||
+       !data.ReadRequestedSize(&out->requested_size) ||
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/loader/history_item.cc.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/core/loader/history_item.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/loader/history_item.cc.system-libstdc++	2024-05-29 18:01:39.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/loader/history_item.cc	2024-06-02 23:51:25.565917225 +0200
+@@ -182,26 +182,26 @@ void HistoryItem::SetReferrerPolicy(netw
+ 
+ void HistoryItem::SetVisualViewportScrollOffset(const ScrollOffset& offset) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->visual_viewport_scroll_offset_ = offset;
+ }
+ 
+ void HistoryItem::SetScrollOffset(const ScrollOffset& offset) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->scroll_offset_ = offset;
+ }
+ 
+ void HistoryItem::SetPageScaleFactor(float scale_factor) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->page_scale_factor_ = scale_factor;
+ }
+ 
+ void HistoryItem::SetScrollAnchorData(
+     const ScrollAnchorData& scroll_anchor_data) {
+   if (!view_state_)
+-    view_state_ = std::make_optional<ViewState>();
++    view_state_ = blink::HistoryItem::ViewState{};
+   view_state_->scroll_anchor_data_ = scroll_anchor_data;
+ }
+ 
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/page/page_popup_controller.h.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/core/page/page_popup_controller.h
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/page/page_popup_controller.h.system-libstdc++	2024-06-04 17:01:05.066469613 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/page/page_popup_controller.h	2024-06-04 16:51:41.076869743 +0200
+@@ -31,6 +31,7 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_POPUP_CONTROLLER_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_POPUP_CONTROLLER_H_
+ 
++#include <optional>
+ #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
+ #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
+ #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/paint/fragment_data_iterator.h.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/core/paint/fragment_data_iterator.h
+--- chromium-126.0.6478.26/third_party/blink/renderer/core/paint/fragment_data_iterator.h.system-libstdc++	2024-05-29 18:01:40.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/core/paint/fragment_data_iterator.h	2024-06-02 23:51:25.565917225 +0200
+@@ -22,7 +22,7 @@ class FragmentDataIteratorBase {
+ 
+  public:
+   explicit FragmentDataIteratorBase(Head& head) : fragment_head_(head) {}
+-  explicit FragmentDataIteratorBase(nullptr_t) {}
++  explicit FragmentDataIteratorBase(std::nullptr_t) {}
+ 
+   Data* GetFragmentData() const {
+     return !IsDone() ? &fragment_head_.at(idx_) : nullptr;
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/modules/encoding/text_decoder.h.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/modules/encoding/text_decoder.h
+--- chromium-126.0.6478.26/third_party/blink/renderer/modules/encoding/text_decoder.h.system-libstdc++	2024-06-03 23:14:03.138724802 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/modules/encoding/text_decoder.h	2024-06-03 23:14:41.395654435 +0200
+@@ -31,6 +31,7 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ENCODING_TEXT_DECODER_H_
+ #define THIRD_PARTY_BLINK_RENDERER_MODULES_ENCODING_TEXT_DECODER_H_
+ 
++#include <optional>
+ #include <memory>
+ 
+ #include "third_party/blink/renderer/bindings/core/v8/v8_typedefs.h"
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc.system-libstdc++	2024-05-29 18:01:40.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc	2024-06-02 23:51:25.566917250 +0200
+@@ -102,7 +102,7 @@ void MediaControlTimelineElement::Update
+ void MediaControlTimelineElement::SetPosition(double current_time,
+                                               bool suppress_aria) {
+   if (is_live_ && !live_anchor_time_ && current_time != 0) {
+-    live_anchor_time_.emplace();
++    live_anchor_time_ = LiveAnchorTime{};
+     live_anchor_time_->clock_time_ = base::TimeTicks::Now();
+     live_anchor_time_->media_time_ = MediaElement().currentTime();
+   }
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h
+--- chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h.system-libstdc++	2024-06-04 16:52:15.268516255 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h	2024-06-04 16:56:23.906705337 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include <unicode/uscript.h>
+ #include <memory>
++#include <optional>
+ #include "third_party/blink/renderer/platform/fonts/font_orientation.h"
+ #include "third_party/blink/renderer/platform/fonts/orientation_iterator.h"
+ #include "third_party/blink/renderer/platform/fonts/script_run_iterator.h"
+diff -up chromium-126.0.6478.26/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc.system-libstdc++ chromium-126.0.6478.26/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc
+--- chromium-126.0.6478.26/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc.system-libstdc++	2024-05-29 18:01:41.000000000 +0200
++++ chromium-126.0.6478.26/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.cc	2024-06-02 23:51:25.566917250 +0200
+@@ -70,7 +70,7 @@ void GeometryMapperTransformCache::Updat
+     to_2d_translation_root_ += translation;
+ 
+     if (parent.plane_root_transform_) {
+-      plane_root_transform_.emplace();
++      plane_root_transform_ = PlaneRootTransform{};
+       plane_root_transform_->plane_root = parent.plane_root();
+       plane_root_transform_->to_plane_root = parent.to_plane_root();
+       plane_root_transform_->to_plane_root.Translate(translation.x(),
+@@ -98,7 +98,7 @@ void GeometryMapperTransformCache::Updat
+       // as the 2d translation root.
+       plane_root_transform_ = std::nullopt;
+     } else {
+-      plane_root_transform_.emplace();
++      plane_root_transform_ = PlaneRootTransform{};
+       plane_root_transform_->plane_root = parent.plane_root();
+       plane_root_transform_->to_plane_root.MakeIdentity();
+       parent.ApplyToPlaneRoot(plane_root_transform_->to_plane_root);
+@@ -140,7 +140,7 @@ void GeometryMapperTransformCache::Updat
+   parent_node->UpdateScreenTransform();
+   const auto& parent = parent_node->GetTransformCache();
+ 
+-  screen_transform_.emplace();
++  screen_transform_ = ScreenTransform{};
+   parent.ApplyToScreen(screen_transform_->to_screen);
+   if (node.FlattensInheritedTransform())
+     screen_transform_->to_screen.Flatten();
+diff -up chromium-126.0.6478.26/third_party/ruy/src/ruy/profiler/instrumentation.h.system-libstdc++ chromium-126.0.6478.26/third_party/ruy/src/ruy/profiler/instrumentation.h
+--- chromium-126.0.6478.26/third_party/ruy/src/ruy/profiler/instrumentation.h.system-libstdc++	2024-05-29 18:03:01.000000000 +0200
++++ chromium-126.0.6478.26/third_party/ruy/src/ruy/profiler/instrumentation.h	2024-06-02 23:51:25.566917250 +0200
+@@ -19,6 +19,7 @@ limitations under the License.
+ #ifdef RUY_PROFILER
+ #include <cstdio>
+ #include <mutex>
++#include <string>
+ #include <vector>
+ #endif
+ 
+diff -up chromium-126.0.6478.26/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc.system-libstdc++ chromium-126.0.6478.26/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc
+--- chromium-126.0.6478.26/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc.system-libstdc++	2024-05-29 18:03:48.000000000 +0200
++++ chromium-126.0.6478.26/third_party/webrtc/modules/congestion_controller/goog_cc/loss_based_bwe_v2.cc	2024-06-02 23:51:25.567917273 +0200
+@@ -549,7 +549,7 @@ absl::optional<LossBasedBweV2::Config> L
+   if (!enabled.Get()) {
+     return config;
+   }
+-  config.emplace();
++  config = Config{};
+   config->bandwidth_rampup_upper_bound_factor =
+       bandwidth_rampup_upper_bound_factor.Get();
+   config->bandwidth_rampup_upper_bound_factor_in_hold =
+diff -up chromium-126.0.6478.26/ui/gfx/x/generated_protos/randr.cc.system-libstdc++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/randr.cc
+--- chromium-126.0.6478.26/ui/gfx/x/generated_protos/randr.cc.system-libstdc++	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/randr.cc	2024-06-02 23:51:25.568917297 +0200
+@@ -305,7 +305,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+   // data
+   auto data_expr = subCode;
+   if (CaseEq(data_expr, RandR::Notify::CrtcChange)) {
+-    data.cc.emplace();
++    data.cc = RandR::NotifyEvent::Cc{};
+     auto& timestamp = (*data.cc).timestamp;
+     auto& window = (*data.cc).window;
+     auto& crtc = (*data.cc).crtc;
+@@ -349,7 +349,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Read(&height, &buf);
+   }
+   if (CaseEq(data_expr, RandR::Notify::OutputChange)) {
+-    data.oc.emplace();
++    data.oc = RandR::NotifyEvent::Oc{};
+     auto& timestamp = (*data.oc).timestamp;
+     auto& config_timestamp = (*data.oc).config_timestamp;
+     auto& window = (*data.oc).window;
+@@ -394,7 +394,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     subpixel_order = static_cast<Render::SubPixel>(tmp6);
+   }
+   if (CaseEq(data_expr, RandR::Notify::OutputProperty)) {
+-    data.op.emplace();
++    data.op = RandR::NotifyEvent::Op{};
+     auto& window = (*data.op).window;
+     auto& output = (*data.op).output;
+     auto& atom = (*data.op).atom;
+@@ -422,7 +422,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 11);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ProviderChange)) {
+-    data.pc.emplace();
++    data.pc = RandR::NotifyEvent::Pc{};
+     auto& timestamp = (*data.pc).timestamp;
+     auto& window = (*data.pc).window;
+     auto& provider = (*data.pc).provider;
+@@ -440,7 +440,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 16);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ProviderProperty)) {
+-    data.pp.emplace();
++    data.pp = RandR::NotifyEvent::Pp{};
+     auto& window = (*data.pp).window;
+     auto& provider = (*data.pp).provider;
+     auto& atom = (*data.pp).atom;
+@@ -466,7 +466,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 11);
+   }
+   if (CaseEq(data_expr, RandR::Notify::ResourceChange)) {
+-    data.rc.emplace();
++    data.rc = RandR::NotifyEvent::Rc{};
+     auto& timestamp = (*data.rc).timestamp;
+     auto& window = (*data.rc).window;
+ 
+@@ -480,7 +480,7 @@ void ReadEvent<RandR::NotifyEvent>(RandR
+     Pad(&buf, 20);
+   }
+   if (CaseEq(data_expr, RandR::Notify::Lease)) {
+-    data.lc.emplace();
++    data.lc = RandR::NotifyEvent::Lc{};
+     auto& timestamp = (*data.lc).timestamp;
+     auto& window = (*data.lc).window;
+     auto& lease = (*data.lc).lease;
+diff -up chromium-126.0.6478.26/ui/gfx/x/generated_protos/xinput.cc.system-libstdc++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/xinput.cc
+--- chromium-126.0.6478.26/ui/gfx/x/generated_protos/xinput.cc.system-libstdc++	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/xinput.cc	2024-06-02 23:51:25.569917321 +0200
+@@ -560,7 +560,7 @@ void ReadEvent<Input::DeviceChangedEvent
+       // data
+       auto data_expr = type;
+       if (CaseEq(data_expr, Input::DeviceClassType::Key)) {
+-        data.key.emplace();
++        data.key = Input::DeviceClass::Key{};
+         uint16_t num_keys{};
+         auto& keys = (*data.key).keys;
+ 
+@@ -575,7 +575,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Button)) {
+-        data.button.emplace();
++        data.button = Input::DeviceClass::Button{};
+         uint16_t num_buttons{};
+         auto& state = (*data.button).state;
+         auto& labels = (*data.button).labels;
+@@ -598,7 +598,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Valuator)) {
+-        data.valuator.emplace();
++        data.valuator = Input::DeviceClass::Valuator{};
+         auto& number = (*data.valuator).number;
+         auto& label = (*data.valuator).label;
+         auto& min = (*data.valuator).min;
+@@ -661,7 +661,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         Pad(&buf, 3);
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Scroll)) {
+-        data.scroll.emplace();
++        data.scroll = Input::DeviceClass::Scroll{};
+         auto& number = (*data.scroll).number;
+         auto& scroll_type = (*data.scroll).scroll_type;
+         auto& flags = (*data.scroll).flags;
+@@ -696,7 +696,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         }
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Touch)) {
+-        data.touch.emplace();
++        data.touch = Input::DeviceClass::Touch{};
+         auto& mode = (*data.touch).mode;
+         auto& num_touches = (*data.touch).num_touches;
+ 
+@@ -709,7 +709,7 @@ void ReadEvent<Input::DeviceChangedEvent
+         Read(&num_touches, &buf);
+       }
+       if (CaseEq(data_expr, Input::DeviceClassType::Gesture)) {
+-        data.gesture.emplace();
++        data.gesture = Input::DeviceClass::Gesture{};
+         auto& num_touches = (*data.gesture).num_touches;
+ 
+         // num_touches
+@@ -2187,7 +2187,7 @@ std::unique_ptr<Input::ListInputDevicesR
+       // info
+       auto info_expr = class_id;
+       if (CaseEq(info_expr, Input::InputClass::Key)) {
+-        info.key.emplace();
++        info.key = Input::InputInfo::Key{};
+         auto& min_keycode = (*info.key).min_keycode;
+         auto& max_keycode = (*info.key).max_keycode;
+         auto& num_keys = (*info.key).num_keys;
+@@ -2205,14 +2205,14 @@ std::unique_ptr<Input::ListInputDevicesR
+         Pad(&buf, 2);
+       }
+       if (CaseEq(info_expr, Input::InputClass::Button)) {
+-        info.button.emplace();
++        info.button = Input::InputInfo::Button{};
+         auto& num_buttons = (*info.button).num_buttons;
+ 
+         // num_buttons
+         Read(&num_buttons, &buf);
+       }
+       if (CaseEq(info_expr, Input::InputClass::Valuator)) {
+-        info.valuator.emplace();
++        info.valuator = Input::InputInfo::Valuator{};
+         uint8_t axes_len{};
+         auto& mode = (*info.valuator).mode;
+         auto& motion_size = (*info.valuator).motion_size;
+@@ -3818,7 +3818,7 @@ std::unique_ptr<Input::GetFeedbackContro
+       // data
+       auto data_expr = class_id;
+       if (CaseEq(data_expr, Input::FeedbackClass::Keyboard)) {
+-        data.keyboard.emplace();
++        data.keyboard = x11::Input::FeedbackState::Keyboard{};
+         auto& pitch = (*data.keyboard).pitch;
+         auto& duration = (*data.keyboard).duration;
+         auto& led_mask = (*data.keyboard).led_mask;
+@@ -3859,7 +3859,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         }
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Pointer)) {
+-        data.pointer.emplace();
++        data.pointer = x11::Input::FeedbackState::Pointer{};
+         auto& accel_num = (*data.pointer).accel_num;
+         auto& accel_denom = (*data.pointer).accel_denom;
+         auto& threshold = (*data.pointer).threshold;
+@@ -3877,7 +3877,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&threshold, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::String)) {
+-        data.string.emplace();
++        data.string = x11::Input::FeedbackState::String{};
+         auto& max_symbols = (*data.string).max_symbols;
+         uint16_t num_keysyms{};
+         auto& keysyms = (*data.string).keysyms;
+@@ -3896,7 +3896,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         }
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Integer)) {
+-        data.integer.emplace();
++        data.integer = x11::Input::FeedbackState::Integer{};
+         auto& resolution = (*data.integer).resolution;
+         auto& min_value = (*data.integer).min_value;
+         auto& max_value = (*data.integer).max_value;
+@@ -3911,7 +3911,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&max_value, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Led)) {
+-        data.led.emplace();
++        data.led = x11::Input::FeedbackState::Led{};
+         auto& led_mask = (*data.led).led_mask;
+         auto& led_values = (*data.led).led_values;
+ 
+@@ -3922,7 +3922,7 @@ std::unique_ptr<Input::GetFeedbackContro
+         Read(&led_values, &buf);
+       }
+       if (CaseEq(data_expr, Input::FeedbackClass::Bell)) {
+-        data.bell.emplace();
++        data.bell = x11::Input::FeedbackState::Bell{};
+         auto& percent = (*data.bell).percent;
+         auto& pitch = (*data.bell).pitch;
+         auto& duration = (*data.bell).duration;
+@@ -4735,7 +4735,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+       // data
+       auto data_expr = class_id;
+       if (CaseEq(data_expr, Input::InputClass::Key)) {
+-        data.key.emplace();
++        data.key = x11::Input::InputState::Key{};
+         auto& num_keys = (*data.key).num_keys;
+         auto& keys = (*data.key).keys;
+ 
+@@ -4752,7 +4752,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+         }
+       }
+       if (CaseEq(data_expr, Input::InputClass::Button)) {
+-        data.button.emplace();
++        data.button = x11::Input::InputState::Button{};
+         auto& num_buttons = (*data.button).num_buttons;
+         auto& buttons = (*data.button).buttons;
+ 
+@@ -4769,7 +4769,7 @@ std::unique_ptr<Input::QueryDeviceStateR
+         }
+       }
+       if (CaseEq(data_expr, Input::InputClass::Valuator)) {
+-        data.valuator.emplace();
++        data.valuator = x11::Input::InputState::Valuator{};
+         uint8_t num_valuators{};
+         auto& mode = (*data.valuator).mode;
+         auto& valuators = (*data.valuator).valuators;
+@@ -5039,7 +5039,7 @@ std::unique_ptr<Input::GetDeviceControlR
+     // data
+     auto data_expr = control_id;
+     if (CaseEq(data_expr, Input::DeviceControl::resolution)) {
+-      data.resolution.emplace();
++      data.resolution = x11::Input::DeviceState::Resolution{};
+       uint32_t num_valuators{};
+       auto& resolution_values = (*data.resolution).resolution_values;
+       auto& resolution_min = (*data.resolution).resolution_min;
+@@ -5070,7 +5070,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       }
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::abs_calib)) {
+-      data.abs_calib.emplace();
++      data.abs_calib = x11::Input::DeviceState::AbsCalib{};
+       auto& min_x = (*data.abs_calib).min_x;
+       auto& max_x = (*data.abs_calib).max_x;
+       auto& min_y = (*data.abs_calib).min_y;
+@@ -5105,7 +5105,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Read(&button_threshold, &buf);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::core)) {
+-      data.core.emplace();
++      data.core = x11::Input::DeviceState::Core{};
+       auto& status = (*data.core).status;
+       auto& iscore = (*data.core).iscore;
+ 
+@@ -5119,7 +5119,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Pad(&buf, 2);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::enable)) {
+-      data.enable.emplace();
++      data.enable = x11::Input::DeviceState::Enable{};
+       auto& enable = (*data.enable).enable;
+ 
+       // enable
+@@ -5129,7 +5129,7 @@ std::unique_ptr<Input::GetDeviceControlR
+       Pad(&buf, 3);
+     }
+     if (CaseEq(data_expr, Input::DeviceControl::abs_area)) {
+-      data.abs_area.emplace();
++      data.abs_area = x11::Input::DeviceState::AbsArea{};
+       auto& offset_x = (*data.abs_area).offset_x;
+       auto& offset_y = (*data.abs_area).offset_y;
+       auto& width = (*data.abs_area).width;
+@@ -6610,7 +6610,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+           // data
+           auto data_expr = type;
+           if (CaseEq(data_expr, Input::DeviceClassType::Key)) {
+-            data.key.emplace();
++            data.key = Input::DeviceClass::Key{};
+             uint16_t num_keys{};
+             auto& keys = (*data.key).keys;
+ 
+@@ -6625,7 +6625,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Button)) {
+-            data.button.emplace();
++            data.button = Input::DeviceClass::Button{};
+             uint16_t num_buttons{};
+             auto& state = (*data.button).state;
+             auto& labels = (*data.button).labels;
+@@ -6648,7 +6648,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Valuator)) {
+-            data.valuator.emplace();
++            data.valuator = Input::DeviceClass::Valuator{};
+             auto& number = (*data.valuator).number;
+             auto& label = (*data.valuator).label;
+             auto& min = (*data.valuator).min;
+@@ -6711,7 +6711,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             Pad(&buf, 3);
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Scroll)) {
+-            data.scroll.emplace();
++            data.scroll = Input::DeviceClass::Scroll{};
+             auto& number = (*data.scroll).number;
+             auto& scroll_type = (*data.scroll).scroll_type;
+             auto& flags = (*data.scroll).flags;
+@@ -6746,7 +6746,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             }
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Touch)) {
+-            data.touch.emplace();
++            data.touch = Input::DeviceClass::Touch{};
+             auto& mode = (*data.touch).mode;
+             auto& num_touches = (*data.touch).num_touches;
+ 
+@@ -6759,7 +6759,7 @@ std::unique_ptr<Input::XIQueryDeviceRepl
+             Read(&num_touches, &buf);
+           }
+           if (CaseEq(data_expr, Input::DeviceClassType::Gesture)) {
+-            data.gesture.emplace();
++            data.gesture = Input::DeviceClass::Gesture{};
+             auto& num_touches = (*data.gesture).num_touches;
+ 
+             // num_touches
+diff -up chromium-126.0.6478.26/ui/gfx/x/generated_protos/xkb.cc.system-libstdc++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/xkb.cc
+--- chromium-126.0.6478.26/ui/gfx/x/generated_protos/xkb.cc.system-libstdc++	2024-05-29 18:02:32.000000000 +0200
++++ chromium-126.0.6478.26/ui/gfx/x/generated_protos/xkb.cc	2024-06-02 23:51:25.570917345 +0200
+@@ -2344,7 +2344,7 @@ std::unique_ptr<Xkb::GetMapReply> detail
+   // map
+   auto map_expr = present;
+   if (CaseAnd(map_expr, Xkb::MapPart::KeyTypes)) {
+-    map.types_rtrn.emplace();
++    map.types_rtrn = std::vector<Xkb::KeyType>{};
+     auto& types_rtrn = *map.types_rtrn;
+ 
+     // types_rtrn
+@@ -5207,7 +5207,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::Types) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::ClientSymbols) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::ServerSymbols)) {
+-    replies.types.emplace();
++    replies.types = Xkb::GetKbdByNameReply::Types{};
+     auto& getmap_type = (*replies.types).getmap_type;
+     auto& typeDeviceID = (*replies.types).typeDeviceID;
+     auto& getmap_sequence = (*replies.types).getmap_sequence;
+@@ -5626,7 +5626,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::CompatMap)) {
+-    replies.compat_map.emplace();
++    replies.compat_map = Xkb::GetKbdByNameReply::CompatMap{};
+     auto& compatmap_type = (*replies.compat_map).compatmap_type;
+     auto& compatDeviceID = (*replies.compat_map).compatDeviceID;
+     auto& compatmap_sequence = (*replies.compat_map).compatmap_sequence;
+@@ -5747,7 +5747,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::IndicatorMaps)) {
+-    replies.indicator_maps.emplace();
++    replies.indicator_maps = Xkb::GetKbdByNameReply::IndicatorMaps{};
+     auto& indicatormap_type = (*replies.indicator_maps).indicatormap_type;
+     auto& indicatorDeviceID = (*replies.indicator_maps).indicatorDeviceID;
+     auto& indicatormap_sequence =
+@@ -5840,7 +5840,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::KeyNames) ||
+       CaseAnd(replies_expr, Xkb::GBNDetail::OtherNames)) {
+-    replies.key_names.emplace();
++    replies.key_names = Xkb::GetKbdByNameReply::KeyNames{};
+     auto& keyname_type = (*replies.key_names).keyname_type;
+     auto& keyDeviceID = (*replies.key_names).keyDeviceID;
+     auto& keyname_sequence = (*replies.key_names).keyname_sequence;
+@@ -6087,7 +6087,7 @@ std::unique_ptr<Xkb::GetKbdByNameReply>
+     }
+   }
+   if (CaseAnd(replies_expr, Xkb::GBNDetail::Geometry)) {
+-    replies.geometry.emplace();
++    replies.geometry = Xkb::GetKbdByNameReply::Geometry{};
+     auto& geometry_type = (*replies.geometry).geometry_type;
+     auto& geometryDeviceID = (*replies.geometry).geometryDeviceID;
+     auto& geometry_sequence = (*replies.geometry).geometry_sequence;

diff --git a/chromium-99.0.4844.51-epel7-old-cups.patch b/chromium-99.0.4844.51-epel7-old-cups.patch
deleted file mode 100644
index ec0dedc..0000000
--- a/chromium-99.0.4844.51-epel7-old-cups.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-diff -up chromium-99.0.4844.51/printing/backend/cups_helper.cc.el7cups chromium-99.0.4844.51/printing/backend/cups_helper.cc
---- chromium-99.0.4844.51/printing/backend/cups_helper.cc.el7cups	2022-02-28 19:05:55.000000000 -0500
-+++ chromium-99.0.4844.51/printing/backend/cups_helper.cc	2022-03-05 15:17:45.516887985 -0500
-@@ -34,18 +34,6 @@ namespace printing {
- // This section contains helper code for PPD parsing for semantic capabilities.
- namespace {
- 
--// Function availability can be tested by checking whether its address is not
--// nullptr. Weak symbols remove the need for platform specific build flags and
--// allow for appropriate CUPS usage on platforms with non-uniform version
--// support, namely Linux.
--#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x
--
--WEAK_CUPS_FN(httpConnect2);
--
--// Timeout for establishing a CUPS connection.  It is expected that cupsd is
--// able to start and respond on all systems within this duration.
--constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
--
- // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
- constexpr int32_t kDefaultMaxCopies = 9999;
- constexpr char kCupsMaxCopies[] = "cupsMaxCopies";
-@@ -527,8 +515,7 @@ const int kDefaultIPPServerPort = 631;
- // Helper wrapper around http_t structure, with connection and cleanup
- // functionality.
- HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url,
--                                       http_encryption_t encryption,
--                                       bool blocking)
-+                                       http_encryption_t encryption)
-     : http_(nullptr) {
-   // If we have an empty url, use default print server.
-   if (print_server_url.is_empty())
-@@ -538,17 +525,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
-   if (port == url::PORT_UNSPECIFIED)
-     port = kDefaultIPPServerPort;
- 
--  if (httpConnect2) {
--    http_ = httpConnect2(print_server_url.host().c_str(), port,
--                         /*addrlist=*/nullptr, AF_UNSPEC, encryption,
--                         blocking ? 1 : 0, kCupsTimeout.InMilliseconds(),
--                         /*cancel=*/nullptr);
--  } else {
--    // Continue to use deprecated CUPS calls because because older Linux
--    // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
--    http_ =
--        httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
--  }
-+  // Continue to use deprecated CUPS calls because because older Linux
-+  // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
-+  http_ =
-+      httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
- 
-   if (!http_) {
-     LOG(ERROR) << "CP_CUPS: Failed connecting to print server: "
-@@ -556,8 +536,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
-     return;
-   }
- 
--  if (!httpConnect2)
--    httpBlocking(http_, blocking ? 1 : 0);
- }
- 
- HttpConnectionCUPS::~HttpConnectionCUPS() {
-@@ -565,6 +543,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS(
-     httpClose(http_);
- }
- 
-+void HttpConnectionCUPS::SetBlocking(bool blocking) {
-+  httpBlocking(http_, blocking ? 1 : 0);
-+}
-+
- http_t* HttpConnectionCUPS::http() {
-   return http_;
- }
-diff -up chromium-99.0.4844.51/printing/backend/cups_helper.h.el7cups chromium-99.0.4844.51/printing/backend/cups_helper.h
---- chromium-99.0.4844.51/printing/backend/cups_helper.h.el7cups	2022-02-28 19:05:55.000000000 -0500
-+++ chromium-99.0.4844.51/printing/backend/cups_helper.h	2022-03-05 15:17:45.517887991 -0500
-@@ -34,10 +34,11 @@ constexpr cups_ptype_t kDestinationsFilt
- class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS {
-  public:
-   HttpConnectionCUPS(const GURL& print_server_url,
--                     http_encryption_t encryption,
--                     bool blocking);
-+                     http_encryption_t encryption);
-   ~HttpConnectionCUPS();
- 
-+  void SetBlocking(bool blocking);
-+
-   http_t* http();
- 
-  private:
-diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups chromium-99.0.4844.51/printing/backend/print_backend_cups.cc
---- chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups	2022-02-28 19:05:55.000000000 -0500
-+++ chromium-99.0.4844.51/printing/backend/print_backend_cups.cc	2022-03-05 15:17:45.517887991 -0500
-@@ -146,7 +146,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
-   // not showing as available.  Using cupsEnumDests() allows us to do our own
-   // filtering should any duplicates occur.
-   CupsDestsData dests_data = {0, nullptr};
--  ipp_status_t last_error = IPP_STATUS_OK;
-+  ipp_status_t last_error = IPP_OK;
-   if (print_server_url_.is_empty()) {
-     VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers";
-     if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs,
-@@ -173,7 +173,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
-     // no printer drivers installed.  Rely upon CUPS error code to distinguish
-     // between these.
-     DCHECK(!dests_data.dests);
--    if (last_error != IPP_STATUS_ERROR_NOT_FOUND) {
-+    if (last_error != IPP_NOT_FOUND) {
-       VLOG(1) << "CUPS: Error getting printers from CUPS server"
-               << ", server: " << print_server_url_
-               << ", error: " << static_cast<int>(last_error) << " - "
-@@ -336,7 +336,8 @@ int PrintBackendCUPS::GetDests(cups_dest
-   if (print_server_url_.is_empty())
-     return cupsGetDests2(CUPS_HTTP_DEFAULT, dests);
- 
--  HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
-+  HttpConnectionCUPS http(print_server_url_, cups_encryption_);
-+  http.SetBlocking(blocking_);
- 
-   // This call must be made in the same scope as `http` because its destructor
-   // closes the connection.
-@@ -362,7 +363,8 @@ base::FilePath PrintBackendCUPS::GetPPD(
-     // connection will timeout after 10 seconds of no data period. And it will
-     // return the same way as if data was completely and successfully
-     // downloaded.
--    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
-+    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
-+    http.SetBlocking(blocking_);
-     ppd_file_path = cupsGetPPD2(http.http(), name);
-     // Check if the get full PPD, since non-blocking call may simply return
-     // normally after timeout expired.
-@@ -398,7 +400,8 @@ PrintBackendCUPS::ScopedDestination Prin
-     // Use default (local) print server.
-     dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr);
-   } else {
--    HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
-+    HttpConnectionCUPS http(print_server_url_, cups_encryption_);
-+    http.SetBlocking(blocking_);
-     dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr);
-   }
-   return ScopedDestination(dest);

diff --git a/chromium.spec b/chromium.spec
index de9f4df..9e9ff3b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -183,11 +183,6 @@
 %endif
 %endif
 
-%ifarch ppc64le
-# workaround for a bug in new llvm on f40/rawhide (ppc64le)
-%global cfi 0
-%endif
-
 # set correct toolchain
 %if %{clang}
 %global toolchain clang
@@ -256,12 +251,13 @@
 %if 0%{?fedora} > 38 || 0%{?rhel} > 9
 %global bundlebrotli 0
 %global bundleicu 0
+%global bundlelibwebp 0
 %else
 %global bundlebrotli 1
 %global bundleicu 1
+%global bundlelibwebp 1
 %endif
 %global bundledav1d 0
-%global bundlelibwebp 0
 %global bundlelibpng 0
 %global bundlelibjpeg 0
 %global bundlelibdrm 0
@@ -314,7 +310,7 @@
 %endif
 
 Name:	chromium%{chromium_channel}
-Version: 125.0.6422.141
+Version: 126.0.6478.55
 Release: 1%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
@@ -373,7 +369,7 @@ Patch90: chromium-121-system-libxml.patch
 Patch91: chromium-108-system-opus.patch
 
 # need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
-Patch100: chromium-116-el7-include-fcntl-memfd.patch
+Patch100: chromium-126-el7-include-fcntl-memfd.patch
 
 # add define HAVE_STRNDUP on epel7
 Patch101: chromium-108-el7-wayland-strndup-error.patch
@@ -387,7 +383,7 @@ Patch103: chromium-110-epel7-old-headers-workarounds.patch
 
 # Use old cups (chromium's code workaround breaks on gcc)
 # Revert: https://github.com/chromium/chromium/commit/c3213f8779ddc427e89d982514185ed5e4c94e91
-Patch104: chromium-99.0.4844.51-epel7-old-cups.patch
+Patch104: chromium-126-el7-old-cups.patch
 
 # libdrm on EL7 is rather old and chromium assumes newer
 # This gets us by for now
@@ -406,14 +402,14 @@ Patch108: chromium-118-el7_v4l2_quantization.patch
 Patch109: chromium-114-wireless-el7.patch
 Patch110: chromium-115-buildflag-el7.patch
 Patch111: chromium-122-el7-inline-function.patch
-Patch112: chromium-125-el7-rust-proc-macro2.patch
+Patch112: chromium-126-el7-rust-c_string.patch
 Patch113: chromium-121-el7-clang-version-warning.patch
 Patch114: chromium-123-el7-clang-build-failure.patch
 Patch115: chromium-124-el7-size_t.patch
 
 # fixes for old clang version in el7 (clang <= 15)
 # compiler build errors, no matching constructor for initialization
-Patch116: chromium-125-el7-no_matching_constructor.patch
+Patch116: chromium-126-el7-no_matching_constructor.patch
 Patch117: chromium-115-el7-compiler-SkColor4f.patch
 
 # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
@@ -425,9 +421,13 @@ Patch119: chromium-125-el7-typename.patch
 # error: invalid operands to binary expression
 Patch120: chromium-117-el7-string-convert.patch
 Patch121: chromium-125-el7-assert.patch
-Patch122: chromium-125-el7-constexpr.patch
-Patch123: chromium-125-el7-type-alias.patch
+Patch122: chromium-126-el7-constexpr.patch
+Patch123: chromium-126-el7-type-alias.patch
 Patch124: chromium-125-el7-optional-workaround-assert.patch
+Patch125: chromium-126-el7-interator.patch
+Patch126: chromium-126-el7-colormap.patch
+Patch127: chromium-126-el7-stdformat.patch
+Patch128: chromium-126-el7-std_variant.patch
 
 # system ffmpeg
 # need for old ffmpeg 5.x on epel9
@@ -465,10 +465,10 @@ Patch312: chromium-123-fstack-protector-strong.patch
 # rust is old, function or associated item not found in `OsStr`
 Patch313: chromium-123-rust-clap_lex.patch
 
-Patch314: chromium-124-clang16-buildflags.patch
+Patch314: chromium-126-clang16-buildflags.patch
 
 # remove ldflags -Wl,-mllvm,-disable-auto-upgrade-debug-info which is not supported
-Patch315: chromium-122-clang16-disable-auto-upgrade-debug-info.patch
+Patch315: chromium-126-clang16-disable-auto-upgrade-debug-info.patch
 
 # add -ftrivial-auto-var-init=zero and -fwrapv
 Patch316: chromium-122-clang-build-flags.patch
@@ -481,18 +481,15 @@ Patch317: chromium-124-libdav1d-aarch64.patch
 # Disable BTI until this is fixed upstream.
 Patch352: chromium-117-workaround_for_crash_on_BTI_capable_system.patch
 
-# remove flag split-threshold-for-reg-with-hint, it' not supported in clang <= 17
-Patch354: chromium-120-split-threshold-for-reg-with-hint.patch
+# remove flag split-threshold-for-reg-with-hint, it's not supported in clang <= 17
+Patch354: chromium-126-split-threshold-for-reg-with-hint.patch
 
 # use system libstdc++
-Patch355: chromium-125-system-libstdc++.patch
+Patch355: chromium-126-system-libstdc++.patch
 
 # set clang_lib path
 Patch358: chromium-124-rust-clang_lib.patch
 
-# ERROR Unresolved dependencies
-Patch359: chromium-124-libavif-deps.patch
-
 # PowerPC64 LE support
 # Patches taken from Debian, Timothy Pearson's patchset
 # https://salsa.debian.org/chromium-team/chromium/-/tree/master/debian/patches/ppc64le?ref_type=heads
@@ -564,10 +561,6 @@ Patch413: fix-unknown-warning-option-messages.diff
 # upstream patches
 # 64kpage support on el8
 Patch500: chromium-124-el8-support-64kpage.patch
-# add missing include for usage of FieldDataManager in autofill_agent.h
-Patch501: chromium-125-missing-include-FieldDataManager.patch
-# [devtools] fix a missing build dependency to a generated file
-Patch502: chromium-125-devtools-build-dependency.patch
 
 # Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
 # http://build.chromium.org/buildbot/official/
@@ -1195,7 +1188,7 @@ cp /opt/rh/%{toolset}-%{dts_version}/root/usr/include/c++/%{dts_version}/optiona
 %patch -P109 -p1 -b .wireless
 %patch -P110 -p1 -b .buildflag-el7
 %patch -P111 -p1 -b .inline-function-el7
-%patch -P112 -p1 -R -b  .rust-proc-macro2
+%patch -P112 -p1 -R -b .rust-s_ctring
 %patch -P113 -p1 -b .el7-clang-version-warning
 %patch -P114 -p1 -b .clang-build-failure
 %patch -P115 -p1 -b .el7-size_t
@@ -1208,6 +1201,10 @@ cp /opt/rh/%{toolset}-%{dts_version}/root/usr/include/c++/%{dts_version}/optiona
 %patch -P122 -p1 -b .constexpr
 %patch -P123 -p1 -b .el7-type-alias
 %patch -P124 -p1 -b .el7-workaround-assert
+%patch -P125 -p1 -b .el7-interator
+%patch -P126 -p1 -b .el7-colormap
+%patch -P127 -p1 -b .el7-stdformat
+%patch -P128 -p1 -b .el7-std_variant
 %endif
 
 %if 0%{?rhel} == 9
@@ -1250,12 +1247,14 @@ cp /opt/rh/%{toolset}-%{dts_version}/root/usr/include/c++/%{dts_version}/optiona
 %patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system
 %endif
 
-%patch -P354 -p1 -b .revert-split-threshold-for-reg-with-hint
+%if 0%{?rhel} && 0%{?rhel} < 10 || 0%{?fedora} && 0%{?fedora} < 39
+%patch -P354 -p1 -b .split-threshold-for-reg-with-hint
+%endif
+
 %if ! %{use_custom_libcxx}
 %patch -P355 -p1 -b .system-libstdc++
 %endif
 %patch -P358 -p1 -b .rust-clang_lib
-%patch -P359 -p1 -b .libavif-deps
 
 %ifarch ppc64le
 %patch -P360 -p1 -b .0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h
@@ -1325,8 +1324,6 @@ cp /opt/rh/%{toolset}-%{dts_version}/root/usr/include/c++/%{dts_version}/optiona
 %patch -P500 -p1 -b .el8-support-64kpage.patch
 %endif
 %endif
-%patch -P501 -p1 -b .missing-include-FieldDataManage
-%patch -P502 -p1 -b .devtools-build-dependency
 
 # Change shebang in all relevant files in this directory and all subdirectories
 # See `man find` for how the `-exec command {} +` syntax works
@@ -1402,11 +1399,8 @@ FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unkn
 %endif
 
 %if %{system_build_flags}
-CFLAGS=${CFLAGS/-g }
 CFLAGS=${CFLAGS/-fexceptions}
 CFLAGS=${CFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS}
-CFLAGS=${CFLAGS/-fcf-protection}
-CFLAGS=${CFLAGS/-fstack-clash-protection}
 CFLAGS="$CFLAGS $FLAGS"
 CXXFLAGS="$CFLAGS"
 %else
@@ -2135,6 +2129,27 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %endif
 
 %changelog
+* Wed Jun 12 2024 Than Ngo <than@redhat.com> - 126.0.6478.55-1
+- update to 126.0.6478.55
+  * High CVE-2024-5830: Type Confusion in V8
+  * High CVE-2024-5831: Use after free in Dawn
+  * High CVE-2024-5832: Use after free in Dawn
+  * High CVE-2024-5833: Type Confusion in V8
+  * High CVE-2024-5834: Inappropriate implementation in Dawn
+  * High CVE-2024-5835: Heap buffer overflow in Tab Groups
+  * High CVE-2024-5836: Inappropriate Implementation in DevTools
+  * High CVE-2024-5837: Type Confusion in V8
+  * High CVE-2024-5838: Type Confusion in V8
+  * Medium CVE-2024-5839: Inappropriate Implementation in Memory Allocator
+  * Medium CVE-2024-5840: Policy Bypass in CORS
+  * Medium CVE-2024-5841: Use after free in V8
+  * Medium CVE-2024-5842: Use after free in Browser UI
+  * Medium CVE-2024-5843: Inappropriate implementation in Downloads
+  * Medium CVE-2024-5844: Heap buffer overflow in Tab Strip
+  * Medium CVE-2024-5845: Use after free in Audio
+  * Medium CVE-2024-5846: Use after free in PDFium
+  * Medium CVE-2024-5847: Use after free in PDFium
+
 * Fri May 31 2024 Than Ngo <than@redhat.com> - 125.0.6422.141-1
 - update to 125.0.6422.141
   * High CVE-2024-5493: Heap buffer overflow in WebRTC

diff --git a/sources b/sources
index 4a1f6a3..3692f55 100644
--- a/sources
+++ b/sources
@@ -2,4 +2,4 @@ SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea
 SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd
 SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
 SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
-SHA512 (chromium-125.0.6422.141-clean.tar.xz) = d3933731cad4ca2ce32e5343709dcff6c60769b43ccc0bdb982f846477a6439974aaeeafac740ddbdc4132e92e3510e4663d9095cc9a02d4a7cad63269adebdb
+SHA512 (chromium-126.0.6478.55-clean.tar.xz) = 8035957cfd284f690d9fd0e16794a1d500eae9c15042d775478dc7c3f4ecfd1b75ee5804dc85b028d65b63e661eee45452aa59bc74d9191cae52918847ee27db

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 16:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:06 [rpms/chromium] epel9-next: - update to 126.0.6478.55 Than Ngo

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