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