diff options
author | Noah Vogt | 2024-02-16 15:18:00 +0100 |
---|---|---|
committer | Noah Vogt | 2024-02-16 15:18:00 +0100 |
commit | 462fd1271bb47db8b759622c99d11aed0067e668 (patch) | |
tree | d71bc5bc8f0a97244128ed2bd2489c4974727b93 | |
parent | 6d6ab3ee231f698a31fac26c9f9e39d5fd49ddec (diff) | |
download | aur-462fd1271bb47db8b759622c99d11aed0067e668.tar.gz |
uppkg -> 122.0.6261.39-1
-rw-r--r-- | .SRCINFO | 30 | ||||
-rw-r--r-- | PKGBUILD | 75 | ||||
-rw-r--r-- | REVERT-simplify-blink-NativeValueTraitsBase.patch | 747 | ||||
-rw-r--r-- | REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch | 174 | ||||
-rw-r--r-- | chromium-115-add-cmath-for-various-math-functions-in-skia.patch | 27 | ||||
-rw-r--r-- | chromium-115-std-vector-used-in-verify_name_match.h-without-include.patch | 27 | ||||
-rw-r--r-- | chromium-constexpr.patch | 48 | ||||
-rw-r--r-- | chromium-drirc-disable-10bpc-color-configs.conf | 15 | ||||
-rw-r--r-- | chromium-drirc-disable-10bpc-color-configs.patch | 15 | ||||
-rw-r--r-- | compiler-rt-16.patch | 36 | ||||
-rw-r--r-- | drop-flags-unsupported-by-clang16 (1).patch | 40 | ||||
-rw-r--r-- | icu-74.patch | 21 | ||||
-rw-r--r-- | random-build-fixes.patch | 516 | ||||
-rw-r--r-- | random-fixes-for-gcc13.patch | 75 | ||||
-rw-r--r-- | skia-gamma.patch | 13 | ||||
-rw-r--r-- | support-ICU-74-in-LazyTextBreakIterator.patch | 148 | ||||
-rw-r--r-- | webauthn-variant.patch | 12 |
17 files changed, 1262 insertions, 757 deletions
@@ -1,6 +1,6 @@ pkgbase = ungoogled-chromium-xdg pkgdesc = A lightweight approach to removing Google web service dependency - without creating a useless ~/.pki directory - pkgver = 121.0.6167.184 + pkgver = 122.0.6261.39 pkgrel = 1 url = https://github.com/ungoogled-software/ungoogled-chromium arch = x86_64 @@ -51,31 +51,39 @@ pkgbase = ungoogled-chromium-xdg optdepends = org.freedesktop.secrets: password storage backend on GNOME / Xfce optdepends = kwallet5: support for storing passwords in KWallet on Plasma optdepends = chromium-extension-web-store: Web Store Functionality - provides = chromium=121.0.6167.184 - provides = chromedriver=121.0.6167.184 + provides = chromium=122.0.6261.39 + provides = chromedriver=122.0.6261.39 conflicts = chromium conflicts = chromedriver options = !lto - source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-121.0.6167.184.tar.xz + source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-122.0.6261.39.tar.xz source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz - source = https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/121/chromium-patches-121.tar.bz2 + source = https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/122/chromium-patches-122.tar.bz2 + source = support-ICU-74-in-LazyTextBreakIterator.patch + source = REVERT-simplify-blink-NativeValueTraitsBase.patch + source = REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch + source = chromium-constexpr.patch source = drop-flags-unsupported-by-clang16.patch - source = icu-74.patch + source = compiler-rt-16.patch source = use-oauth2-client-switches-as-default.patch source = xdg-basedir.patch source = no-omnibox-suggestion-autocomplete.patch source = index.html - source = ungoogled-chromium-121.0.6167.184-1.tar.gz::https://github.com/ungoogled-software/ungoogled-chromium/archive/refs/tags/121.0.6167.184-1.tar.gz + source = ungoogled-chromium-122.0.6261.39-1.tar.gz::https://github.com/ungoogled-software/ungoogled-chromium/archive/refs/tags/122.0.6261.39-1.tar.gz source = 0001-vaapi-flag-ozone-wayland.patch source = 0001-adjust-buffer-format-order.patch source = 0001-enable-linux-unstable-deb-target.patch source = 0001-ozone-wayland-implement-text_input_manager_v3.patch source = 0001-ozone-wayland-implement-text_input_manager-fixes.patch - sha256sums = 9fd6b82e7077ac26ec264bfcfc8ac8e0c2a0240378f035c9c0f34ad467aef09d + sha256sums = 30fc98bdb497d98e63fcb4d8e76acf5201eddf7e65ee907ecf4041cc8e121be3 sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a - sha256sums = e9113c1ed2900b84b488e608774ce25212d3c60094abdae005d8a943df9b505e - sha256sums = 8d1cdf3ddd8ff98f302c90c13953f39cd804b3479b13b69b8ef138ac57c83556 - sha256sums = ff9ebd86b0010e1c604d47303ab209b1d76c3e888c423166779cefbc22de297f + sha256sums = 1f6acf165578288dc84edc7d9dcfabf7d38f55153b63a37ee5afa929f0e2baad + sha256sums = 8c256b2a9498a63706a6e7a55eadbeb8cc814be66a75e49aec3716c6be450c6c + sha256sums = 318df8f8662071cebcdf953698408058e17f59f184500b7e12e01a04a4206b50 + sha256sums = 00e06b889e4face0ef41293233ce55bd52064ab040f1fdd84aa19525f8ac3601 + sha256sums = a061f83e2b628927feb4dbc441eb54f8b8c3d81348e447cf3b90755d7cda5f54 + sha256sums = 53774fd7f807ad42f77d45cab9e5480cc2bcb0a5c5138110a434407521af9607 + sha256sums = 8a2649dcc6ff8d8f24ddbe40dc2a171824f681c6f33c39c4792b645b87c9dcab sha256sums = e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711 sha256sums = f97e6cd3c4d2e04f5d9a0ea234fe768d6ba0fa9f4ecd5c7b2ca91030a1249078 sha256sums = ff1591fa38e0ede7e883dc7494b813641b7a1a7cb1ded00d9baaee987c1dbea8 @@ -12,11 +12,11 @@ # binary version of this package (-bin): github.com/noahvogt/ungoogled-chromium-xdg-bin-aur pkgname=ungoogled-chromium-xdg -pkgver=121.0.6167.184 +pkgver=122.0.6261.39 pkgrel=1 _launcher_ver=8 _manual_clone=0 -_system_clang=0 +_system_clang=1 pkgdesc="A lightweight approach to removing Google web service dependency - without creating a useless ~/.pki directory" arch=('x86_64') url="https://github.com/ungoogled-software/ungoogled-chromium" @@ -36,18 +36,30 @@ options=('!lto') # Chromium adds its own flags for ThinLTO source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${pkgver%%.*}/chromium-patches-${pkgver%%.*}.tar.bz2 + support-ICU-74-in-LazyTextBreakIterator.patch + REVERT-simplify-blink-NativeValueTraitsBase.patch + REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch + chromium-constexpr.patch drop-flags-unsupported-by-clang16.patch - icu-74.patch - use-oauth2-client-switches-as-default.patch + compiler-rt-16.patch + use-oauth2-client-switches-as-default.patch) +sha256sums=('30fc98bdb497d98e63fcb4d8e76acf5201eddf7e65ee907ecf4041cc8e121be3' + '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' + '1f6acf165578288dc84edc7d9dcfabf7d38f55153b63a37ee5afa929f0e2baad' + '8c256b2a9498a63706a6e7a55eadbeb8cc814be66a75e49aec3716c6be450c6c' + '318df8f8662071cebcdf953698408058e17f59f184500b7e12e01a04a4206b50' + '00e06b889e4face0ef41293233ce55bd52064ab040f1fdd84aa19525f8ac3601' + 'a061f83e2b628927feb4dbc441eb54f8b8c3d81348e447cf3b90755d7cda5f54' + '53774fd7f807ad42f77d45cab9e5480cc2bcb0a5c5138110a434407521af9607' + '8a2649dcc6ff8d8f24ddbe40dc2a171824f681c6f33c39c4792b645b87c9dcab' + 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711') + +# ungoogled-chromium-xdg patches +source=(${source[@]} xdg-basedir.patch no-omnibox-suggestion-autocomplete.patch index.html) -sha256sums=('9fd6b82e7077ac26ec264bfcfc8ac8e0c2a0240378f035c9c0f34ad467aef09d' - '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' - 'e9113c1ed2900b84b488e608774ce25212d3c60094abdae005d8a943df9b505e' - '8d1cdf3ddd8ff98f302c90c13953f39cd804b3479b13b69b8ef138ac57c83556' - 'ff9ebd86b0010e1c604d47303ab209b1d76c3e888c423166779cefbc22de297f' - 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711' +sha256sums=(${sha256sums[@]} 'f97e6cd3c4d2e04f5d9a0ea234fe768d6ba0fa9f4ecd5c7b2ca91030a1249078' 'ff1591fa38e0ede7e883dc7494b813641b7a1a7cb1ded00d9baaee987c1dbea8' 'a4cdd2b86f32d5302c2792be841ff40d982b19bb58a4e63df9d77f4c706b8665') @@ -143,19 +155,27 @@ prepare() { # runtime -- this allows signing into Chromium without baked-in values patch -Np1 -i ../use-oauth2-client-switches-as-default.patch - # Upstream fixes + # Upstream fixes + patch -Np1 -i ../support-ICU-74-in-LazyTextBreakIterator.patch + + # Fix "error: defaulted definition of equality comparison operator cannot + # be declared constexpr because it invokes a non-constexpr comparison + # function" (patch for Chromium 121 from Fedora, later extended for 122) + patch -Np1 -i ../chromium-constexpr.patch - # Fix build with ICU 74 - patch -Np1 -i ../icu-74.patch + # Revert usage of C++20 features which likely need newer clang + patch -Rp1 -i ../REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch + patch -Rp1 -i ../REVERT-simplify-blink-NativeValueTraitsBase.patch # Drop compiler flags that need newer clang - #patch -Np1 -i ../drop-flags-unsupported-by-clang16.patch + patch -Np1 -i ../drop-flags-unsupported-by-clang16.patch - # Fixes for building with libstdc++ instead of libc++ - #patch -Np1 -i ../chromium-patches-*/chromium-114-ruy-include.patch - #patch -Np1 -i ../chromium-patches-*/chromium-117-material-color-include.patch - #patch -Np1 -i ../chromium-patches-*/chromium-119-clang16.patch + # Allow libclang_rt.builtins from compiler-rt 16 to be used + patch -Np1 -i ../compiler-rt-16.patch + # Fixes for building with libstdc++ instead of libc++ + patch -Np1 -i ../chromium-patches-*/chromium-114-ruy-include.patch + patch -Np1 -i ../chromium-patches-*/chromium-117-material-color-include.patch # Custom Patches @@ -188,15 +208,19 @@ prepare() { ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ ln -s /usr/bin/java third_party/jdk/current/bin/ - # Use prebuilt rust as system rust cannot be used due to the error: - # error: the option `Z` is only accepted on the nightly compiler - ./tools/rust/update_rust.py + if (( !_system_clang )); then + # Use prebuilt rust as system rust cannot be used due to the error: + # error: the option `Z` is only accepted on the nightly compiler + ./tools/rust/update_rust.py + + # To link to rust libraries we need to compile with prebuilt clang + ./tools/clang/scripts/update.py + fi - # To link to rust libraries we need to compile with prebuilt clang - ./tools/clang/scripts/update.py # Ungoogled Chromium changes -_ungoogled_repo="$srcdir/ungoogled-chromium-update" + # _ungoogled_repo="$srcdir/ungoogled-chromium-update" + _ungoogled_repo="$srcdir/$pkgname-$_uc_ver" _utils="${_ungoogled_repo}/utils" msg2 'Pruning binaries' @@ -281,7 +305,8 @@ build() { fi # Append ungoogled chromium flags to _flags array - _ungoogled_repo="$srcdir/ungoogled-chromium-update" + # _ungoogled_repo="$srcdir/ungoogled-chromium-update" + _ungoogled_repo="$srcdir/$pkgname-$_uc_ver" readarray -t -O ${#_flags[@]} _flags < "${_ungoogled_repo}/flags.gn" # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) diff --git a/REVERT-simplify-blink-NativeValueTraitsBase.patch b/REVERT-simplify-blink-NativeValueTraitsBase.patch new file mode 100644 index 000000000000..fc046cbac0ba --- /dev/null +++ b/REVERT-simplify-blink-NativeValueTraitsBase.patch @@ -0,0 +1,747 @@ +From 940af9f2c87b436559b97c53763aa9eaaf1254eb Mon Sep 17 00:00:00 2001 +From: Jeremy Roman <jbroman@chromium.org> +Date: Wed, 15 Nov 2023 16:24:54 +0000 +Subject: [PATCH] Use C++20 features to simplify blink::NativeValueTraitsBase. + +These allow some of the metaprogramming bits to be simplified a little. + +Change-Id: I052b4397586d21348401616e1792afdb9662f975 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5030335 +Reviewed-by: Yuki Shiino <yukishiino@chromium.org> +Commit-Queue: Jeremy Roman <jbroman@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1224978} +--- + .../bindings/core/v8/native_value_traits.h | 54 ++---- + .../v8/native_value_traits_buffer_sources.cc | 166 ++++++++---------- + .../core/v8/native_value_traits_impl.h | 159 +++++++---------- + 3 files changed, 151 insertions(+), 228 deletions(-) + +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +index 7fc91d14acc71a2..1e5a0790df6da81 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +@@ -5,6 +5,7 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_ + #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_ + ++#include <concepts> + #include <type_traits> + + #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h" +@@ -30,7 +31,7 @@ class ExceptionState; + // return toInt32(isolate, value, exceptionState, NormalConversion); + // } + // } +-template <typename T, typename SFINAEHelper = void> ++template <typename T> + struct NativeValueTraits; + + // This declaration serves only as a blueprint for specializations: the +@@ -45,22 +46,15 @@ struct NativeValueTraits; + + namespace bindings { + +-template <typename T, typename = void> +-struct NativeValueTraitsHasIsNull : std::false_type {}; +- + template <typename T> +-struct NativeValueTraitsHasIsNull< +- T, +- std::void_t<decltype(std::declval<T>().IsNull())>> : std::true_type {}; ++struct ImplTypeFor { ++ using type = T; ++}; + + template <typename T> +-struct NativeValueTraitsHasNullValue { +- // true if |T| supports IDL null value. +- static constexpr bool value = +- // ScriptValue, String, and union types have IsNull member function. +- bindings::NativeValueTraitsHasIsNull<T>::value || +- // Pointer types have nullptr as IDL null value. +- std::is_pointer<T>::value; ++ requires std::derived_from<T, IDLBase> ++struct ImplTypeFor<T> { ++ using type = typename T::ImplType; + }; + + } // namespace bindings +@@ -78,37 +72,17 @@ struct NativeValueTraitsHasNullValue { + // If present, |NullValue()| will be used when converting from the nullable type + // T?, and should be used if the impl type has an existing "null" state. If not + // present, WTF::Optional will be used to wrap the type. +-template <typename T, typename SFINAEHelper = void> +-struct NativeValueTraitsBase { +- STATIC_ONLY(NativeValueTraitsBase); +- +- using ImplType = T; +- +- static constexpr bool has_null_value = +- bindings::NativeValueTraitsHasNullValue<ImplType>::value; +- +- template <typename... ExtraArgs> +- static decltype(auto) ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state, +- ExtraArgs... extra_args) { +- return NativeValueTraits<std::remove_pointer_t<T>>::NativeValue( +- isolate, value, exception_state, +- std::forward<ExtraArgs>(extra_args)...); +- } +-}; +- + template <typename T> +-struct NativeValueTraitsBase< +- T, +- std::enable_if_t<std::is_base_of<IDLBase, T>::value>> { ++struct NativeValueTraitsBase { + STATIC_ONLY(NativeValueTraitsBase); + +- using ImplType = typename T::ImplType; ++ using ImplType = bindings::ImplTypeFor<T>::type; + ++ // Pointer types have nullptr as IDL null value. ++ // ScriptValue, String, and union types have IsNull member function. + static constexpr bool has_null_value = +- bindings::NativeValueTraitsHasNullValue<ImplType>::value; ++ std::is_pointer_v<ImplType> || ++ requires(ImplType value) { value.IsNull(); }; + + template <typename... ExtraArgs> + static decltype(auto) ArgumentValue(v8::Isolate* isolate, +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc +index 508ea6d8eea481e..18de71d84023f0c 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc +@@ -7,6 +7,7 @@ + #include "third_party/blink/renderer/core/core_export.h" + #include "third_party/blink/renderer/core/execution_context/execution_context.h" + #include "third_party/blink/renderer/core/frame/web_feature.h" ++#include "third_party/blink/renderer/core/typed_arrays/flexible_array_buffer_view.h" + #include "third_party/blink/renderer/core/typed_arrays/typed_flexible_array_buffer_view.h" + + namespace blink { +@@ -698,12 +699,11 @@ DOMArrayBufferBase* NativeValueTraits< + // ArrayBufferView + + template <typename T> +-NotShared<T> NativeValueTraits< +- NotShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++NotShared<T> NativeValueTraits<NotShared<T>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -712,13 +712,12 @@ NotShared<T> NativeValueTraits< + } + + template <typename T> +-NotShared<T> NativeValueTraits< +- NotShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++NotShared<T> NativeValueTraits<NotShared<T>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -729,12 +728,11 @@ NotShared<T> NativeValueTraits< + // [AllowShared] ArrayBufferView + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- MaybeShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> NativeValueTraits<MaybeShared<T>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return NativeValueImpl<RecipeTrait<MaybeShared<T>>, + ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -743,13 +741,12 @@ MaybeShared<T> NativeValueTraits< + } + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- MaybeShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> NativeValueTraits<MaybeShared<T>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>, + ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -760,12 +757,12 @@ MaybeShared<T> NativeValueTraits< + // [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> ++NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck, +@@ -774,13 +771,12 @@ MaybeShared<T> NativeValueTraits< + } + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> NativeValueTraits<IDLBufferSourceTypeNoSizeLimit< ++ MaybeShared<T>>>::ArgumentValue(v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait<MaybeShared<T>>, ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck, +@@ -791,12 +787,11 @@ MaybeShared<T> NativeValueTraits< + // Nullable ArrayBufferView + + template <typename T> +-NotShared<T> NativeValueTraits< +- IDLNullable<NotShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -805,13 +800,12 @@ NotShared<T> NativeValueTraits< + } + + template <typename T> +-NotShared<T> NativeValueTraits< +- IDLNullable<NotShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++NotShared<T> NativeValueTraits<IDLNullable<NotShared<T>>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait<NotShared<T>>, ToDOMViewType<T, kNotShared>, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -822,12 +816,11 @@ NotShared<T> NativeValueTraits< + // Nullable [AllowShared] ArrayBufferView + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- IDLNullable<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return NativeValueImpl<RecipeTrait<MaybeShared<T>>, + ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -836,13 +829,12 @@ MaybeShared<T> NativeValueTraits< + } + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- IDLNullable<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> NativeValueTraits<IDLNullable<MaybeShared<T>>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl<RecipeTrait<MaybeShared<T>>, + ToDOMViewType<T, kMaybeShared>, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -853,9 +845,9 @@ MaybeShared<T> NativeValueTraits< + // Nullable [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView + + template <typename T> +-MaybeShared<T> NativeValueTraits< +- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>>:: ++ requires std::derived_from<T, DOMArrayBufferView> ++MaybeShared<T> ++NativeValueTraits<IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>>:: + ArgumentValue(v8::Isolate* isolate, + int argument_index, + v8::Local<v8::Value> value, +@@ -870,13 +862,11 @@ MaybeShared<T> NativeValueTraits< + // [AllowShared, FlexibleArrayBufferView] ArrayBufferView + + template <typename T> +-T NativeValueTraits<T, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, FlexibleArrayBufferView> ++T NativeValueTraits<T>::ArgumentValue(v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, + ResizableAllowance::kDisallowResizable, +@@ -888,13 +878,12 @@ T NativeValueTraits<T, + // ArrayBufferView + + template <typename T> +-T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, FlexibleArrayBufferView> ++T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait<T>, ToFlexibleArrayBufferView, Nullablity::kIsNotNullable, + BufferSizeCheck::kDoNotCheck, ResizableAllowance::kDisallowResizable, +@@ -905,13 +894,12 @@ T NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>, + // Nullable [AllowShared, FlexibleArrayBufferView] ArrayBufferView + + template <typename T> +-T NativeValueTraits<IDLNullable<T>, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local<v8::Value> value, +- ExceptionState& exception_state) { ++ requires std::derived_from<T, FlexibleArrayBufferView> ++T NativeValueTraits<IDLNullable<T>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local<v8::Value> value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl<RecipeTrait<T>, ToFlexibleArrayBufferView, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, + ResizableAllowance::kDisallowResizable, +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +index 899929dcf49f90a..5011503dcf1c0c8 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +@@ -5,6 +5,9 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_ + #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_ + ++#include <concepts> ++#include <type_traits> ++ + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "third_party/blink/renderer/bindings/core/v8/idl_types.h" + #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h" +@@ -715,9 +718,8 @@ struct CORE_EXPORT NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> { ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<T> { + // NotShared<T> or MaybeShared<T> should be used instead. + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -729,9 +731,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> { ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<IDLNullable<T>> { + // NotShared<T> or MaybeShared<T> should be used instead. + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -743,9 +744,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- NotShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<NotShared<T>> + : public NativeValueTraitsBase<NotShared<T>> { + static NotShared<T> NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -758,9 +758,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<NotShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<IDLNullable<NotShared<T>>> + : public NativeValueTraitsBase<NotShared<T>> { + static NotShared<T> NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -773,9 +772,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- MaybeShared<T>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<MaybeShared<T>> + : public NativeValueTraitsBase<MaybeShared<T>> { + static MaybeShared<T> NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -788,9 +786,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>> + : public NativeValueTraitsBase<MaybeShared<T>> { + // FlexibleArrayBufferView uses this in its implementation, so we cannot + // delete it. +@@ -805,9 +802,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<MaybeShared<T>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ requires std::derived_from<T, DOMArrayBufferView> ++struct NativeValueTraits<IDLNullable<MaybeShared<T>>> + : public NativeValueTraitsBase<MaybeShared<T>> { + static MaybeShared<T> NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -820,9 +816,9 @@ struct NativeValueTraits< + }; + + template <typename T> ++ requires std::derived_from<T, DOMArrayBufferView> + struct NativeValueTraits< +- IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>, +- typename std::enable_if_t<std::is_base_of<DOMArrayBufferView, T>::value>> ++ IDLNullable<IDLBufferSourceTypeNoSizeLimit<MaybeShared<T>>>> + : public NativeValueTraitsBase<MaybeShared<T>> { + // BufferSourceTypeNoSizeLimit must be used only as arguments. + static MaybeShared<T> NativeValue(v8::Isolate* isolate, +@@ -836,11 +832,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>> +- : public NativeValueTraitsBase<T> { ++ requires std::derived_from<T, FlexibleArrayBufferView> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T> { + // FlexibleArrayBufferView must be used only as arguments. + static T NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -853,10 +846,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit<T>, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>> ++ requires std::derived_from<T, FlexibleArrayBufferView> ++struct NativeValueTraits<IDLBufferSourceTypeNoSizeLimit<T>> + : public NativeValueTraitsBase<T> { + // BufferSourceTypeNoSizeLimit and FlexibleArrayBufferView must be used only + // as arguments. +@@ -871,11 +862,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t< +- std::is_base_of<FlexibleArrayBufferView, T>::value>> +- : public NativeValueTraitsBase<T> { ++ requires std::derived_from<T, FlexibleArrayBufferView> ++struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T> { + // FlexibleArrayBufferView must be used only as arguments. + static T NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -1134,9 +1122,8 @@ NativeValueTraits<IDLSequence<T>>::NativeValue( + } + + template <typename T> +-struct NativeValueTraits<IDLNullable<IDLSequence<T>>, +- typename std::enable_if_t< +- NativeValueTraits<IDLSequence<T>>::has_null_value>> ++ requires NativeValueTraits<IDLSequence<T>>::has_null_value ++struct NativeValueTraits<IDLNullable<IDLSequence<T>>> + : public NativeValueTraitsBase<HeapVector<AddMemberIfNeeded<T>>*> { + using ImplType = typename NativeValueTraits<IDLSequence<T>>::ImplType*; + +@@ -1203,9 +1190,8 @@ struct NativeValueTraits<IDLArray<T>> + : public NativeValueTraits<IDLSequence<T>> {}; + + template <typename T> +-struct NativeValueTraits<IDLNullable<IDLArray<T>>, +- typename std::enable_if_t< +- NativeValueTraits<IDLSequence<T>>::has_null_value>> ++ requires NativeValueTraits<IDLSequence<T>>::has_null_value ++struct NativeValueTraits<IDLNullable<IDLArray<T>>> + : public NativeValueTraits<IDLNullable<IDLSequence<T>>> {}; + + // Record types +@@ -1335,10 +1321,8 @@ struct NativeValueTraits<IDLRecord<K, V>> + + // Callback function types + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, CallbackFunctionBase> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1361,9 +1345,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t<std::is_base_of<CallbackFunctionBase, T>::value>> ++ requires std::derived_from<T, CallbackFunctionBase> ++struct NativeValueTraits<IDLNullable<T>> + : public NativeValueTraitsBase<IDLNullable<T>> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -1392,10 +1375,8 @@ struct NativeValueTraits< + + // Callback interface types + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, CallbackInterfaceBase> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1418,9 +1399,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t<std::is_base_of<CallbackInterfaceBase, T>::value>> ++ requires std::derived_from<T, CallbackInterfaceBase> ++struct NativeValueTraits<IDLNullable<T>> + : public NativeValueTraitsBase<IDLNullable<T>> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -1449,11 +1429,8 @@ struct NativeValueTraits< + + // Dictionary types + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of<bindings::DictionaryBase, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, bindings::DictionaryBase> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1464,14 +1441,11 @@ struct NativeValueTraits< + // We don't support nullable dictionary types in general since it's quite + // confusing and often misused. + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t< +- std::is_base_of<bindings::DictionaryBase, T>::value && +- (std::is_same<T, GPUColorTargetState>::value || +- std::is_same<T, GPURenderPassColorAttachment>::value || +- std::is_same<T, GPUVertexBufferLayout>::value)>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, bindings::DictionaryBase> && ++ (std::same_as<T, GPUColorTargetState> || ++ std::same_as<T, GPURenderPassColorAttachment> || ++ std::same_as<T, GPUVertexBufferLayout>) ++struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1483,11 +1457,8 @@ struct NativeValueTraits< + + // Enumeration types + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of<bindings::EnumerationBase, T>::value>> +- : public NativeValueTraitsBase<T> { ++ requires std::derived_from<T, bindings::EnumerationBase> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T> { + static T NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1497,10 +1468,8 @@ struct NativeValueTraits< + + // Interface types + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, ScriptWrappable> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + static inline T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1528,9 +1497,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> ++ requires std::derived_from<T, ScriptWrappable> ++struct NativeValueTraits<IDLNullable<T>> + : public NativeValueTraitsBase<IDLNullable<T>> { + static inline T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, +@@ -1565,10 +1533,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- T, +- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, bindings::UnionBase> ++struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1584,10 +1550,8 @@ struct NativeValueTraits< + }; + + template <typename T> +-struct NativeValueTraits< +- IDLNullable<T>, +- typename std::enable_if_t<std::is_base_of<bindings::UnionBase, T>::value>> +- : public NativeValueTraitsBase<T*> { ++ requires std::derived_from<T, bindings::UnionBase> ++struct NativeValueTraits<IDLNullable<T>> : public NativeValueTraitsBase<T*> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { +@@ -1608,9 +1572,8 @@ struct NativeValueTraits< + + // Nullable types + template <typename InnerType> +-struct NativeValueTraits< +- IDLNullable<InnerType>, +- typename std::enable_if_t<!NativeValueTraits<InnerType>::has_null_value>> ++ requires(!NativeValueTraits<InnerType>::has_null_value) ++struct NativeValueTraits<IDLNullable<InnerType>> + : public NativeValueTraitsBase<IDLNullable<InnerType>> { + // https://webidl.spec.whatwg.org/#es-nullable-type + using ImplType = +@@ -1642,9 +1605,8 @@ struct NativeValueTraits<IDLNullable<IDLNullable<T>>>; + + // Optional types + template <typename T> +-struct NativeValueTraits<IDLOptional<T>, +- typename std::enable_if_t<std::is_arithmetic< +- typename NativeValueTraits<T>::ImplType>::value>> ++ requires std::is_arithmetic_v<typename NativeValueTraits<T>::ImplType> ++struct NativeValueTraits<IDLOptional<T>> + : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> { + using ImplType = typename NativeValueTraits<T>::ImplType; + +@@ -1666,9 +1628,8 @@ struct NativeValueTraits<IDLOptional<T>, + }; + + template <typename T> +-struct NativeValueTraits<IDLOptional<T>, +- typename std::enable_if_t<std::is_pointer< +- typename NativeValueTraits<T>::ImplType>::value>> ++ requires std::is_pointer_v<typename NativeValueTraits<T>::ImplType> ++struct NativeValueTraits<IDLOptional<T>> + : public NativeValueTraitsBase<typename NativeValueTraits<T>::ImplType> { + using ImplType = typename NativeValueTraits<T>::ImplType; + diff --git a/REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch b/REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch new file mode 100644 index 000000000000..8db4a848aed4 --- /dev/null +++ b/REVERT-use-v8-Array-Iterate-for-converting-script-wrappables.patch @@ -0,0 +1,174 @@ +From ce71348a09f6689dd01a68db64b172191d0182d8 Mon Sep 17 00:00:00 2001 +From: Andrey Kosyakov <caseq@chromium.org> +Date: Thu, 21 Dec 2023 18:38:38 +0000 +Subject: [PATCH] [bindings] Use v8::Array::Iterate for converting script + wrappables + +This changes CreateIDLSequenceFromV8Array to use the new +v8::Array::Iterate() operation. +This speeds up the "execBundles" part of the microbenchmark +at crbug.com/dawn/1858 by around 3x. +This depends on crrev.com/c/4846594 landing (and rolling) first. + +This is a slight re-work of https://crrev.com/c/4847447/3, +originally by jkummerow@chromium.org + +Bug: v8:14218, dawn:1858, 1511239 +Change-Id: Ia266556d05b4d53e6942e12609d1c08882b4ff0f +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5132129 +Commit-Queue: Andrey Kosyakov <caseq@chromium.org> +Reviewed-by: Yuki Shiino <yukishiino@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1240236} +--- + .../bindings/core/v8/native_value_traits.h | 6 ++ + .../core/v8/native_value_traits_impl.h | 91 ++++++++++++++++++- + 2 files changed, 95 insertions(+), 2 deletions(-) + +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +index 1e5a0790df6d..a5c28b37e945 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +@@ -84,6 +84,12 @@ struct NativeValueTraitsBase { + std::is_pointer_v<ImplType> || + requires(ImplType value) { value.IsNull(); }; + ++ // This should only be true for certain subclasses of ScriptWrappable ++ // that satisfy the assumptions of CreateIDLSequenceFromV8ArraySlow() with ++ // regards to how NativeValue() is implemented for the underlying type. ++ static constexpr bool supports_scriptwrappable_specific_fast_array_iteration = ++ false; ++ + template <typename... ExtraArgs> + static decltype(auto) ArgumentValue(v8::Isolate* isolate, + int argument_index, +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +index 5011503dcf1c..f085b6e90516 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +@@ -1037,10 +1037,86 @@ CreateIDLSequenceFromV8ArraySlow(v8::Isolate* isolate, + return {}; + } + +- typename NativeValueTraits<IDLSequence<T>>::ImplType result; ++ using ResultType = typename NativeValueTraits<IDLSequence<T>>::ImplType; ++ ResultType result; + result.ReserveInitialCapacity(length); + v8::Local<v8::Context> current_context = isolate->GetCurrentContext(); + v8::TryCatch try_block(isolate); ++ ++ // Fast path -- we're creating a sequence of script wrappables, which can be ++ // done by directly getting underlying object as long as array types are ++ // homogeneous. With ScriptWrappables, we don't expect to enter JS during ++ // iteration, so we can rely on v8::Array::Iterate() which is much faster than ++ // iterating an array on the client side of the v8. Additionally, for most ++ // subsptyes of ScriptWrappables, we can speed up type checks (see more on ++ // that below next to supports_scriptwrappable_specific_fast_array_iteration ++ // check. ++ if constexpr (std::is_base_of_v<ScriptWrappable, T>) { ++ struct CallbackData { ++ STACK_ALLOCATED(); ++ ++ public: ++ v8::Isolate* isolate; ++ v8::TypecheckWitness witness; ++ ResultType& result; ++ ExceptionState& exception_state; ++ CallbackData(v8::Isolate* isolate, ++ ResultType& result, ++ ExceptionState& exception_state) ++ : isolate(isolate), ++ witness(isolate), ++ result(result), ++ exception_state(exception_state) {} ++ }; ++ ++ CallbackData callback_data(isolate, result, exception_state); ++ v8::Array::IterationCallback callback = [](uint32_t index, ++ v8::Local<v8::Value> v8_element, ++ void* data) { ++ CallbackData* callback_data = reinterpret_cast<CallbackData*>(data); ++ // 3.4. Initialize Si to the result of converting nextItem to an IDL value ++ // of type T. ++ v8::TypecheckWitness& witness = callback_data->witness; ++ // We can speed up type check by taking advantage of V8's type witness, ++ // provided traits' NativeValue implementation doesn't have additional ++ // logic beyond checking the type and calling ToScriptWrappable(). ++ if constexpr ( ++ NativeValueTraits< ++ T>::supports_scriptwrappable_specific_fast_array_iteration) { ++ if (witness.Matches(v8_element)) { ++ auto&& value = ToScriptWrappable(v8_element.As<v8::Object>()) ++ ->template ToImpl<T>(); ++ callback_data->result.push_back(std::move(value)); ++ return v8::Array::CallbackResult::kContinue; ++ } ++ } ++ auto&& element = NativeValueTraits<T>::NativeValue( ++ callback_data->isolate, v8_element, callback_data->exception_state); ++ if (callback_data->exception_state.HadException()) { ++ // It doesn't matter whether we return `kException` or `kBreak` here, ++ // as that only affects the return value of `v8_array->Iterate()`, ++ // which we are ignoring. ++ return v8::Array::CallbackResult::kException; ++ } ++ if constexpr ( ++ NativeValueTraits< ++ T>::supports_scriptwrappable_specific_fast_array_iteration) { ++ witness.Update(v8_element); ++ } ++ callback_data->result.push_back(std::move(element)); ++ return v8::Array::CallbackResult::kContinue; ++ }; ++ if (!v8_array->Iterate(current_context, callback, &callback_data) ++ .IsJust()) { ++ if (try_block.HasCaught()) { ++ exception_state.RethrowV8Exception(try_block.Exception()); ++ } ++ DCHECK(exception_state.HadException()); ++ return {}; ++ } ++ return result; ++ } ++ + // Array length may change if array is mutated during iteration. + for (uint32_t i = 0; i < v8_array->Length(); ++i) { + v8::Local<v8::Value> v8_element; +@@ -1056,6 +1132,7 @@ CreateIDLSequenceFromV8ArraySlow(v8::Isolate* isolate, + return {}; + result.push_back(std::move(element)); + } ++ + // 3.2. If next is false, then return an IDL sequence value of type + // sequence<T> of length i, where the value of the element at index j is Sj. + return result; +@@ -1398,6 +1475,7 @@ struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { + } + }; + ++// Interface types + template <typename T> + requires std::derived_from<T, CallbackInterfaceBase> + struct NativeValueTraits<IDLNullable<T>> +@@ -1470,12 +1548,21 @@ struct NativeValueTraits<T> : public NativeValueTraitsBase<T> { + template <typename T> + requires std::derived_from<T, ScriptWrappable> + struct NativeValueTraits<T> : public NativeValueTraitsBase<T*> { ++ // This signifies that CreateIDLSequenceFromV8ArraySlow() may apply ++ // certain optimization based on assumptions about `NativeValue()` ++ // implementation below. For subclasses of ScriptWrappable that have ++ // different implementation of NativeValue(), this should remain false. ++ static constexpr bool supports_scriptwrappable_specific_fast_array_iteration = ++ true; ++ + static inline T* NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + const WrapperTypeInfo* wrapper_type_info = T::GetStaticWrapperTypeInfo(); +- if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, value)) ++ if (V8PerIsolateData::From(isolate)->HasInstance(wrapper_type_info, ++ value)) { + return ToScriptWrappable(value.As<v8::Object>())->template ToImpl<T>(); ++ } + + bindings::NativeValueTraitsInterfaceNotOfType(wrapper_type_info, + exception_state); diff --git a/chromium-115-add-cmath-for-various-math-functions-in-skia.patch b/chromium-115-add-cmath-for-various-math-functions-in-skia.patch deleted file mode 100644 index ff3d01d62695..000000000000 --- a/chromium-115-add-cmath-for-various-math-functions-in-skia.patch +++ /dev/null @@ -1,27 +0,0 @@ -https://chromium-review.googlesource.com/c/chromium/src/+/4545069 - -Parent: 4d0ef938 ([DTC] Replace Browser Test Management Logic with new Mixin) -Author: Stephan Hartmann <stha09@googlemail.com> -AuthorDate: 2023-05-30 20:27:03 +0000 -Commit: Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> -CommitDate: 2023-05-30 20:27:03 +0000 -IWYU: add cmath for various math functions in //skia -Bug: 957519 -Change-Id: I4616f7f161330feb3fb2299da094874663655189 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4545069 -Commit-Queue: Nico Weber <thakis@chromium.org> -Reviewed-by: Nico Weber <thakis@chromium.org> -Cr-Commit-Position: refs/heads/main@{#1150817} -diff --git a/skia/ext/skcolorspace_trfn.cc b/skia/ext/skcolorspace_trfn.cc -index c0d6bd2..97c4dfa 100644 ---- a/skia/ext/skcolorspace_trfn.cc -+++ b/skia/ext/skcolorspace_trfn.cc -@@ -4,6 +4,8 @@ - - #include "skia/ext/skcolorspace_trfn.h" - -+#include <cmath> -+ - namespace skia { - - namespace { diff --git a/chromium-115-std-vector-used-in-verify_name_match.h-without-include.patch b/chromium-115-std-vector-used-in-verify_name_match.h-without-include.patch deleted file mode 100644 index cb598a425768..000000000000 --- a/chromium-115-std-vector-used-in-verify_name_match.h-without-include.patch +++ /dev/null @@ -1,27 +0,0 @@ -Parent: 6f43136d (Use BuiltInRecovery for the Attribution Reporting database) -Author: Jose Dapena Paz <jdapena@igalia.com> -AuthorDate: 2023-05-31 17:03:02 +0000 -Commit: Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> -CommitDate: 2023-05-31 17:03:02 +0000 - -IWYU: std::vector used in verify_name_match.h without include - -Bug: 957519 -Change-Id: Ie753fadae35adb293f854a0f8d4f675e67a2fc31 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4533815 -Reviewed-by: David Benjamin <davidben@chromium.org> -Commit-Queue: José Dapena Paz <jdapena@igalia.com> -Cr-Commit-Position: refs/heads/main@{#1151307} -diff --git a/net/cert/pki/verify_name_match.h b/net/cert/pki/verify_name_match.h -index d22cf7f..e30b221 100644 ---- a/net/cert/pki/verify_name_match.h -+++ b/net/cert/pki/verify_name_match.h -@@ -6,6 +6,7 @@ - #define NET_CERT_PKI_VERIFY_NAME_MATCH_H_ - - #include <string> -+#include <vector> - - #include "net/base/net_export.h" - - diff --git a/chromium-constexpr.patch b/chromium-constexpr.patch new file mode 100644 index 000000000000..35acd392c3ec --- /dev/null +++ b/chromium-constexpr.patch @@ -0,0 +1,48 @@ +diff --git a/base/types/strong_alias.h b/base/types/strong_alias.h +index 9f80b7fc8adf..4d28bd195c8a 100644 +--- a/base/types/strong_alias.h ++++ b/base/types/strong_alias.h +@@ -110,7 +110,7 @@ class StrongAlias { + // a `StrongAlias<W>`. + friend constexpr auto operator<=>(const StrongAlias& lhs, + const StrongAlias& rhs) = default; +- friend constexpr bool operator==(const StrongAlias& lhs, ++ friend bool operator==(const StrongAlias& lhs, + const StrongAlias& rhs) = default; + + // Hasher to use in std::unordered_map, std::unordered_set, etc. +diff --git a/components/autofill/core/common/unique_ids.h b/components/autofill/core/common/unique_ids.h +index eb8d5d2c8ec9..6bfabf286379 100644 +--- a/components/autofill/core/common/unique_ids.h ++++ b/components/autofill/core/common/unique_ids.h +@@ -137,7 +137,7 @@ struct GlobalId { + + friend constexpr auto operator<=>(const GlobalId<RendererId>& lhs, + const GlobalId<RendererId>& rhs) = default; +- friend constexpr bool operator==(const GlobalId<RendererId>& lhs, ++ friend bool operator==(const GlobalId<RendererId>& lhs, + const GlobalId<RendererId>& rhs) = default; + }; + +diff --git a/components/performance_manager/resource_attribution/query_params.h b/components/performance_manager/resource_attribution/query_params.h +index 4616f1665e91..679dfcabe999 100644 +--- a/components/performance_manager/resource_attribution/query_params.h ++++ b/components/performance_manager/resource_attribution/query_params.h +@@ -29,7 +29,7 @@ class ContextCollection { + ContextCollection(const ContextCollection& other); + ContextCollection& operator=(const ContextCollection& other); + +- friend constexpr bool operator==(const ContextCollection&, ++ friend bool operator==(const ContextCollection&, + const ContextCollection&) = default; + + // Adds `context` to the collection. +@@ -67,7 +67,7 @@ struct QueryParams { + QueryParams(const QueryParams& other); + QueryParams& operator=(const QueryParams& other); + +- friend constexpr bool operator==(const QueryParams&, ++ friend bool operator==(const QueryParams&, + const QueryParams&) = default; + + // Resource types to measure. diff --git a/chromium-drirc-disable-10bpc-color-configs.conf b/chromium-drirc-disable-10bpc-color-configs.conf deleted file mode 100644 index ef836b32222e..000000000000 --- a/chromium-drirc-disable-10bpc-color-configs.conf +++ /dev/null @@ -1,15 +0,0 @@ -<!-- - -Disable 10 bpc color configs; fixes VAAPI playback. - -https://bugs.freedesktop.org/show_bug.cgi?id=106490 - ---> - -<driconf> - <device> - <application name="Chromium" executable="chromium"> - <option name="allow_rgb10_configs" value="false" /> - </application> - </device> -</driconf> diff --git a/chromium-drirc-disable-10bpc-color-configs.patch b/chromium-drirc-disable-10bpc-color-configs.patch deleted file mode 100644 index ef836b32222e..000000000000 --- a/chromium-drirc-disable-10bpc-color-configs.patch +++ /dev/null @@ -1,15 +0,0 @@ -<!-- - -Disable 10 bpc color configs; fixes VAAPI playback. - -https://bugs.freedesktop.org/show_bug.cgi?id=106490 - ---> - -<driconf> - <device> - <application name="Chromium" executable="chromium"> - <option name="allow_rgb10_configs" value="false" /> - </application> - </device> -</driconf> diff --git a/compiler-rt-16.patch b/compiler-rt-16.patch new file mode 100644 index 000000000000..e14829ad2987 --- /dev/null +++ b/compiler-rt-16.patch @@ -0,0 +1,36 @@ +diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn +index d4de2e0cca0..57359c32121 100644 +--- a/build/config/clang/BUILD.gn ++++ b/build/config/clang/BUILD.gn +@@ -130,12 +130,15 @@ template("clang_lib") { + } else if (is_linux || is_chromeos) { + if (current_cpu == "x64") { + _dir = "x86_64-unknown-linux-gnu" ++ _suffix = "-x86_64" + } else if (current_cpu == "x86") { + _dir = "i386-unknown-linux-gnu" ++ _suffix = "-i386" + } else if (current_cpu == "arm") { + _dir = "armv7-unknown-linux-gnueabihf" + } else if (current_cpu == "arm64") { + _dir = "aarch64-unknown-linux-gnu" ++ _suffix = "-aarch64" + } else { + assert(false) # Unhandled cpu type + } +@@ -166,6 +169,15 @@ template("clang_lib") { + assert(false) # Unhandled target platform + } + ++ # Bit of a hack to make this find builtins from compiler-rt 16 ++ if (is_linux || is_chromeos) { ++ if (clang_version == "16") { ++ _dir = "linux" ++ } else { ++ _suffix = "" ++ } ++ } ++ + _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib" + _lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}" + libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ] diff --git a/drop-flags-unsupported-by-clang16 (1).patch b/drop-flags-unsupported-by-clang16 (1).patch new file mode 100644 index 000000000000..a146a6d5ee49 --- /dev/null +++ b/drop-flags-unsupported-by-clang16 (1).patch @@ -0,0 +1,40 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 89b4755ac8b3..94b457385663 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -618,24 +618,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" ] +@@ -802,10 +784,6 @@ config("compiler") { + if (is_apple) { + ldflags += [ "-Wcrl,object_path_lto" ] + } +- +- # 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" ] + } + + # TODO(https://crbug.com/1211155): investigate why this isn't effective on diff --git a/icu-74.patch b/icu-74.patch deleted file mode 100644 index efb8fb161c61..000000000000 --- a/icu-74.patch +++ /dev/null @@ -1,21 +0,0 @@ -https://bugs.gentoo.org/917645 -(copied patch from qtwebengine:6 - https://bugs.gentoo.org/917633) - -Quick fix for a static_assert failure with icu74. Still waiting -for a proper upstream fix and unknown if entirely right, but is -an extension of [1] (is now 48 rather than 43). - -[1] https://crrev.com/e60b571faa3f14dd9119a6792dccf12f8bf80192 ---- a/third_party/blink/renderer/platform/text/text_break_iterator.cc -+++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc -@@ -161,7 +161,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar - }; - // clang-format on - --#if U_ICU_VERSION_MAJOR_NUM >= 58 -+#if U_ICU_VERSION_MAJOR_NUM >= 74 -+#define BA_LB_COUNT (U_LB_COUNT - 8) -+#elif U_ICU_VERSION_MAJOR_NUM >= 58 - #define BA_LB_COUNT (U_LB_COUNT - 3) - #else - #define BA_LB_COUNT U_LB_COUNT diff --git a/random-build-fixes.patch b/random-build-fixes.patch deleted file mode 100644 index 922e67d8984f..000000000000 --- a/random-build-fixes.patch +++ /dev/null @@ -1,516 +0,0 @@ -diff --git a/chrome/browser/download/bubble/download_bubble_update_service.cc b/chrome/browser/download/bubble/download_bubble_update_service.cc -index 93ec91e38b9..acd25f25d15 100644 ---- a/chrome/browser/download/bubble/download_bubble_update_service.cc -+++ b/chrome/browser/download/bubble/download_bubble_update_service.cc -@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item) { - // Helper to get an iterator to the last element in the cache. The cache - // must not be empty. - template <typename Item> --SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) { -+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) { - CHECK(!cache.empty()); - auto it = cache.end(); - return std::prev(it); -@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheImpl( - } - - template <typename Id, typename Item> --SortedItems<Item>::iterator -+typename SortedItems<Item>::iterator - DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter( -- SortedItems<Item>::iterator iter, -+ typename SortedItems<Item>::iterator iter, - SortedItems<Item>& cache, - IterMap<Id, Item>& iter_map) { - CHECK(iter != cache.end()); -diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc -index d923cdfa322..36ac59ca7ac 100644 ---- a/chrome/browser/ui/omnibox/chrome_omnibox_client.cc -+++ b/chrome/browser/ui/omnibox/chrome_omnibox_client.cc -@@ -470,10 +470,10 @@ void ChromeOmniboxClient::OnAutocompleteAccept( - 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 --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc -index a29dc8e4818..00aaf9b4067 100644 ---- a/chrome/test/chromedriver/capabilities.cc -+++ b/chrome/test/chromedriver/capabilities.cc -@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base::Value& option, - "'version' field of type string"); - } - -- brands.emplace_back(*brand, *version); -+ brands.emplace_back(BrandVersion{*brand, *version}); - } - - client_hints.brands = std::move(brands); -@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::Value& option, - "a 'version' field of type string"); - } - -- full_version_list.emplace_back(*brand, *version); -+ full_version_list.emplace_back(BrandVersion{*brand, *version}); - } - - client_hints.full_version_list = std::move(full_version_list); -diff --git a/components/optimization_guide/core/tflite_model_executor.h b/components/optimization_guide/core/tflite_model_executor.h -index 31417bc8d9d..abd41f4c8d4 100644 ---- a/components/optimization_guide/core/tflite_model_executor.h -+++ b/components/optimization_guide/core/tflite_model_executor.h -@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public ModelExecutor<OutputType, InputType> { - void SendForBatchExecution( - BatchExecutionCallback callback_on_complete, - base::TimeTicks start_time, -- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) -+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) - override { - DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc -index 3bace0dab10..0ea54d136ea 100644 ---- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc -+++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc -@@ -1496,7 +1496,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOutputNV12( - - // Issue readbacks from the surfaces: - for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) { -- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height()); -+ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()}; - SkImageInfo dst_info = SkImageInfo::Make( - size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType, - kUnpremul_SkAlphaType); -diff --git a/content/public/browser/web_ui_browser_interface_broker_registry.h b/content/public/browser/web_ui_browser_interface_broker_registry.h -index 0a419be66b3..7253c9680f7 100644 ---- a/content/public/browser/web_ui_browser_interface_broker_registry.h -+++ b/content/public/browser/web_ui_browser_interface_broker_registry.h -@@ -127,10 +127,10 @@ class CONTENT_EXPORT WebUIBrowserInterfaceBrokerRegistry { - // - // TODO(crbug.com/1407936): Point to WebUIJsBridge documentation. - template <typename ControllerType> -- JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() { -+ typename JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() { - using Traits = JsBridgeTraits<ControllerType>; -- using Interface = Traits::Interface; -- using JsBridgeBinderInitializer = Traits::BinderInitializer; -+ using Interface = typename Traits::Interface; -+ using JsBridgeBinderInitializer = typename Traits::BinderInitializer; - - // WebUIController::GetType() requires an instantiated WebUIController - // (because it's a virtual method and can't be static). Here we only have -diff --git a/net/dns/host_resolver_cache.cc b/net/dns/host_resolver_cache.cc -index df037a1a440..b2152d54408 100644 ---- a/net/dns/host_resolver_cache.cc -+++ b/net/dns/host_resolver_cache.cc -@@ -159,7 +159,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 --git a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc -index f9cf9f5ae86..0566ae194ce 100644 ---- a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc -+++ b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc -@@ -169,7 +169,7 @@ class HTMLFastPathParser { - using Span = base::span<const Char>; - using USpan = base::span<const UChar>; - // 32 matches that used by HTMLToken::Attribute. -- typedef std::conditional<std::is_same_v<Char, UChar>, -+ typedef typename std::conditional<std::is_same_v<Char, UChar>, - UCharLiteralBuffer<32>, - LCharLiteralBuffer<32>>::type LiteralBufferType; - typedef UCharLiteralBuffer<32> UCharLiteralBufferType; -diff --git a/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h b/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h -index 8bb1639676c..350bdbd5fde 100644 ---- a/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h -+++ b/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h -@@ -269,8 +270,8 @@ class CORE_EXPORT ObjectPaintPropertiesSparse : public ObjectPaintProperties { - NodeList& nodes, - NodeId node_id, - const ParentType& parent, -- NodeType::State&& state, -- const NodeType::AnimationState& animation_state = -+ typename NodeType::State&& state, -+ const typename NodeType::AnimationState& animation_state = - NodeType::AnimationState()) { - // First, check if we need to add a new node. - if (!nodes.HasField(node_id)) { -diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc -index 883d769ca4b..1b4b75bbaf7 100644 ---- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc -+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc -@@ -83,12 +83,12 @@ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags, - case kGradient: - GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(), - ImageDrawOptions()); -- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha)); -+ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha}); - break; - case kImagePattern: - GetCanvasPattern()->GetPattern()->ApplyToFlags( - flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform())); -- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha)); -+ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha}); - break; - default: - NOTREACHED(); -diff --git a/third_party/blink/renderer/platform/fonts/palette_interpolation.cc b/third_party/blink/renderer/platform/fonts/palette_interpolation.cc -index 5a0121510ae..0cf45e0b0da 100644 ---- a/third_party/blink/renderer/platform/fonts/palette_interpolation.cc -+++ b/third_party/blink/renderer/platform/fonts/palette_interpolation.cc -@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride> PaletteInterpolation::MixColorRecords( - color_interpolation_space, hue_interpolation_method, start_color, - end_color, percentage, alpha_multiplier); - -- FontPalette::FontPaletteOverride result_color_record(i, result_color); -+ FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color}; - result_color_records.push_back(result_color_record); - } - return result_color_records; -diff --git a/ui/base/wayland/color_manager_util.h b/ui/base/wayland/color_manager_util.h -index fa1dd422c0e..52d3702e3e5 100644 ---- a/ui/base/wayland/color_manager_util.h -+++ b/ui/base/wayland/color_manager_util.h -@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base::MakeFixedFlatMap< - zcr_color_manager_v1_chromaticity_names, - PrimaryVersion>( - {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, -- kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG, -- kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, -- kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB, -- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB, -- kDefaultSinceVersion)}, -+ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::BT470M, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::SMPTE240M, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::XYZ_D50, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::SMPTEST428_1, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::SMPTEST431_2, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM, -- PrimaryVersion( -+ PrimaryVersion{ - gfx::ColorSpace::PrimaryID::FILM, -- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}}); -+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}}); - - // A map from the zcr_color_manager_v1 eotf_names enum values - // representing well-known EOTFs, to their equivalent TransferIDs. -@@ -107,65 +107,65 @@ constexpr auto kEotfMap = base::MakeFixedFlatMap< - zcr_color_manager_v1_eotf_names, - TransferVersion>({ - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, -- TransferVersion(gfx::ColorSpace::TransferID::LINEAR, -- kDefaultSinceVersion)}, -+ TransferVersion{gfx::ColorSpace::TransferID::LINEAR, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, -- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)}, -+ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, -- TransferVersion(gfx::ColorSpace::TransferID::BT709, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::BT709, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, -- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24, -- kDefaultSinceVersion)}, -+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, - // This is ever so slightly inaccurate. The number ought to be - // 2.19921875f, not 2.2 -- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22, -- kDefaultSinceVersion)}, -+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, -- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)}, -+ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, -- TransferVersion(gfx::ColorSpace::TransferID::HLG, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::HLG, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M, -- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M, -- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1, -- TransferVersion( -+ TransferVersion{ - gfx::ColorSpace::TransferID::SMPTEST428_1, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG, -- TransferVersion(gfx::ColorSpace::TransferID::LOG, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::LOG, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT, -- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4, -- TransferVersion( -+ TransferVersion{ - gfx::ColorSpace::TransferID::IEC61966_2_4, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG, -- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10, -- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12, -- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS, -- TransferVersion( -+ TransferVersion{ - gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18, -- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28, -- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)}, -+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}}, - }); - - // A map from the SDR zcr_color_manager_v1 eotf_names enum values -@@ -174,18 +174,18 @@ constexpr auto kEotfMap = base::MakeFixedFlatMap< - constexpr auto kTransferMap = - base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({ - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, -- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, -- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, -- TransferFnVersion( -+ TransferFnVersion{ - SkNamedTransferFnExt::kRec709, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, -- TransferFnVersion(gamma24, kDefaultSinceVersion)}, -+ TransferFnVersion{gamma24, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, -- TransferFnVersion(SkNamedTransferFnExt::kA98RGB, -- kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFnExt::kA98RGB, -+ kDefaultSinceVersion}}, - }); - - // A map from the HDR zcr_color_manager_v1 eotf_names enum values -@@ -194,68 +194,68 @@ constexpr auto kTransferMap = - constexpr auto kHDRTransferMap = - base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>( - {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, -- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, -- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, -- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)}, -+ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, -- TransferFnVersion(SkNamedTransferFn::kHLG, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, -+ TransferFnVersion{SkNamedTransferFn::kHLG, -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10, -- TransferFnVersion( -+ TransferFnVersion{ - SkNamedTransferFnExt::kSRGBExtended1023Over510, -- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}}); -+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}}); - - // A map from zcr_color_manager_v1 matrix_names enum values to - // gfx::ColorSpace::MatrixIDs. - constexpr auto kMatrixMap = - base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>( - {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB, -- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709, -- MatrixVersion(gfx::ColorSpace::MatrixID::BT709, -- kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::BT709, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG, -- MatrixVersion( -+ MatrixVersion{ - gfx::ColorSpace::MatrixID::BT470BG, -- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)}, -+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL, -- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL, -- kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL, -- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL, -- kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC, -- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG, -- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG, -- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG, -+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX, -- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX, -- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX, -+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR, -- MatrixVersion(gfx::ColorSpace::MatrixID::GBR, -- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::GBR, -+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M, -- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M, -- kDefaultSinceVersion)}, -+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M, -- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M, -- kDefaultSinceVersion)}}); -+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M, -+ kDefaultSinceVersion}}}); - - // A map from zcr_color_manager_v1 range_names enum values to - // gfx::ColorSpace::RangeIDs. - constexpr auto kRangeMap = - base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>( - {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED, -- RangeVersion(gfx::ColorSpace::RangeID::LIMITED, -- kDefaultSinceVersion)}, -+ RangeVersion{gfx::ColorSpace::RangeID::LIMITED, -+ kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL, -- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)}, -+ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}}, - {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED, -- RangeVersion(gfx::ColorSpace::RangeID::DERIVED, -- kDefaultSinceVersion)}}); -+ RangeVersion{gfx::ColorSpace::RangeID::DERIVED, -+ kDefaultSinceVersion}}}); - - zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity( - gfx::ColorSpace::PrimaryID primaryID, ---- chromium-116.0.5845.82.orig/chrome/browser/content_settings/one_time_permission_provider.cc 2023-08-11 18:10:42.162664104 +0000 -+++ chromium-116.0.5845.82/chrome/browser/content_settings/one_time_permission_provider.cc 2023-08-11 18:14:48.571543555 +0000 -@@ -207,8 +207,8 @@ void OneTimePermissionProvider::OnSuspen - - while (rule_iterator && rule_iterator->HasNext()) { - auto rule = rule_iterator->Next(); -- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern, -- rule->secondary_pattern); -+ patterns_to_delete.emplace_back(ContentSettingEntry{setting_type, rule->primary_pattern, -+ rule->secondary_pattern}); - permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( - setting_type, - permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND); -@@ -303,7 +303,7 @@ void OneTimePermissionProvider::DeleteEn - 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); -+ ContentSettingEntry{content_setting_type, rule->primary_pattern, rule->secondary_pattern}); - permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( - content_setting_type, trigger_event); - } diff --git a/random-fixes-for-gcc13.patch b/random-fixes-for-gcc13.patch deleted file mode 100644 index fd0b763100ac..000000000000 --- a/random-fixes-for-gcc13.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -upr chromium-113.0.5672.63.orig/gin/time_clamper.h chromium-113.0.5672.63/gin/time_clamper.h ---- chromium-113.0.5672.63.orig/gin/time_clamper.h 2023-04-26 21:43:06.707860200 +0000 -+++ chromium-113.0.5672.63/gin/time_clamper.h 2023-05-09 00:14:09.744221610 +0000 -@@ -6,6 +6,7 @@ - #define GIN_TIME_CLAMPER_H_ - - #include <algorithm> -+#include <cstdlib> - - #include "base/rand_util.h" - #include "base/time/time.h" -@@ -48,7 +49,7 @@ class GIN_EXPORT TimeClamper { - const int64_t micros = now_micros % 1000; - // abs() is necessary for devices with times before unix-epoch (most likely - // configured incorrectly). -- if (abs(micros) + kResolutionMicros < 1000) { -+ if (std::abs(micros) + kResolutionMicros < 1000) { - return now_micros / 1000; - } - return ClampTimeResolution(now_micros) / 1000; -diff -upr chromium-113.0.5672.63.orig/third_party/maldoca/src/maldoca/ole/header.h chromium-113.0.5672.63/third_party/maldoca/src/maldoca/ole/header.h ---- chromium-113.0.5672.63.orig/third_party/maldoca/src/maldoca/ole/header.h 2023-04-26 21:43:58.708449600 +0000 -+++ chromium-113.0.5672.63/third_party/maldoca/src/maldoca/ole/header.h 2023-05-09 00:14:09.744221610 +0000 -@@ -43,6 +43,7 @@ - #ifndef MALDOCA_OLE_HEADER_H_ - #define MALDOCA_OLE_HEADER_H_ - -+#include <cstdint> - #include "absl/strings/string_view.h" - - namespace maldoca { -diff -upr chromium-113.0.5672.63.orig/third_party/ruy/src/ruy/profiler/instrumentation.h chromium-113.0.5672.63/third_party/ruy/src/ruy/profiler/instrumentation.h ---- chromium-113.0.5672.63.orig/third_party/ruy/src/ruy/profiler/instrumentation.h 2023-04-26 21:47:36.527673200 +0000 -+++ chromium-113.0.5672.63/third_party/ruy/src/ruy/profiler/instrumentation.h 2023-05-09 00:14:09.744221610 +0000 -@@ -19,6 +19,7 @@ limitations under the License. - #ifdef RUY_PROFILER - #include <cstdio> - #include <mutex> -+#include <string> - #include <vector> - #endif - -diff -upr chromium-113.0.5672.63.orig/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.cc chromium-113.0.5672.63/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.cc ---- chromium-113.0.5672.63.orig/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.cc 2023-04-26 21:47:39.531938300 +0000 -+++ chromium-113.0.5672.63/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.cc 2023-05-09 00:14:09.747555160 +0000 -@@ -17,6 +17,7 @@ limitations under the License. - - #include <assert.h> - #include <math.h> -+#include <stdint.h> - - #include "third_party/fft2d/fft.h" - -diff -upr chromium-113.0.5672.63.orig/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h chromium-113.0.5672.63/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h ---- chromium-113.0.5672.63.orig/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-04-26 21:47:38.323831800 +0000 -+++ chromium-113.0.5672.63/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-05-09 00:14:09.757555808 +0000 -@@ -2579,6 +2579,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeS - #undef VMA_IMPLEMENTATION - - #include <cstdint> -+#include <cstdio> - #include <cstdlib> - #include <cstring> - #include <utility> -diff -upr chromium-113.0.5672.63.orig/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h chromium-113.0.5672.63/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h ---- chromium-113.0.5672.63.orig/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h 2023-04-26 21:47:36.679686500 +0000 -+++ chromium-113.0.5672.63/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h 2023-05-09 00:14:41.046248921 +0000 -@@ -2389,6 +2389,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV - #undef VMA_IMPLEMENTATION
-
- #include <cstdint>
-+#include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <utility>
diff --git a/skia-gamma.patch b/skia-gamma.patch deleted file mode 100644 index 05a6b237c21a..000000000000 --- a/skia-gamma.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/skia/BUILD.gn b/skia/BUILD.gn -index b2c8b79..7e2ee53 100644 ---- a/skia/BUILD.gn -+++ b/skia/BUILD.gn -@@ -139,7 +139,7 @@ config("skia_library_config") { - # Settings for text blitting, chosen to approximate the system browser. - if (is_linux || is_chromeos) { - defines += [ -- "SK_GAMMA_EXPONENT=1.2", -+ "SK_GAMMA_EXPONENT=1.8", - "SK_GAMMA_CONTRAST=0.2", - ] - } else if (is_android) { diff --git a/support-ICU-74-in-LazyTextBreakIterator.patch b/support-ICU-74-in-LazyTextBreakIterator.patch new file mode 100644 index 000000000000..fd36b2e07bfc --- /dev/null +++ b/support-ICU-74-in-LazyTextBreakIterator.patch @@ -0,0 +1,148 @@ +From f62990fb134b7e610502b6804945debaa51960a5 Mon Sep 17 00:00:00 2001 +From: Koji Ishii <kojii@chromium.org> +Date: Fri, 9 Feb 2024 18:47:02 +0000 +Subject: [PATCH] Support ICU 74 in `LazyTextBreakIterator` + +This patch extends the `kBreakAllLineBreakClassTable` table +for 5 new LineBreak classes in ICU 74. + +They are for Brahmic scripts, which "line breaks can occur at +the boundaries of any orthographic syllable"[1]. The +`break-all` has no additional break opportunities that all +entries are `0`. + +This patch also adds `0` for 3 classes added in ICU 58[2], +instead of doing so in code, to make future additions +possible. + +[1] https://unicode.org/reports/tr14/#BreakOpportunities +[2] https://chromiumcodereview.appspot.com/2440923002 + +Bug: 324419151 +Change-Id: I8002edb927280f63b5b668b09076cc71feaeac3e +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5279337 +Auto-Submit: Koji Ishii <kojii@chromium.org> +Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org> +Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1258643} +--- + .../platform/text/text_break_iterator.cc | 98 ++++++++++--------- + 1 file changed, 53 insertions(+), 45 deletions(-) + +diff --git a/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc +index 703dc2399075..38ab94a0a460 100644 +--- a/third_party/blink/renderer/platform/text/text_break_iterator.cc ++++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc +@@ -161,11 +161,7 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar + }; + // clang-format on + +-#if U_ICU_VERSION_MAJOR_NUM >= 58 +-#define BA_LB_COUNT (U_LB_COUNT - 3) +-#else + #define BA_LB_COUNT U_LB_COUNT +-#endif + // Line breaking table for CSS word-break: break-all. This table differs from + // asciiLineBreakTable in: + // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking +@@ -174,47 +170,59 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar + // normal line break, not "prohibit break." + // clang-format off + static const unsigned char kBreakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = { +- // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // B2 +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // BA +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BB +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BK +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CB +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CM +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CR +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // EX +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // GL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HY +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ID +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IN +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // IS +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // LF +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NS +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // NU +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // OP +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // PO +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PR +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // QU +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SA +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SG +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SP +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SY +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZW +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // WJ +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H2 +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H3 +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JT +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JV +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CP +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CJ +- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // HL +- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // RI ++ // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI EB EM ZWJ AK AP AS VF VI ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AI ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // B2 ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BA ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BB ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BK ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CB ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CM ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CR ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EX ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // GL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HY ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ID ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IN ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IS ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // LF ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NS ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NU ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // OP ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PO ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PR ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // QU ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SA ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SG ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SP ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SY ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZW ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // WJ ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H2 ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H3 ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JT ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JV ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CP ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CJ ++ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HL ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // RI ++ // Added in ICU 58. ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EB ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EM ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZWJ ++#if U_ICU_VERSION_MAJOR_NUM >= 74 ++ // Added in ICU 74. https://icu.unicode.org/download/74 ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AK ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AP ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AS ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // VF ++ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // VI ++#endif // U_ICU_VERSION_MAJOR_NUM >= 74 + }; + // clang-format on + diff --git a/webauthn-variant.patch b/webauthn-variant.patch deleted file mode 100644 index ec8ba7a135a7..000000000000 --- a/webauthn-variant.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.h b/chrome/browser/webauthn/authenticator_request_dialog_model.h -index f4992a74bd6..45cabe39974 100644 ---- a/chrome/browser/webauthn/authenticator_request_dialog_model.h -+++ b/chrome/browser/webauthn/authenticator_request_dialog_model.h -@@ -7,6 +7,7 @@ - - #include <memory> - #include <string> -+#include <variant> - #include <vector> - - #include "base/containers/span.h" |