diff --git a/.chromium.metadata b/.chromium.metadata index daddbd87..05acfcb3 100644 --- a/.chromium.metadata +++ b/.chromium.metadata @@ -1,4 +1,4 @@ -6eed516c8166d4a3e9865cb54ab5948d2bbb3a95 SOURCES/chromium-125.0.6422.141-clean.tar.xz +3870b23900d2a7d3f1f4a9dad012bf6ba30df8d2 SOURCES/chromium-126.0.6478.55-clean.tar.xz 7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz 3e94bb4f999c636293bc745b02d98e7925da5616 SOURCES/node-v20.6.1-linux-arm64.tar.xz diff --git a/.gitignore b/.gitignore index edb80602..ebdf9eea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -SOURCES/chromium-125.0.6422.141-clean.tar.xz +SOURCES/chromium-126.0.6478.55-clean.tar.xz SOURCES/linux-arm64-0.19.2.tgz SOURCES/linux-x64-0.19.2.tgz SOURCES/node-v20.6.1-linux-arm64.tar.xz diff --git a/SOURCES/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch b/SOURCES/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch index 8591c28a..2927b87d 100644 --- a/SOURCES/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch +++ b/SOURCES/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/SOURCES/0002-Add-PPC64-generated-files-for-boringssl.patch b/SOURCES/0002-Add-PPC64-generated-files-for-boringssl.patch index 5ab5f16f..4d1355fe 100644 --- a/SOURCES/0002-Add-PPC64-generated-files-for-boringssl.patch +++ b/SOURCES/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/SOURCES/0008-sandbox-fix-ppc64le-glibc234.patch b/SOURCES/0008-sandbox-fix-ppc64le-glibc234.patch index 185aefc6..dfda9e8f 100644 --- a/SOURCES/0008-sandbox-fix-ppc64le-glibc234.patch +++ b/SOURCES/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(args.args[1]) == '\0' && diff --git a/SOURCES/chromium-116-el7-include-fcntl-memfd.patch b/SOURCES/chromium-116-el7-include-fcntl-memfd.patch deleted file mode 100644 index d23745e1..00000000 --- a/SOURCES/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 - #include - #include --#include -+#include - - #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 // for prctl -+#include // 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 - #include --#include -+#include // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL -+#include // for MFD_CLOEXEC - #include - #include - #include -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 -+#include - - #include - #include diff --git a/SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch b/SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch deleted file mode 100644 index e80ed715..00000000 --- a/SOURCES/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/SOURCES/chromium-122-clang16-disable-auto-upgrade-debug-info.patch b/SOURCES/chromium-122-clang16-disable-auto-upgrade-debug-info.patch deleted file mode 100644 index c830caaf..00000000 --- a/SOURCES/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/SOURCES/chromium-124-clang16-buildflags.patch b/SOURCES/chromium-124-clang16-buildflags.patch deleted file mode 100644 index b53b2a89..00000000 --- a/SOURCES/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/SOURCES/chromium-124-libavif-deps.patch b/SOURCES/chromium-124-libavif-deps.patch deleted file mode 100644 index 6298217f..00000000 --- a/SOURCES/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/SOURCES/chromium-125-devtools-build-dependency.patch b/SOURCES/chromium-125-devtools-build-dependency.patch deleted file mode 100644 index 1f16ac1e..00000000 --- a/SOURCES/chromium-125-devtools-build-dependency.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit a976cb05b4024b7a6452d1541378d718cdfe33e6 -Author: Takuto Ikuta -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 - Commit-Queue: Takuto Ikuta - Reviewed-by: Danil Somsikov - Commit-Queue: Danil Somsikov - 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/SOURCES/chromium-125-el7-constexpr.patch b/SOURCES/chromium-125-el7-constexpr.patch deleted file mode 100644 index 0183bb34..00000000 --- a/SOURCES/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 - 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 - 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 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 - 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 - 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 -- 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 VisitSourceMap; - - // Constant used to represent that no app_id is used for matching. --inline constexpr std::optional kNoAppIdFilter = std::nullopt; -+inline const std::optional 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/SOURCES/chromium-125-el7-rust-proc-macro2.patch b/SOURCES/chromium-125-el7-rust-proc-macro2.patch deleted file mode 100644 index 64a69784..00000000 --- a/SOURCES/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 ", - "Alex Crichton ", -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 ", "Alex Crichton "] - 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::().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::().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::().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::().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/SOURCES/chromium-125-missing-include-FieldDataManager.patch b/SOURCES/chromium-125-missing-include-FieldDataManager.patch deleted file mode 100644 index 6dd763a7..00000000 --- a/SOURCES/chromium-125-missing-include-FieldDataManager.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit aa53c3ab8df7f7c1d42c30d4b184a8f8b0a8e50d -Author: Jose Dapena Paz -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 - Commit-Queue: José Dapena Paz - 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/SOURCES/chromium-125-system-libstdc++.patch b/SOURCES/chromium-125-system-libstdc++.patch deleted file mode 100644 index 759807d9..00000000 --- a/SOURCES/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 - #include - --#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 - #include - - #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 specifics_urls; -+ std::vector 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 - #include - #include -+#include - #include - - #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 std::vector - ProductSpecificationsService::GetAllProductSpecifications() { -- std::vector product_specifications; -+ std::vector product_specifications; - for (auto& entry : bridge_->entries()) { -- std::vector urls; -+ std::vector urls; - for (auto& data : entry.second.data()) { - urls.emplace_back(data.url()); - } -@@ -43,7 +43,7 @@ ProductSpecificationsService::GetAllProd - const std::optional - ProductSpecificationsService::AddProductSpecificationsSet( - const std::string& name, -- const std::vector& urls) { -+ const std::vector& urls) { - // TODO(crbug.com/332545064) add for a product specification set being added. - std::optional 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 - GetSyncControllerDelegate(); - -- const std::vector -- GetAllProductSpecifications(); -+ const std::vector GetAllProductSpecifications(); - - // Add new product specifications set called |name| with product pages - // corresponding to |urls|. - const std::optional - AddProductSpecificationsSet(const std::string& name, -- const std::vector& urls); -+ const std::vector& 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 specifics_urls; -+ std::vector 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 urls; -+ std::vector 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 specifications = -+ const std::vector 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 expected_product_urls{GURL(kProductOneUrl), -+ std::vector 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& urls, -+ const std::vector& 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 urls; -+ std::vector 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& urls, -+ const std::vector& 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& urls() const { return urls_; } -+ const std::vector& 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 urls_; -+ const std::vector 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 - ProductSpecificationsSyncBridge::AddProductSpecifications( - const std::string& name, -- const std::vector& urls) { -+ const std::vector& 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 - AddProductSpecifications(const std::string& name, -- const std::vector& urls); -+ const std::vector& 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 AddProductSpecifications( - const std::string& name, -- const std::vector urls) { -+ const std::vector 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 std::vector - 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 -+ virtual const std::vector - 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 - #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 - #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 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 copy(as_span.begin(), as_span.end()); -+ const std::vector 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 - - #include -+#include - #include - #include - -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 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 StructTraitsall_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(); -+ 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(); -+ view_state_ = blink::HistoryItem::ViewState{}; - view_state_->scroll_offset_ = offset; - } - - void HistoryItem::SetPageScaleFactor(float scale_factor) { - if (!view_state_) -- view_state_ = std::make_optional(); -+ 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(); -+ 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 - #include -+#include - #include - #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 - #include - #include - #include -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 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 - // 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 - 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 - subpixel_order = static_cast(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 - 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 - 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 - 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 - 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 detail - // map - auto map_expr = present; - if (CaseAnd(map_expr, Xkb::MapPart::KeyTypes)) { -- map.types_rtrn.emplace(); -+ map.types_rtrn = std::vector{}; - auto& types_rtrn = *map.types_rtrn; - size_t types_rtrn_len = types_rtrn.size(); - -@@ -5276,7 +5276,7 @@ std::unique_ptr - 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 - } - } - 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 - } - } - 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 - } - 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 - } - } - 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/SOURCES/chromium-126-clang16-buildflags.patch b/SOURCES/chromium-126-clang16-buildflags.patch new file mode 100644 index 00000000..cba25fda --- /dev/null +++ b/SOURCES/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/SOURCES/chromium-126-clang16-disable-auto-upgrade-debug-info.patch b/SOURCES/chromium-126-clang16-disable-auto-upgrade-debug-info.patch new file mode 100644 index 00000000..f7915962 --- /dev/null +++ b/SOURCES/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/SOURCES/chromium-126-el7-colormap.patch b/SOURCES/chromium-126-el7-colormap.patch new file mode 100644 index 00000000..1c0002b0 --- /dev/null +++ b/SOURCES/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 + #include + #include + #include +@@ -18,106 +17,6 @@ + + namespace ui { + +-//////////////////////////////////////////////////////////////////////////////// +-// ColorProvider::ColorProviderInternal: +- +-class ColorProvider::ColorProviderInternal { +- public: +- using Mixers = std::forward_list; +- +- 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 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 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 ++#include + #include + #include + + #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; ++ using ColorMap = base::flat_map; + + 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; + +- std::unique_ptr internal_ = +- std::make_unique(); ++ // 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 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(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(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({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/SOURCES/chromium-126-el7-constexpr.patch b/SOURCES/chromium-126-el7-constexpr.patch new file mode 100644 index 00000000..45042fe5 --- /dev/null +++ b/SOURCES/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 + 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 + 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 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 + 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 + 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 +- 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 VisitSourceMap; + + // Constant used to represent that no app_id is used for matching. +-inline constexpr std::optional kNoAppIdFilter = std::nullopt; ++inline const std::optional 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/SOURCES/chromium-126-el7-include-fcntl-memfd.patch b/SOURCES/chromium-126-el7-include-fcntl-memfd.patch new file mode 100644 index 00000000..3bafca4b --- /dev/null +++ b/SOURCES/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 + #include +-#include ++#include // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL ++#include // for MFD_CLOEXEC + #include + #include + #include +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 + #include + #include +-#include ++#include + + #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 ++#include + + #include + #include +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 // for prctl ++#include // for MFD_CLOEXEC + #endif + + #if defined(V8_OS_FUCHSIA) diff --git a/SOURCES/chromium-126-el7-interator.patch b/SOURCES/chromium-126-el7-interator.patch new file mode 100644 index 00000000..9b630a86 --- /dev/null +++ b/SOURCES/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/SOURCES/chromium-125-el7-no_matching_constructor.patch b/SOURCES/chromium-126-el7-no_matching_constructor.patch similarity index 62% rename from SOURCES/chromium-125-el7-no_matching_constructor.patch rename to SOURCES/chromium-126-el7-no_matching_constructor.patch index e6acca48..fdc351af 100644 --- a/SOURCES/chromium-125-el7-no_matching_constructor.patch +++ b/SOURCES/chromium-126-el7-no_matching_constructor.patch @@ -1,19 +1,19 @@ -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. +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-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 +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) { @@ -29,9 +29,9 @@ diff -up chromium-125.0.6422.60/base/metrics/persistent_histogram_allocator.cc.n } } -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 +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"); @@ -41,11 +41,11 @@ diff -up chromium-125.0.6422.60/base/nix/mime_util_xdg.cc.no_matching_constructo } } } -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) +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, @@ -55,10 +55,10 @@ diff -up chromium-125.0.6422.60/base/trace_event/trace_log.cc.no_matching_constr } 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 +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(); @@ -69,7 +69,7 @@ diff -up chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permiss permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( setting_type, permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND); -@@ -361,8 +361,8 @@ void OneTimePermissionProvider::DeleteEn +@@ -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)) { @@ -80,11 +80,71 @@ diff -up chromium-125.0.6422.60/chrome/browser/content_settings/one_time_permiss 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 +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( +- /*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( +- /*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_mapinsert(std::make_pair( "supported.test", - SAMLProfileAttributes("placeholderName", "placeholderDomain", @@ -94,10 +154,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/enterprise/profile_management/pro // 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: +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); } @@ -106,7 +166,7 @@ diff -up chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_sy } base::FilePath nearest_ancestor; -@@ -1688,11 +1688,11 @@ void ChromeFileSystemAccessPermissionCon +@@ -1685,11 +1685,11 @@ void ChromeFileSystemAccessPermissionCon // profile's directory, assuming the profile dir is a child of the user data // dir. std::vector extra_rules; @@ -121,9 +181,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/file_system_access/chrome_file_sy } 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 +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 if (lifecycle_unit->DiscardTab( discard_reason, @@ -133,10 +193,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/performance_manager/mechanisms/pa } } 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 +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, @@ -151,10 +211,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/renderer_context_menu/render_view 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 +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(manager.driver()); driver.browser_events().RendererShouldTriggerSuggestions( @@ -165,10 +225,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/autofill/autofill_context_menu AutofillSuggestionTriggerSource::kManualFallbackPayments); LogManualFallbackContextMenuEntryAccepted( static_cast(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 +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. @@ -181,9 +241,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/omnibox/chrome_omnibox_client. 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 +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; @@ -192,9 +252,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/safety_hub/menu_notification_s }; 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 +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 @@ -222,29 +282,23 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/frame/contents_layout_ma } 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 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}; +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}; } -- 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 +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 icon; @@ -253,10 +307,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_per }; 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 +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::GetButtonsConfiguration() const { std::vector buttons; @@ -267,10 +321,10 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_per 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 +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::GetButtonsConfiguration() const { std::vector buttons; @@ -280,32 +334,27 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_per - 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 +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::GetButtonsConfiguration() const { std::vector 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}; + ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal, +- kContinueAllowingId); ++ kContinueAllowingId}; - buttons.emplace_back( + buttons.emplace_back() = { @@ -314,9 +363,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/permissions/embedded_per + 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 +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. @@ -332,9 +381,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_style_views.cc. 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 +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, @@ -353,9 +402,9 @@ diff -up chromium-125.0.6422.60/chrome/browser/ui/web_applications/sub_apps_serv }, 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 +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"); } @@ -374,9 +423,9 @@ diff -up chromium-125.0.6422.60/chrome/test/chromedriver/capabilities.cc.no_matc } 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 +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 GetN } @@ -386,9 +435,9 @@ diff -up chromium-125.0.6422.60/components/attribution_reporting/aggregatable_ut } } 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 +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)); @@ -398,10 +447,10 @@ diff -up chromium-125.0.6422.60/components/attribution_reporting/registration_in } } // 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 Address } @@ -426,9 +475,9 @@ diff -up chromium-125.0.6422.60/components/autofill/core/browser/webdata/address 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 +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 : @@ -441,9 +490,9 @@ diff -up chromium-125.0.6422.60/components/autofill/core/browser/webdata/address } } } -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 +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; @@ -453,9 +502,9 @@ diff -up chromium-125.0.6422.60/components/invalidation/impl/fcm_invalidation_se } // 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 +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_) { @@ -467,9 +516,9 @@ diff -up chromium-125.0.6422.60/components/memory_pressure/unnecessary_discard_m } } -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 +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 { @@ -479,19 +528,19 @@ diff -up chromium-125.0.6422.60/components/password_manager/core/browser/passwor 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; +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 = autofill::Suggestion::Icon::kGooglePasswordManager; + 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 -@@ -205,7 +205,7 @@ void AppendSuggestionIfMatching( +@@ -201,7 +201,7 @@ void AppendSuggestionIfMatching(const st suggestion.trailing_icon = CreateStoreIcon(from_account_store); } #endif @@ -500,47 +549,63 @@ diff -up chromium-125.0.6422.60/components/password_manager/core/browser/passwor } } -@@ -237,8 +237,8 @@ void GetSuggestions(const autofill::Pass +@@ -233,8 +233,8 @@ void GetSuggestions(const autofill::Pass void AddPasswordUsernameChildSuggestion(const std::u16string& username, - autofill::Suggestion& suggestion) { + Suggestion& suggestion) { - suggestion.children.emplace_back( -- username, autofill::PopupItemId::kPasswordFieldByFieldFilling); -+ suggestion.children.emplace_back() = -+ {username, autofill::PopupItemId::kPasswordFieldByFieldFilling}; +- username, SuggestionType::kPasswordFieldByFieldFilling); ++ suggestion.children.emplace_back() = { ++ username, SuggestionType::kPasswordFieldByFieldFilling}; } - void AddFillPasswordChildSuggestion(autofill::Suggestion& suggestion, -@@ -248,8 +248,8 @@ void AddFillPasswordChildSuggestion(auto + void AddFillPasswordChildSuggestion(Suggestion& suggestion, +@@ -244,11 +244,11 @@ void AddFillPasswordChildSuggestion(Sugg + l10n_util::GetStringUTF16( IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_FILL_PASSWORD_ENTRY), - autofill::PopupItemId::kFillPassword); - fill_password.payload = -- autofill::Suggestion::PasswordSuggestionDetails(password); + 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)); -+ autofill::Suggestion::PasswordSuggestionDetails{password}; ++ is_cross_origin.value()}; + suggestion.children.emplace_back() = {std::move(fill_password)}; } - void AddViewPasswordDetailsChildSuggestion(autofill::Suggestion& suggestion) { -@@ -258,7 +258,7 @@ void AddViewPasswordDetailsChildSuggesti + void AddViewPasswordDetailsChildSuggestion(Suggestion& suggestion) { +@@ -257,7 +257,7 @@ void AddViewPasswordDetailsChildSuggesti IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_VIEW_DETAILS_ENTRY), - autofill::PopupItemId::kViewPasswordDetails); - view_password_details.icon = autofill::Suggestion::Icon::kKey; + 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)}; } - 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 + 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 PasswordSuggesti if (uses_passkeys && delegate->OfferPasskeysFromAnotherDeviceOption()) { bool listed_passkeys = delegate->GetPasskeys().has_value() && delegate->GetPasskeys()->size() > 0; @@ -574,51 +639,36 @@ diff -up chromium-125.0.6422.60/components/password_manager/core/browser/passwor } // Add "Manage all passwords" link to settings. -@@ -393,30 +393,30 @@ PasswordSuggestionGenerator::GetManualFa +@@ -401,10 +401,10 @@ 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( ++ suggestions.emplace_back() = { + l10n_util::GetStringUTF16( IDS_PASSWORD_MANAGER_MANUAL_FALLBACK_SUGGESTED_PASSWORDS_SECTION_TITLE), -- autofill::PopupItemId::kTitle); -+ autofill::PopupItemId::kTitle}; +- SuggestionType::kTitle); ++ SuggestionType::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)}; + std::set suggested_signon_realms; +@@ -415,10 +415,10 @@ PasswordSuggestionGenerator::GetManualFa } if (generate_sections) { - suggestions.emplace_back( -- l10n_util::GetStringUTF16( -+ 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}; +- SuggestionType::kTitle); ++ SuggestionType::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( +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( @@ -627,7 +677,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, this](const content::GlobalRenderFrameHostId& render_frame_host_id) { AddFrameClientConnection(insertion_result.first->second.get(), -@@ -251,7 +251,7 @@ void WorkerWatcher::OnWorkerCreated( +@@ -253,7 +253,7 @@ void WorkerWatcher::OnWorkerCreated( [&, this](blink::DedicatedWorkerToken dedicated_worker_token) { ConnectDedicatedWorkerClient(insertion_result.first->second.get(), dedicated_worker_token); @@ -636,7 +686,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc creator); } -@@ -268,7 +268,7 @@ void WorkerWatcher::OnBeforeWorkerDestro +@@ -270,7 +270,7 @@ void WorkerWatcher::OnBeforeWorkerDestro // First disconnect the creator's node from this worker node. absl::visit( @@ -645,7 +695,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, this](const content::GlobalRenderFrameHostId& render_frame_host_id) { RemoveFrameClientConnection(worker_node.get(), -@@ -277,7 +277,7 @@ void WorkerWatcher::OnBeforeWorkerDestro +@@ -279,7 +279,7 @@ void WorkerWatcher::OnBeforeWorkerDestro [&, this](blink::DedicatedWorkerToken dedicated_worker_token) { DisconnectDedicatedWorkerClient(worker_node.get(), dedicated_worker_token); @@ -654,7 +704,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc creator); // Disconnect all child workers before destroying the node. -@@ -449,7 +449,7 @@ void WorkerWatcher::OnControlleeAdded( +@@ -456,7 +456,7 @@ void WorkerWatcher::OnControlleeAdded( const std::string& client_uuid, const content::ServiceWorkerClientInfo& client_info) { absl::visit( @@ -663,7 +713,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, 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( +@@ -494,7 +494,7 @@ void WorkerWatcher::OnControlleeAdded( ConnectSharedWorkerClient(service_worker_node, shared_worker_token); } @@ -672,7 +722,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc client_info); } -@@ -527,7 +527,7 @@ void WorkerWatcher::OnControlleeRemoved( +@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved( return; absl::visit( @@ -681,7 +731,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, this](content::GlobalRenderFrameHostId render_frame_host_id) { RemoveFrameClientConnection(worker_node, render_frame_host_id); }, -@@ -537,7 +537,7 @@ void WorkerWatcher::OnControlleeRemoved( +@@ -544,7 +544,7 @@ void WorkerWatcher::OnControlleeRemoved( }, [&, this](blink::SharedWorkerToken shared_worker_token) { DisconnectSharedWorkerClient(worker_node, shared_worker_token); @@ -690,7 +740,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc client); } -@@ -813,7 +813,7 @@ void WorkerWatcher::ConnectAllServiceWor +@@ -820,7 +820,7 @@ void WorkerWatcher::ConnectAllServiceWor for (const auto& kv : it->second) { absl::visit( @@ -699,7 +749,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, this](content::GlobalRenderFrameHostId render_frame_host_id) { AddFrameClientConnection(service_worker_node, render_frame_host_id); -@@ -825,7 +825,7 @@ void WorkerWatcher::ConnectAllServiceWor +@@ -832,7 +832,7 @@ void WorkerWatcher::ConnectAllServiceWor [&, this](blink::SharedWorkerToken shared_worker_token) { ConnectSharedWorkerClient(service_worker_node, shared_worker_token); @@ -708,7 +758,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc kv.second); } } -@@ -840,7 +840,7 @@ void WorkerWatcher::DisconnectAllService +@@ -847,7 +847,7 @@ void WorkerWatcher::DisconnectAllService for (const auto& kv : it->second) { absl::visit( @@ -717,7 +767,7 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc [&, this]( const content::GlobalRenderFrameHostId& render_frame_host_id) { RemoveFrameClientConnection(service_worker_node, -@@ -854,7 +854,7 @@ void WorkerWatcher::DisconnectAllService +@@ -861,7 +861,7 @@ void WorkerWatcher::DisconnectAllService [&, this](const blink::SharedWorkerToken& shared_worker_token) { DisconnectSharedWorkerClient(service_worker_node, shared_worker_token); @@ -726,10 +776,10 @@ diff -up chromium-125.0.6422.60/components/performance_manager/worker_watcher.cc 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 +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) { @@ -738,24 +788,9 @@ diff -up chromium-125.0.6422.60/components/viz/service/display_embedder/skia_out SkImageInfo dst_info = SkImageInfo::Make( size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType, kUnpremul_SkAlphaType); -diff -up chromium-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 payload_to_verify = CreateSignaturePayload({ - .unsigned_web_bundle_hash = absl::visit( -- base::Overloaded([](const auto& digest) -> base::span { -+ base::Overloaded{[](const auto& digest) -> base::span { - 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 +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 files; @@ -767,9 +802,9 @@ diff -up chromium-125.0.6422.60/content/browser/download/save_package.cc.no_matc } 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 +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()); @@ -779,9 +814,9 @@ diff -up chromium-125.0.6422.60/content/browser/fenced_frame/fenced_frame_config } } // 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 +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), @@ -791,9 +826,9 @@ diff -up chromium-125.0.6422.60/content/browser/first_party_sets/first_party_set }(); 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 +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 GetGpuFeatur *base::CommandLine::ForCurrentProcess(); @@ -938,9 +973,9 @@ diff -up chromium-125.0.6422.60/content/browser/gpu/compositor_util.cc.no_matchi 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 +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`. @@ -949,10 +984,10 @@ diff -up chromium-125.0.6422.60/content/browser/interest_group/header_direct_fro }; // 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( +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] = @@ -961,10 +996,120 @@ diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_au } 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 DoGet +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(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( + width_units_val->GetInt()), + height_val->GetDouble(), + static_cast( +- height_units_val->GetInt()))); ++ height_units_val->GetInt()))}; + } + return result; + } +@@ -440,9 +440,9 @@ DeserializeStringStringVectorMap(const s + DCHECK(list && list->is_list()); + std::vector 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> + 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 DoGet return std::nullopt; } @@ -976,20 +1121,69 @@ diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_st } void DoGetDebugReportCooldowns( -@@ -3542,10 +3542,10 @@ DoGetKAnonymityData(sql::Database& db, +@@ -3726,10 +3726,10 @@ DoGetKAnonymityData(sql::Database& db, std::vector 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), + /*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; -@@ -4338,7 +4338,7 @@ DoGetBiddingAndAuctionServerKeys(sql::Da +@@ -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 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 keys; keys.reserve(key_protos.keys_size()); for (auto& key_proto : *key_protos.mutable_keys()) { @@ -998,10 +1192,10 @@ diff -up chromium-125.0.6422.60/content/browser/interest_group/interest_group_st } 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 +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( @@ -1010,7 +1204,7 @@ diff -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_ destination); } } -@@ -8827,7 +8827,7 @@ void RenderFrameHostImpl::SendFencedFram +@@ -8995,7 +8995,7 @@ void RenderFrameHostImpl::SendFencedFram } SendFencedFrameReportingBeaconInternal( @@ -1019,7 +1213,7 @@ diff -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_ blink::FencedFrame::ReportingDestination::kBuyer); } -@@ -8958,7 +8958,7 @@ void RenderFrameHostImpl::MaybeSendFence +@@ -9126,7 +9126,7 @@ void RenderFrameHostImpl::MaybeSendFence data = info->data; } initiator_rfh->SendFencedFrameReportingBeaconInternal( @@ -1028,7 +1222,7 @@ diff -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_ navigation_request.GetNavigationId()); } } else { -@@ -8969,7 +8969,7 @@ void RenderFrameHostImpl::MaybeSendFence +@@ -9137,7 +9137,7 @@ void RenderFrameHostImpl::MaybeSendFence for (blink::FencedFrame::ReportingDestination destination : info->destinations) { initiator_rfh->SendFencedFrameReportingBeaconInternal( @@ -1037,10 +1231,10 @@ diff -up chromium-125.0.6422.60/content/browser/renderer_host/render_frame_host_ 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 +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( @@ -1049,7 +1243,7 @@ diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_co [](GlobalRenderFrameHostId render_frame_host_id) { return blink::mojom::ServiceWorkerClientType::kWindow; }, -@@ -956,7 +956,7 @@ ServiceWorkerContainerHost::GetClientTyp +@@ -1085,7 +1085,7 @@ blink::mojom::ServiceWorkerClientType Se }, [](blink::SharedWorkerToken shared_worker_token) { return blink::mojom::ServiceWorkerClientType::kSharedWorker; @@ -1058,10 +1252,10 @@ diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_co *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 +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(); @@ -1074,9 +1268,9 @@ diff -up chromium-125.0.6422.60/content/browser/service_worker/service_worker_ma *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 +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; @@ -1095,10 +1289,10 @@ diff -up chromium-125.0.6422.60/content/browser/worker_host/dedicated_worker_hos 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 +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; } @@ -1109,9 +1303,9 @@ diff -up chromium-125.0.6422.60/extensions/browser/service_worker/service_worker 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 +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, @@ -1135,10 +1329,10 @@ diff -up chromium-125.0.6422.60/gpu/command_buffer/client/shared_image_interface 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 +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( mailbox, @@ -1153,10 +1347,10 @@ diff -up chromium-125.0.6422.60/gpu/command_buffer/service/shared_image_interfac 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 ClientS +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 ClientS AddMailbox(proxy_->CreateSharedImage( buffer_format, plane, gpu_memory_buffer->GetSize(), si_info, gpu_memory_buffer->CloneHandle())), @@ -1170,7 +1364,7 @@ diff -up chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc. GenUnverifiedSyncToken(), holder_, gpu_memory_buffer->GetType()); } -@@ -286,13 +286,13 @@ ClientSharedImageInterface::CreateSwapCh +@@ -297,13 +297,13 @@ ClientSharedImageInterface::CreateSwapCh return ClientSharedImageInterface::SwapChainSharedImages( base::MakeRefCounted( mailboxes.front_buffer, @@ -1188,7 +1382,7 @@ diff -up chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc. sync_token, holder_, gfx::EMPTY_BUFFER)); } -@@ -350,8 +350,8 @@ scoped_refptr ClientS +@@ -361,8 +361,8 @@ scoped_refptr ClientS return base::MakeRefCounted( mailbox, @@ -1199,9 +1393,27 @@ diff -up chromium-125.0.6422.60/gpu/ipc/client/client_shared_image_interface.cc. 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 +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( + 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(); @@ -1211,10 +1423,10 @@ diff -up chromium-125.0.6422.60/net/dns/host_resolver_cache.cc.no_matching_const 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 ConsumeI +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 ConsumeI default: return std::nullopt; } @@ -1223,10 +1435,10 @@ diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/css/properties/c } } // 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 +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); } @@ -1235,9 +1447,9 @@ diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/layout/anchor_ev } 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 +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; @@ -1258,9 +1470,9 @@ diff -up chromium-125.0.6422.60/third_party/blink/renderer/modules/media/audio/a 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 +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 hue_interpolation_method) { @@ -1279,9 +1491,9 @@ diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/font_p } 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 +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 color_interpolation_space, hue_interpolation_method, start_color, end_color, percentage, alpha_multiplier); @@ -1291,10 +1503,10 @@ diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/fonts/palett 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( +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, @@ -1303,9 +1515,9 @@ diff -up chromium-125.0.6422.60/third_party/pdfium/core/fpdfapi/render/cpdf_rend } } -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 +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>( @@ -1519,7 +1731,7 @@ diff -up chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching }); // A map from the HDR zcr_color_manager_v1 eotf_names enum values -@@ -197,70 +197,70 @@ constexpr auto kTransferMap = +@@ -197,67 +197,67 @@ constexpr auto kTransferMap = constexpr auto kHDRTransferMap = base::MakeFixedFlatMap( {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, @@ -1568,11 +1780,6 @@ diff -up chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching - 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)}, @@ -1623,16 +1830,16 @@ diff -up chromium-125.0.6422.60/ui/base/wayland/color_manager_util.h.no_matching zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity( gfx::ColorSpace::PrimaryID primaryID, -@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM +@@ -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-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 +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); @@ -1647,10 +1854,10 @@ diff -up chromium-125.0.6422.60/ui/gtk/gtk_ui.cc.no_matching_constructor chromiu } 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 +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(); @@ -1664,7 +1871,7 @@ diff -up chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matc 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 +@@ -448,11 +448,11 @@ ProposedLayout LabelButton::CalculatePro } else if (horizontal_alignment == gfx::ALIGN_RIGHT) { image_origin.Offset(image_area.width() - image_size.width(), 0); } @@ -1678,7 +1885,7 @@ diff -up chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matc gfx::Rect label_bounds = label_area; if (label_area.width() == label_size.width()) { -@@ -465,11 +465,11 @@ ProposedLayout LabelButton::CalculatePro +@@ -466,11 +466,11 @@ ProposedLayout LabelButton::CalculatePro } } @@ -1692,9 +1899,9 @@ diff -up chromium-125.0.6422.60/ui/views/controls/button/label_button.cc.no_matc 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 +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()); @@ -1716,9 +1923,9 @@ diff -up chromium-125.0.6422.60/ui/views/controls/editable_combobox/editable_com 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 +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(); @@ -1728,10 +1935,10 @@ diff -up chromium-125.0.6422.60/ui/views/layout/box_layout.cc.no_matching_constr 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 +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; diff --git a/SOURCES/chromium-99.0.4844.51-epel7-old-cups.patch b/SOURCES/chromium-126-el7-old-cups.patch similarity index 62% rename from SOURCES/chromium-99.0.4844.51-epel7-old-cups.patch rename to SOURCES/chromium-126-el7-old-cups.patch index ec0dedc9..68210869 100644 --- a/SOURCES/chromium-99.0.4844.51-epel7-old-cups.patch +++ b/SOURCES/chromium-126-el7-old-cups.patch @@ -1,7 +1,7 @@ -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 { +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 { @@ -20,62 +20,57 @@ diff -up chromium-99.0.4844.51/printing/backend/cups_helper.cc.el7cups chromium- // 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; +@@ -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) - : http_(nullptr) { +- bool blocking) { ++ http_encryption_t encryption) { // If we have an empty url, use default print server. if (print_server_url.is_empty()) -@@ -538,17 +525,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c + return; +@@ -771,31 +758,22 @@ 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); +- 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_ = -- httpConnectEncrypt(print_server_url.host().c_str(), port, encryption); +- http_.reset( ++ http_.reset( + 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 + << print_server_url; return; } - -- if (!httpConnect2) -- httpBlocking(http_, blocking ? 1 : 0); +- +- if (!httpConnect2) { +- httpBlocking(http(), blocking ? 1 : 0); +- } } - HttpConnectionCUPS::~HttpConnectionCUPS() { -@@ -565,6 +543,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS( - httpClose(http_); - } + HttpConnectionCUPS::~HttpConnectionCUPS() = default; +void HttpConnectionCUPS::SetBlocking(bool blocking) { -+ httpBlocking(http_, blocking ? 1 : 0); ++ httpBlocking(http(), blocking ? 1 : 0); +} + http_t* HttpConnectionCUPS::http() { - return http_; + return http_.get(); } -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 +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, @@ -89,10 +84,10 @@ diff -up chromium-99.0.4844.51/printing/backend/cups_helper.h.el7cups chromium-9 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 +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}; @@ -101,7 +96,7 @@ diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups ch 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 +@@ -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); @@ -110,7 +105,7 @@ diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups ch VLOG(1) << "CUPS: Error getting printers from CUPS server" << ", server: " << print_server_url_ << ", error: " << static_cast(last_error) << " - " -@@ -336,7 +336,8 @@ int PrintBackendCUPS::GetDests(cups_dest +@@ -311,7 +311,8 @@ int PrintBackendCUPS::GetDests(cups_dest if (print_server_url_.is_empty()) return cupsGetDests2(CUPS_HTTP_DEFAULT, dests); @@ -120,7 +115,7 @@ diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups ch // 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( +@@ -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. @@ -130,7 +125,7 @@ diff -up chromium-99.0.4844.51/printing/backend/print_backend_cups.cc.el7cups ch 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 +@@ -373,7 +375,8 @@ ScopedDestination PrintBackendCUPS::GetN // Use default (local) print server. dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr); } else { diff --git a/SOURCES/chromium-126-el7-rust-c_string.patch b/SOURCES/chromium-126-el7-rust-c_string.patch new file mode 100644 index 00000000..98817e5b --- /dev/null +++ b/SOURCES/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: &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: &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: &mut V, node: &mut crate::LitByteStr) + where + V: VisitMut + ?Sized, + {} ++pub fn visit_lit_cstr_mut(v: &mut V, node: &mut crate::LitCStr) ++where ++ V: VisitMut + ?Sized, ++{} + pub fn visit_lit_char_mut(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, ++ } ++} ++ + 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::::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 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 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 { ++ 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 { +@@ -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) { ++ 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) { ++ 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) { ++ 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) { + 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(mut s: &S) -> (char, &S) ++ where ++ S: Index, 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 { + 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 { + write!(formatter, "{:?}", self.value.value()) + } + } ++impl Debug for Lite { ++ fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { ++ write!(formatter, "{:?}", self.value.value()) ++ } ++} + impl Debug for Lite { + 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::(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::().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::().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::().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::().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/SOURCES/chromium-126-el7-std_variant.patch b/SOURCES/chromium-126-el7-std_variant.patch new file mode 100644 index 00000000..3375bfcb --- /dev/null +++ b/SOURCES/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 + #include + #include +-#include + #include + + #include "base/barrier_callback.h" +@@ -41,20 +40,16 @@ std::vector ComputeUR + for (std::pair& + 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(url_data.second)) { ++ auto& tab_data = std::get(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 URLVisitAggregate::GetAssociatedURLs() const { + std::set 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( ++ fetcher_entry.second)) { ++ const auto& tab_data = ++ std::get(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 + #include + #include ++#include + #include + + #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 +-struct URLVisitVariantHelper : Ts... { +- using Ts::operator()...; +-}; +- + } // namespace visited_url_ranking + + #endif // COMPONENTS_VISITED_URL_RANKING_PUBLIC_URL_VISIT_H_ diff --git a/SOURCES/chromium-126-el7-stdformat.patch b/SOURCES/chromium-126-el7-stdformat.patch new file mode 100644 index 00000000..80a2da82 --- /dev/null +++ b/SOURCES/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/SOURCES/chromium-125-el7-type-alias.patch b/SOURCES/chromium-126-el7-type-alias.patch similarity index 61% rename from SOURCES/chromium-125-el7-type-alias.patch rename to SOURCES/chromium-126-el7-type-alias.patch index bda9050e..38e7bc11 100644 --- a/SOURCES/chromium-125-el7-type-alias.patch +++ b/SOURCES/chromium-126-el7-type-alias.patch @@ -1,7 +1,7 @@ -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 PlusAddressServi +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 PlusAddressServi bool is_off_the_record, std::u16string_view focused_field_value, autofill::AutofillSuggestionTriggerSource trigger_source) { @@ -10,16 +10,16 @@ diff -up chromium-125.0.6422.60/components/plus_addresses/plus_address_service.c if (!SupportsPlusAddresses(last_committed_primary_main_frame_origin, is_off_the_record)) { return {}; -@@ -176,7 +176,7 @@ std::vector PlusAddressServi +@@ -207,7 +207,7 @@ std::vector PlusAddressServi std::optional maybe_address = - GetPlusAddress(last_committed_primary_main_frame_origin); + 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 {}; } -@@ -191,7 +191,7 @@ std::vector PlusAddressServi +@@ -222,7 +222,7 @@ std::vector PlusAddressServi // Only suggest filling a plus address whose prefix matches the field's value. std::u16string address = base::UTF8ToUTF16(*maybe_address); diff --git a/SOURCES/chromium-126-ifunc-header.patch b/SOURCES/chromium-126-ifunc-header.patch new file mode 100644 index 00000000..72368df0 --- /dev/null +++ b/SOURCES/chromium-126-ifunc-header.patch @@ -0,0 +1,15 @@ +diff -up chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h +--- chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me 2024-06-12 13:09:47.539620293 -0400 ++++ chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h 2024-06-12 13:12:10.570739701 -0400 +@@ -10,9 +10,11 @@ + #include "partition_alloc/build_config.h" + #include "partition_alloc/partition_alloc_buildflags.h" + ++#if 0 + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) + #define HAS_HW_CAPS + #endif ++#endif + + #if defined(ARCH_CPU_ARM64) && defined(HAS_HW_CAPS) + #include diff --git a/SOURCES/chromium-126-split-threshold-for-reg-with-hint.patch b/SOURCES/chromium-126-split-threshold-for-reg-with-hint.patch new file mode 100644 index 00000000..4ae1f29a --- /dev/null +++ b/SOURCES/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/SOURCES/chromium-126-system-libstdc++.patch b/SOURCES/chromium-126-system-libstdc++.patch new file mode 100644 index 00000000..396f48f8 --- /dev/null +++ b/SOURCES/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 + #include + +-#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 + #include + #include ++#include + #include + + #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 + #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 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 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 StructTraitsall_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(); ++ 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(); ++ view_state_ = blink::HistoryItem::ViewState{}; + view_state_->scroll_offset_ = offset; + } + + void HistoryItem::SetPageScaleFactor(float scale_factor) { + if (!view_state_) +- view_state_ = std::make_optional(); ++ 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(); ++ 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 + #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 + #include + + #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 + #include ++#include + #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 + #include ++#include + #include + #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 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 + // 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 + 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 + subpixel_order = static_cast(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 + 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 + 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 + 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 + 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 detail + // map + auto map_expr = present; + if (CaseAnd(map_expr, Xkb::MapPart::KeyTypes)) { +- map.types_rtrn.emplace(); ++ map.types_rtrn = std::vector{}; + auto& types_rtrn = *map.types_rtrn; + + // types_rtrn +@@ -5207,7 +5207,7 @@ std::unique_ptr + 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 + } + } + 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 + } + } + 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 + } + 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 + } + } + 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/SPECS/chromium.spec b/SPECS/chromium.spec index 94c8f51c..b1bac4ca 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -126,7 +126,7 @@ %global useapikey 1 # Leave this alone, please. -%global builddir out/Release +%global chromebuilddir out/Release %global headlessbuilddir out/Headless %global remotingbuilddir out/Remoting @@ -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 @@ -209,10 +204,6 @@ %endif %endif -# Chromium's fork of ICU is now something we can't unbundle. -# This is left here to ease the change if that ever switches. -%global bundleicu 1 - # bundle re2, jsoncpp, woff2 - build errors with use_custom_libcxx=true %global bundlere2 1 %global bundlejsoncpp 1 @@ -250,6 +241,7 @@ %global bundlefontconfig 1 %global bundleffmpegfree 1 %global bundlebrotli 1 +%global bundleicu 1 %global bundlelibopenjpeg2 1 %global bundlelibtiff 1 %global bundlecrc32c 1 @@ -258,11 +250,14 @@ %else %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 @@ -315,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 @@ -374,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 @@ -388,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 @@ -407,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 @@ -426,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 @@ -455,6 +454,7 @@ Patch150: chromium-124-qt6.patch # disable memory tagging in epel7 and epel8 on aarch64 due to new feature IFUNC-Resolver # not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found Patch305: chromium-124-arm64-memory_tagging.patch +Patch306: chromium-126-ifunc-header.patch # compiler errors on el7/el8 and f38 (clang <17) Patch307: chromium-125-el-NativeValueTraits-p1.patch @@ -466,10 +466,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 @@ -482,18 +482,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 @@ -565,10 +562,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/ @@ -687,7 +680,11 @@ BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6Widgets) %endif +%if 0%{?rhel} == 7 +BuildRequires: llvm-toolset-%{llvm_toolset_version}-compiler-rt +%else BuildRequires: compiler-rt +%endif %if ! %{bundleharfbuzz} BuildRequires: harfbuzz-devel >= 2.4.0 @@ -822,7 +819,7 @@ BuildRequires: libffi-devel # If this is true, we're using the bundled icu. # We'd like to use the system icu every time, but we cannot always do that. # Not newer than 54 (at least not right now) -BuildRequires: libicu-devel = 54.1 +BuildRequires: libicu-devel >= 68 %endif %if ! %{bundlelibjpeg} @@ -1192,7 +1189,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 @@ -1205,6 +1202,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 @@ -1222,6 +1223,7 @@ cp /opt/rh/%{toolset}-%{dts_version}/root/usr/include/c++/%{dts_version}/optiona %if 0%{?rhel} && 0%{?rhel} <= 8 %ifarch aarch64 %patch -P305 -p1 -b .memory_tagging +%patch -P306 -p1 -b .ifunc-header %patch -P317 -p1 -b .libdav1d-aarch64 %endif %endif @@ -1247,12 +1249,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} < 40 +%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 @@ -1322,8 +1326,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 @@ -1399,11 +1401,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 @@ -1731,17 +1730,17 @@ fi %if %{bootstrap} tools/gn/bootstrap/bootstrap.py --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %else -mkdir -p %{builddir} && cp -a %{_bindir}/gn %{builddir}/ +mkdir -p %{chromebuilddir} && cp -a %{_bindir}/gn %{chromebuilddir}/ %endif -%{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir} +%{chromebuilddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{chromebuilddir} %if %{build_headless} -%{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir} +%{chromebuilddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir} %endif %if %{build_remoting} -%{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir} +%{chromebuilddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir} %endif %if %{build_headless} @@ -1749,18 +1748,18 @@ mkdir -p %{builddir} && cp -a %{_bindir}/gn %{builddir}/ %build_target %{headlessbuilddir} headless_shell %endif -%build_target %{builddir} chrome -%build_target %{builddir} chrome_sandbox +%build_target %{chromebuilddir} chrome +%build_target %{chromebuilddir} chrome_sandbox %if %{build_chromedriver} -%build_target %{builddir} chromedriver +%build_target %{chromebuilddir} chromedriver %endif %if %{build_clear_key_cdm} -%build_target %{builddir} clear_key_cdm +%build_target %{chromebuilddir} clear_key_cdm %endif -%build_target %{builddir} policy_templates +%build_target %{chromebuilddir} policy_templates %if %{build_remoting} %build_target %{remotingbuilddir} remoting_all @@ -1801,8 +1800,11 @@ sed -i "s|@@CHROMIUM_BROWSER_CHANNEL@@|$CHROMIUM_BROWSER_CHANNEL|g" %{buildroot} ln -s ../..%{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel} mkdir -p %{buildroot}%{_mandir}/man1/ -pushd %{builddir} - cp -a chrom*.pak resources.pak icudtl.dat %{buildroot}%{chromium_path} +pushd %{chromebuilddir} +%if %{bundleicu} + cp -a icudtl.dat %{buildroot}%{chromium_path} +%endif + cp -a chrom*.pak resources.pak %{buildroot}%{chromium_path} cp -a locales/*.pak %{buildroot}%{chromium_path}/locales/ %ifarch x86_64 aarch64 ppc64le cp -a libvk_swiftshader.so %{buildroot}%{chromium_path} @@ -1912,7 +1914,7 @@ popd # need to strip binaries explicitly when debug is disable %if ! %{enable_debug} pushd %{buildroot}%{chromium_path}/ -for f in *.so chrome_crashpad_handler chrome-sandbox chromium-browser headless_shell chromedriver ; do +for f in *.so *.so.1 chrome_crashpad_handler chrome-sandbox chromium-browser headless_shell chromedriver ; do [ -f $f ] && strip $f done popd @@ -2026,7 +2028,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/libEGL.so* %{chromium_path}/libGLESv2.so* %endif +%if %{bundleicu} %{chromium_path}/icudtl.dat +%endif %dir %{chromium_path}/ %dir %{chromium_path}/locales/ %lang(af) %{chromium_path}/locales/af.pak @@ -2127,6 +2131,27 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %endif %changelog +* Wed Jun 12 2024 Than Ngo - 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 - 125.0.6422.141-1 - update to 125.0.6422.141 * High CVE-2024-5493: Heap buffer overflow in WebRTC